Mybatis框架搭建的步骤及dao层的添加
Mybatis框架搭建的步骤
①创建maven项目
②在pom.xml中引入依赖,各种依赖包
mysql、mybatis、lombok。。。
③创建对应实体类 entity
④创建mybatis配置文件
mybatis-config.xml
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"></mapper>
</mappers>
</configuration>
⑤创建Mapper映射文件
UserMapper.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.aaa.qy129.dao.UserDao">
<select id="selectAll" resultType="com.aaa.qy129.entity.User">
select * from user
</select>
<select id="selectById" resultType="com.aaa.qy129.entity.User">
select * from user where id=#{id}
</select>
<select id="selectByNameAndAge" parameterType="com.aaa.qy129.entity.User" resultType="com.aaa.qy129.entity.User">
select * from user where name=#{name} and age=#{age}
</select>
<insert id="insert" parameterType="com.aaa.qy129.entity.User">
insert into user (id,name,age) values (#{id},#{name},#{age})
</insert>
</mapper>
⑥把映射文件加载到mybatis配置文件中
<mappers>
<mapper resource="mapper/UserMapper.xml"></mapper>
</mappers>
⑦测试运行
升级
添加dao层
创建dao接口
此时,UserMapper映射文件就是接口的实现类。
将Mapper的namespace设置为接口的全类名
常见异常
①:
当数据库引擎是innodb时,我们需要手动提交事务
session.commit();
数据库引擎为Myisam时,不需要提交事务,该引擎没有事务
②:时区异常
添加serverTimezone=Asia/Shanghai
③:实体类解析异常
实体类的路径错误
④:该异常很离谱
测试单元或者重装maven、idea
⑤:mysql依赖版本太低
⑥:Mapper的id不存在或者Mapper文件没有加载到配置文件中
⑦:解决输出乱码问题
⑧:绑定异常
此时,我们需要将接口的参数添加@Param注解,
再次运行便能成功