一些术语
POJO(Plain Ordinary Java Object)简单的Java对象
ORM:Object Relational Mapping,对象关系映射
JDBC:Java Data Base Connectivity
JDBC和MyBatis
JDBC是由Sun公司提出的规范,用于Java和数据库之间的连接。它只是一系列接口,各数据库厂商负责具体的实现。
通过JDBC对数据库进行操作通常需要几步,以查询为例:
- 注册驱动提供数据库信息并得到一个Connection对象
- 通过Connection得到Statement对象
- 执行SQL语句,获得结果集
- 操作结果集得到相应数据转化为具体的POJO对象
- 关闭相关资源
MyBatis核心组件
SqlSessionFactoryBuilder:根据配置信息生成SqlSessionFactory
SqlSessionFactory:一个接口,用于生成SqlSession
SqlSession:发送SQL去执行,也可以得到Mapper
Mapper:用于发送SQL执行,并返回结果。
如图:
文章图片
构建SqlSessionFactory 我们有两种方式得到SqlSessionFactory,一种是通过XML文件方式,另一种是通过代码方式。通过XML方式得到SqlSessionFactory如下:
// 通过配置文件得到SqlSessionFactory,并得到SqlSession
public SqlSession getSqlSession() throws IOException{
String resources = "config/Configuration.xml";
SqlSession sqlSession = null;
Reader reader = Resources.getResourceAsReader(resources);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
映射器 我们有两种方式得到映射器,一种是XML文件方式,一种是通过注解。
XML 注解 一个简单的例子
下边这个例子不通过映射器直接通过SQL ID加参数发送SQL并执行。
Mapper配置文件:
// 返回类型
DELETE FROM message WHERE id=#{_parameter}
【javaEE|MyBatis学习之初窥门径】查询代码:
public List queryList(String command, String description) {
DbAccess dbAccess = new DbAccess();
List messageList = new ArrayList<>();
try {
// 这个请查阅上一节得到SQLSession的代码
SqlSession sqlSession = dbAccess.getSqlSession();
Message message = new Message();
message.setCommand(command);
message.setDescription(description);
//只能有一个参数,故用message包装参数
// 直接通过SQL ID加参数发送SQL语句
messageList = sqlSession.selectList("Message.queryList",message);
} catch (IOException e) {
e.printStackTrace();
}
return messageList;
}
推荐阅读
- 后端框架|Spring中的JDBC模块
- 后端框架|Spring集成Mybatis
- 后端框架|Mybatis对数据库数据的查询
- Java毕业设计项目实战篇|Java项目:企业人事管理系统(java+SSM+jsp+mysql+maven)
- spring|springboot+mybatis架构—基础知识学习(1)
- 学习经历|cgb2107-第三阶段-day03-Mybatis入门
- BUG小王子|JDBC及Mybatis常见BUG
- Spring|七十四、Spring与DAO操作 query()
- Spring|七十三、Spring与DAO操作 update()