MyBatis+SpringMVC+SpringBootJava后端日更达人联盟

【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快捷键自动去修改。如下图所示: 图片.png
4、新建一个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
测试删除用户操作: 图片.png
小Demo我已经放在我的码云上,有需要看源码的小伙伴可直接点击跳转到这里mybatisDemo代码传送门

附:
1、期间使用IDEApush到码云上出现的project reject报错解决方案
2、git的使用学习看我这篇

上一篇下一篇

猜你喜欢

热点阅读