更新時間:2022-06-01 10:14:54 來源:動力節點 瀏覽1920次
MyBatis是一個 Java 持久性框架,它使用 XML 描述符或注釋將對象與存儲過程或 SQL 語句耦合在一起。與 ORM 框架不同,MyBatis 不會將 Java 對象映射到數據庫表,而是將 Java 方法映射到 SQL 語句。MyBatis 允許使用所有數據庫功能,如存儲過程、視圖、任何復雜性的查詢和供應商專有功能。
使用 MyBatis 的好處是:
開箱即用的表/查詢緩存
減少大部分 JDBC 樣板文件
提高生產力
SQL 代碼與 Java 類的分離
可以在不使用 XML 的情況下在純 Java 中配置 MyBatis。在下面的示例中,我們將找出表中的書籍數量。
包 com.zetcode.map;
導入 org.apache.ibatis.annotations.Select;
公共接口 MyMapper {
@Select("SELECT COUNT(*) FROM MyBooks")
public int getNumberOfBooks();
}
MyMapper包含計算表中行數的 SQL 代碼MyBooks。
包 com.zetcode.jconfig;
導入 java.util.Properties;
導入 javax.sql.DataSource;
導入 org.apache.ibatis.datasource.DataSourceFactory;
導入 org.apache.ibatis.datasource.pooled.PooledDataSource;
公共類 MyDataSourceFactory 實現 DataSourceFactory {
private Properties prop;
@Override
公共數據源 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 從給定的屬性創建一個。PooledDataSource是一個簡單的、同步的、線程安全的數據庫連接池。
包 com.zetcode.client;
導入 com.zetcode.jconfig.MyDataSourceFactory;
導入 com.zetcode.jconfig.MyMapper;
導入 java.io.IOException;
導入 java.util.Properties;
導入 javax.sql.DataSource;
導入 org.apache.ibatis.mapping.Environment;
導入 org.apache.ibatis.session.Configuration;
導入 org.apache.ibatis.session.SqlSession;
導入 org.apache.ibatis.session.SqlSessionFactory;
導入 org.apache.ibatis.session.SqlSessionFactoryBuilder;
導入 org.apache.ibatis.transaction.TransactionFactory;
導入 org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
公共類 MyBatisJavaConfClient {
私有靜態 SqlSessionFactory sesFact = null;
public static void main(String[] args) throws IOException {
Properties prop = new Properties();
prop.setProperty("驅動程序", "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);
數據源 ds = mdsf.getDataSource();
TransactionFactory trFact = new JdbcTransactionFactory();
環境 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,構建 SQL 會話,并執行getNumberOfBooks()方法。
屬性 prop = new Properties();
prop.setProperty("驅動程序", "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);
數據源 ds = mdsf.getDataSource();
我們通過獲取數據源MyDataSourceFactory。
TransactionFactory trFact = new JdbcTransactionFactory();
環境 environment = new Environment("development", trFact, ds);
配置配置 = 新配置(環境);
config.addMapper(MyMapper.class);
此代碼替換 XML 配置。我們使用JdbcTransactionFactory、 Environment和Configuration類。
sesFact = new SqlSessionFactoryBuilder().build(config);
類的實例Configuration被傳遞給SqlSessionFactoryBuilder's build()方法。
以上就是關于“MyBatis入門教程”的介紹,大家如果想了解更多相關知識,不妨來關注一下動力節點的Mybatis視頻教程,里面的課程內容細致全面,通俗易懂,適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習