对于初学者,如果进行mybatis的学习呢?我总结了几点,会慢慢的更新出来。首先大家需要了解mybatis是什么、用mybatis来做什么、为什么要用mybatis、有什么优缺点;当知道了为什么的时候就开始了解如何用的问题,如何使用mybatis、有几种使用方式、各种方式的优缺点,在这个阶段也会学习mybatis涉及到的一些标签的用法;当知道了基础用法之后,就开始接触一些高级的用法,例如动态sql的使用、mybatis的缓存使用等;至此,在实战项目中使用mybatis进行开发已经没有问题了。
接下来就开始深入的研究一下mybatis这个持久层的框架,在纯技术的方面进行研究,提高自己的能力。首先,大家需要了解一下mybatis的整体技术架构和工作原理;接下来,就开始了解一下mybatis各大核心组件的具体功能及其工作原理。至此,算是对mybatis的原理简单的了解一下了,由于博主的能力有限,因此对于mybatis的框架技术研究也就到这里算结束了。
最后会了解一些其他的东西,例如:mybatis的逆向工程使用、如何开发一个mybatis插件,在这里会介绍一下mybatis的分页实现等。
至此,mybatis也算是入门了,出去就可以和别人说,你稍微了解mybatis框架,对其也多少有一点自己的理解和看法了。
目录
1、创建并实例化配置类,获取到SqlSessionFactory
上一节 说到通过mybatis的全局配置文件 mybatis-config.xml 进行mybatis的配置,在启动应用时,mybatis会自动解析 mybatis-config.xml 进行初始化,其实这个过程就是 解析配置文件,实例化配置类 Configuration 的过程。
基于此,可以不通过全局配置文件初始化mybatis,而通过Configuration配置类实现,具体操作如下:
1、创建并实例化配置类,获取到SqlSessionFactory
public static SqlSessionFactory buildSqlSessionFactory(){
SqlSessionFactory sqlSessionFactory = null;
// 准备数据源连接信息
DataSource dataSource = new PooledDataSource(
"com.mysql.cj.jdbc.Driver",
"jdbc:mysql://localhost:3306/app-oa?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT",
"root",
"*******");
// 准备事务管理
TransactionFactory transactionFactory = new JdbcTransactionFactory();
// 构建一个环境
Environment environment = new Environment("development" , transactionFactory, dataSource);
// 实例化配置类
Configuration configuration = new Configuration(environment);
// 注册映射器类
configuration.addMapper(UserMapper.class);
// 获取SqlSessionFactory, 实例化结束
sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
return sqlSessionFactory;
}
2、添加sql映射文件,需要与对应的接口在统一目录下
3、进行数据查询操作
public static void main(String[] args) throws IOException {
// 获取 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = MybatisConfig.buildSqlSessionFactory();
// 获取 SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 通过SqlSession进行接下来的数据处理操作
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.selectUser(5L);
// 关闭 SqlSession
sqlSession.close();
System.out.println(user);
}
这个就不详细介绍了,会用即可,如果感兴趣,可以看一下源码是如何处理。