MyBatis
- 概念
是一个ORM 框架,对 JDBC做了封装;让程序员更加方便的对数据库进行各种增删改查的操作。
ORM 框架:
首先ORM框架是一个统称。
ORM框架包括: Mybatis / MyBatis Plus / Spring Data Jpa / Hibernate 等 dao层的框架
ORM: Object Relationship Mapping
对象关系映射
Mybatis 是一个对象关系映射框架
这一类框架完成了一个很重要的功能:
把关系型的数据映射成对象。
只要是能完成这种功能的框架,我们都称之为ORM框架。
我们发现,不断的学习新的框架,不同的框架不断帮我们减少代码量。
我们程序员写的代码就越来越少,越来越重要。
最终结果就是我们程序员只写核心代码,或者涉及到业务逻辑的代码。
剩下的代码都交给框架来实现。
- 怎么用 框架搭建
很重要,必须自己会搭建
下去搭五遍以上就会了。
- 新建项目
- 添加依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<!--因为要对数据库进行操作 肯定要添加数据库依赖 这里适用mysql的驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<!--mybatis 需要日志的依赖 实现日志的打印 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
|
- 编写数据库的配置文件
这一步并不是必须的。这么写比较灵活
一会讲为什么不是必须的
- 需要日志文件的配置文件
- 编写MyBatis 的配置文件
可以从官网找
复制之后,对内容进行修改即可
不建议这么写,不够灵活。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置 database.properties 文件-->
<properties resource="database.properties"></properties>
<!-- 配置mybatis 是log 用的是 log4j-->
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
|
完整内容如下:
getConnection()
rs.close()
ps.close()
这些代码都不用写了
后期使用c3p0 dbcp druid 等优秀的第三方连接池。
- 创建数据库
- 根据数据库创建实体类
- 编写接口
其实这一步在这里不是必须的。
后面三个框架整合完毕后,MyBatis 是面向接口编程,会根据接口动态生成dao层的实现类。
这里为了养成面向接口的习惯,我们先把接口写上。
- 写与接口对应的映射文件
映射文件的作用:
1. 写与接口对应的sql语句
2. 定义映射规则
调用方法的时候,最终一定是要执行对应的sql 语句。
所以我们把sql 语句写在 对应的映射文件中。
与Order相关的sql 写在 OrderMapper.xml 中; 与Role 相关的sql 语句写在RoleMapper.xml中。
如果乱写,别人是找不到sql语句的。
所以我们要按照约定。
映射文件的内容可以从官网找,然后修改一下就可以了
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhiyou.mapper.UserMapper">
<!--sql语句 -->
<select id="count" resultType="int">
select count(*) as count from smbms_user
</select>
</mapper>
|
如果此sql 可以正常执行,证明框架搭建成功!
- 在配置文件中 配置 映射文件的位置
- 测试
写测试类测试一下
运行时候发现找不到 映射文件
- 继续测试
建立连接后,可以执行 sql语句
框架搭建完毕