Mybatis
框架发展
Dao层->数据库的架构
Hibernate
Mybatis
Mybatis-plus
用户->Servlet层
Struts-2
Springmvc
Spring SpringBoot(整合几个框架)
Mybatis-plus
是一个Mybaits的增强工具,在Mybaits的基础上制作增强不做改变,为简化开发,提高效率而生
Mybatis工作原理
1.框架配置文件,在pom文件中配置
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.5</version>
</dependency>
<!-- 简化bean代码的工具包 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional> <!-- 可选依赖-->
<version>1.18.4</version>
</dependency>
<!-- junit测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<!-- 更清晰的打印日志 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
</dependencies>
1.1连接数据库
1.1.1 写连接数据库的properties文件
log4j.rootLogger=DEBUG,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%t] [%c]-[%p] %m%n
1.1.2 mabites-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.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/smbms?
useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQuerie
s=true&useSSL=false &serverTimezone=GMT%2b8"/>
<property name="username" value="root"/>
<property name="password" value="297999"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
1.1.3 User类
1.2扫描mapper.xml
1.2.1 Mapper接收文件:写UserMapper接口
public interface UserMapper {
List<User> getUser();
}
1.2.2Mapper.xml配置文件:insertUser配置(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.wenping.mapper.UserMapper">
<select id="getUser" resultType="com.wenping.pojo.User">
select * from smbms_user
</select>
</mapper>
2.测试
2.1测试代码
public class TestMybatis {
@Test
public void testUserList() throws Exception{
// 加载mybatis的配置文件
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new
SqlSessionFactoryBuilder().build(inputStream);
// 打开一个连接
SqlSession sqlSession = sqlSessionFactory.openSession();
// 得到mapper对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> list = userMapper.getUser();
for (User user : list) {
System.out.println(user);
}
}
}
2.2测试结果

3.遇到的问题
org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.sql.SQ
解决:
在property的value下的最后加入时区&serverTimezone=GMT%2b8
3.测试增删改功能
3.1在UserMapper接口中加入方法
public interface UserMapper {
//查询全部用户
List<User> getUser();
//查询单个用户
User getOneUser(int id);
//添加用户
Integer addUser(User user);
//修改用户
Integer updateUser(User user);
//删除用户
Integer delUser(String userCode);
}
3.2在UserMapper.xml文件中添加sql语句
<select id="getOneUser" resultType="com.wenping.pojo.User">
select * from smbms_user where id=#{id}
</select>
<insert id="addUser">
insert into smbms_user(userCode,userName,userPassword) values(#{userCode},#{userName},#{userPassword})
</insert>
<update id="updateUser">
update smbms_user set userPassword=#{userPassword} where id=#{id}
</update>
<delete id="delUser" parameterType="com.wenping.pojo.User">
delect from smbms_user where userCode=#{userCode}
</delete>
3.3在测试文件中填写测试方法
//查询单个用户信息
@Test
public void testUser() throws Exception {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new
SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User oneUser = userMapper.getOneUser(1);
System.out.println(oneUser);
}
//添加用户信息
@Test
public void testAddUser() throws Exception {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new
SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession(true);//默认提交事务
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Integer i = userMapper.addUser(new User(16, "wenwen", "文文", "297999", 2, null, null, null, null, null, null, null, null));
System.out.println(i);
}
//修改用户信息
@Test
public void testUpdateUser() throws Exception {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new
SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.updateUser(new User(22, "wenwen", "文文", "321000", null, null, null, null, null, null, null, null, null));
}
//删除用户信息
@Test
public void testDelUser() throws Exception {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new
SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Integer i = userMapper.delUser("wenwen");
}
3.4测试结果
3.4.1查询单个用户信息

3.4.2添加用户

3.4.3修改用户信息

3.4.4删除用户
出错

浙公网安备 33010602011771号