目录
2.在项目下创建Mybatis全局配置文件: mybatis-config.xml
4.mapper代理模式: dao接口(mapper接口) 推荐
一、Mybatis的介绍
1.Mybatis的使用范围
是解决dao层问题解决方案,适用于dao层,底层使用到技术是JDBC。
2.Mybaatis的优势
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
二、Mybatis的使用
1.例如在maven中使用,在pom.xml文件添加依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
2.在项目下创建Mybatis全局配置文件: mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>
3. 在该配置文件创建一个数据源
<!--开发环境-->
<environments default="mysql">
<environment id="mysql">
<!--事务管理器: JDBC: 使用jdbc管理事务, 需要手动提交事务-->
<transactionManager type="JDBC"/>
<!--dataSource数据源的类型: POOLED 连接池 UNPOOLED: 不带连接池 -->
<dataSource type="POOLED">
<!--数据库四大参数-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</dataSource>
</environment>
</environments>
4.mapper代理模式: dao接口(mapper接口) 推荐
4.1 编写一个Mapper接口(Dao接口)
4.2 编写对应的Sql映射文件: 满足Mapper代理实现的要求
4.3 一个Mapper接口对应一个sql映射文件
三、Mybatis使用细节
1. #{}和${}的区别与使用
#{}
使用?占位 推荐
${}
拼接sql, 有sql注入风险
在模糊查询 like 关键字, 配合 % 任意多个任意字符, _一个任意字符 通配符和 动态排序 使用${}。
2.selectOne() 与 selectList()
selectOne底层使用selectList,selectOne都可以被selectList替换。
3.查询到生成id
使用 last_insert_id()函数(前提: insert与LAST_INSERT_ID 必须在同一次会话(session)中 )。
<insert id="" parameterType="">
<selectKey order="AFTER" resultType="int" keyProperty="id" >
select LAST_INSERT_ID()
</selectKey>
sql语句
</insert>