大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 MyBatis入門教程

MyBatis入門教程

更新時(shí)間:2022-06-01 10:14:54 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1887次

MyBatis

MyBatis是一個(gè) Java 持久性框架,它使用 XML 描述符或注釋將對(duì)象與存儲(chǔ)過程或 SQL 語句耦合在一起。與 ORM 框架不同,MyBatis 不會(huì)將 Java 對(duì)象映射到數(shù)據(jù)庫表,而是將 Java 方法映射到 SQL 語句。MyBatis 允許使用所有數(shù)據(jù)庫功能,如存儲(chǔ)過程、視圖、任何復(fù)雜性的查詢和供應(yīng)商專有功能。

使用 MyBatis 的好處是:

開箱即用的表/查詢緩存

減少大部分 JDBC 樣板文件

提高生產(chǎn)力

SQL 代碼與 Java 類的分離

MyBatis Java 配置

可以在不使用 XML 的情況下在純 Java 中配置 MyBatis。在下面的示例中,我們將找出表中的書籍?dāng)?shù)量。

包 com.zetcode.map;
導(dǎo)入 org.apache.ibatis.annotations.Select; 
公共接口 MyMapper { 
    @Select("SELECT COUNT(*) FROM MyBooks") 
    public int getNumberOfBooks(); 
}

MyMapper包含計(jì)算表中行數(shù)的 SQL 代碼MyBooks。

包 com.zetcode.jconfig;
導(dǎo)入 java.util.Properties;
導(dǎo)入 javax.sql.DataSource;
導(dǎo)入 org.apache.ibatis.datasource.DataSourceFactory;
導(dǎo)入 org.apache.ibatis.datasource.pooled.PooledDataSource;
公共類 MyDataSourceFactory 實(shí)現(xiàn) DataSourceFactory {     
    private Properties prop; 
    @Override
    公共數(shù)據(jù)源 getDataSource() { 
        PooledDataSource ds = new PooledDataSource();         
        ds.setDriver(prop.getProperty("driver")); 
        ds.setUrl(prop.getProperty("url")); 
        ds.setUsername(prop.getProperty("user")); 
        ds.setPassword(prop.getProperty("密碼"));         
        返回 ds; 
    }
    @Override 
    public void setProperties(Properties prprts) {          
        prop = prprts; 
    } 
}

MyDataSourceFactoryPooledDataSource 從給定的屬性創(chuàng)建一個(gè)。PooledDataSource是一個(gè)簡單的、同步的、線程安全的數(shù)據(jù)庫連接池。

包 com.zetcode.client; 
導(dǎo)入 com.zetcode.jconfig.MyDataSourceFactory;
導(dǎo)入 com.zetcode.jconfig.MyMapper;
導(dǎo)入 java.io.IOException;
導(dǎo)入 java.util.Properties;
導(dǎo)入 javax.sql.DataSource;
導(dǎo)入 org.apache.ibatis.mapping.Environment;
導(dǎo)入 org.apache.ibatis.session.Configuration;
導(dǎo)入 org.apache.ibatis.session.SqlSession;
導(dǎo)入 org.apache.ibatis.session.SqlSessionFactory;
導(dǎo)入 org.apache.ibatis.session.SqlSessionFactoryBuilder;
導(dǎo)入 org.apache.ibatis.transaction.TransactionFactory;
導(dǎo)入 org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
公共類 MyBatisJavaConfClient {
    私有靜態(tài) SqlSessionFactory sesFact = null;
    public static void main(String[] args) throws IOException { 
        Properties prop = new Properties(); 
        prop.setProperty("驅(qū)動(dòng)程序", "com.mysql.jdbc.Driver"); 
        prop.setProperty("url", "jdbc:mysql://localhost:3306/testdb"); 
        prop.setProperty("user", "testuser"); 
        prop.setProperty("密碼", "test623");         
        MyDataSourceFactory mdsf = new MyDataSourceFactory(); 
        mdsf.setProperties(prop); 
        數(shù)據(jù)源 ds = mdsf.getDataSource();         
        TransactionFactory trFact = new JdbcTransactionFactory(); 
        環(huán)境 environment = new Environment("development", trFact, ds);
        config.addMapper(MyMapper.class);         
        sesFact = new SqlSessionFactoryBuilder().build(config); 
        嘗試(SqlSession session = sesFact.openSession()) {             
            int numOfBooks = session.selectOne("getNumberOfBooks"); 
            System.out.format("有 %d 本書", numOfBooks); 
        } 
    } 
}

在MyBatisJavaConfClient,我們使用 Java 代碼配置 MyBatis,構(gòu)建 SQL 會(huì)話,并執(zhí)行g(shù)etNumberOfBooks()方法。

屬性 prop = new Properties(); 
prop.setProperty("驅(qū)動(dòng)程序", "com.mysql.jdbc.Driver"); 
prop.setProperty("url", "jdbc:mysql://localhost:3306/testdb"); 
prop.setProperty("user", "testuser"); 
prop.setProperty("密碼", "test623");

這里我們?cè)O(shè)置數(shù)據(jù)庫屬性。

MyDataSourceFactory mdsf = new MyDataSourceFactory(); 
mdsf.setProperties(prop); 
數(shù)據(jù)源 ds = mdsf.getDataSource();

我們通過獲取數(shù)據(jù)源MyDataSourceFactory。

TransactionFactory trFact = new JdbcTransactionFactory(); 
環(huán)境 environment = new Environment("development", trFact, ds); 
配置配置 = 新配置(環(huán)境);
config.addMapper(MyMapper.class);

此代碼替換 XML 配置。我們使用JdbcTransactionFactory、 Environment和Configuration類。

sesFact = new SqlSessionFactoryBuilder().build(config);

類的實(shí)例Configuration被傳遞給SqlSessionFactoryBuilder's build()方法。

以上就是關(guān)于“MyBatis入門教程”的介紹,大家如果想了解更多相關(guān)知識(shí),不妨來關(guān)注一下動(dòng)力節(jié)點(diǎn)的Mybatis視頻教程,里面的課程內(nèi)容細(xì)致全面,通俗易懂,適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助哦。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 日日碰天天久久 | 色综网| 国产成人在线观看免费网站 | 亚洲精品99久久一区二区三区 | 亚洲一在线 | 亚洲性事 | 一级特黄aaa大片 | 亚洲aⅴ久久久噜噜噜噜 | 日韩伦理一区二区三区 | 久久草在线观看视频 | 曰批免费视频播放在线看片一 | 水浒传删减剧情在线观看 | 国产高清国产精品国产k | 欧美一级视频免费看 | 成人999 | 久久99中文字幕 | 欧美性猛交ⅹxxx乱大交按摩 | 草久在线观看 | 国产亚洲在线 | 欧美精品一区二区三区在线 | 国产精品欧美亚洲韩国日本99 | 亚洲国产第一 | vr欧美乱强伦xxxxx | 日韩精品免费一区二区 | 亚洲 欧美 成人日韩 | 国产精品99久久99久久久看片 | 青草视频国产 | 久操视频免费观看 | 99热在线观看免费 | 中文字幕在线精品视频入口一区 | 91精品久久一区二区三区 | 久久免费视频1 | 啪啪婷婷| 99热这里只有精品在线观看 | 亚洲色吧 | 极品福利在线 | 在线观看国产视频 | 成人a毛片| 你懂的国产 | 国产日韩精品视频 | 四虎新网站 |