更新时间:2022-06-01 10:14:54 来源:星辉 浏览1499次
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年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习