【MyBatis】实现一个增删改查完整的小入门Demo
2019-02-11 本文已影响61人
大数据阶梯之路
本篇对mybatis学习做一个应用总结,使用开发工具IDEA操作数据库Mysql8撸一个入门级的demo,具有增删改查的功能。且学习到一些关于Junit单元测试的使用。
一、创建项目
1、创建一个maven项目,添加框架需要的jar包依赖,对应使用pom文件引入依赖。
<dependencies>
<!--MyBatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!--mysql8数据库驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<!--Junit单元测试工具-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>
上面的<scope>标签设定为test表示只参与测试阶段的相关工作,不会被打包出去。关于maven中的<scope>标签详解请看这里。
引入依赖下载的对应架包就在此处可以看到了。
2、接下来新建一个mybatis-cfg.xml配置文件,可从官网文档中直接复制模板过来,然后对应修改属性参数的值,可采用①直接写死在value中或者②引入jdbc.properties文件的方式(建议第二种)。
<?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="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
3、使用IDEA快速创建POJO类,实现与数据库的映射,附骚操作。
图片.png 之后弹出框选择对应生成的entity文件夹,就自动生成了对应的代码了,不过此时可能要修改下包名,按下alt+enter快捷键自动去修改。如下图所示: 图片.png4、新建一个mapper文件夹,然后在里面编写对应的mapper映射文件,也可从官网文档中复制,命名规则通常为
实体类名+Mapper
,如userMapper
<?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="xiaojiang.mybatisdemo.mapper.userMapper">
<select id="selectUserById" resultType="xiaojiang.mybatisdemo.entity.User">
select id,name,sex from user where id = #{id};
</select>
<select id="selectUserByName" parameterType="string" resultType="xiaojiang.mybatisdemo.entity.User">
select * from user where name like '%${value}%';
</select>
<insert id="insertUser" parameterType="xiaojiang.mybatisdemo.entity.User">
insert into User(id,name,sex) values(#{id},#{name},'${sex}');
</insert>
<update id="updateUser" parameterType="xiaojiang.mybatisdemo.entity.User">
update User set name=#{name} where id = #{id};
</update>
<delete id="deleteUser" parameterType="int">
delete from User where id = #{id};
</delete>
</mapper>
5、创建UserDao对应的单元测试UserDaoTest,可通过IDEA快速创建单元测试,具体操作为:对应类源文件界面然后右键,选择GO TO>去开始创建Junit单元测试。以下是单元测试的具体编写:
package xiaojiang.mybatisdemo.dao;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import xiaojiang.mybatisdemo.entity.User;
import java.util.List;
public class UserDaoTest {
UserDao userDao;
@Before
public void setUp() throws Exception {
userDao = new UserDao();
}
@After
public void tearDown() throws Exception {
}
@Test
public void selectUserById() throws Exception{
User user = userDao.selectUserById(2);
System.out.println(user);
Assert.assertNotNull(user);
}
@Test
public void selectUserByName() throws Exception{
List<User> users = userDao.selectUserByName("江");
System.out.println(users);
Assert.assertNotNull(users);
}
@Test
public void insertUser() throws Exception {
User user = new User();
user.setId(5);
user.setName("小郑");
user.setSex("女");
Assert.assertEquals(1,userDao.insertUser(user));
}
@Test
public void updateUser() throws Exception {
User user = userDao.selectUserById(5);
user.setName("大郑");
Assert.assertEquals(1,userDao.updateUser(user));
}
@Test
public void deleteUser() throws Exception {
Assert.assertEquals(1,userDao.deleteUser(5));
}
}
6、运行单元测试即可查看结果(增删改查
)
测试查找多个用户操作: 图片.png
测试插入用户操作: 图片.png
测试修改用户操作: 图片.png
测试删除用户操作: 图片.png