SpringBoot2.0之四 簡(jiǎn)單整合MyBatis

??從最開始的SSH(Struts+Spring+Hibernate),到后來的SMM(SpringMVC+Spring+MyBatis),到目前的S(SpringBoot),隨著框架的不斷更新?lián)Q代,也為我們廣大的程序猿提供了更多的方便,一起搭建一個(gè)從控制層到持久層的項(xiàng)目可能需要一兩天的時(shí)間,但是采用SpringBoot的方式,我們可能只需要10分鐘就能輕松完成一個(gè)web項(xiàng)目的搭建,下面我們介紹一下SpringBoot2.0整合MyBatis的方法

一、新建一個(gè)項(xiàng)目,引入相關(guān)依賴

   <!-- 單元測(cè)試依賴 start -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    <!-- 單元測(cè)試依賴 end -->
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.1</version>
   </dependency>
    
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

二、新建一個(gè)實(shí)體類

public class User {

    private Long id;
    
    private String name;//姓名
    
    private Integer age;//年齡
    //。。。

}

三、新建一個(gè)Dao層

public interface UserDao {

    int addUser(User user);
    
    int deleteUserById(Long id);
    
    int updateUserById(User user);

    User queryUserById(Long id);
    
    List<User> queryUserList();
}

四、新建MyBatis的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.somta.springboot.dao.UserDao" > 
<!-- Result Map-->
<resultMap id="BaseResultMap" type="com.somta.springboot.pojo.User" >
    <result column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="age" property="age"/>
</resultMap>
       
<!-- th_role_user table all fields -->
<sql id="Base_Column_List" >
    id, name, age
</sql>
   
<insert id="addUser" parameterType="com.somta.springboot.pojo.User" >
    insert into t_user (id, name, age) 
    values (#{id},#{name},#{age});
</insert>

<delete id="deleteUserById" parameterType="java.lang.Long">
 delete from t_user where id=#{id}
</delete>

<update id="updateUserById" parameterType="com.somta.springboot.pojo.User" >
    update t_user set 
    <trim  suffixOverrides="," >
    <if test="id != null and id != ''">
        id=#{id},
    </if>
    <if test="name != null and name != ''">
        name=#{name},
    </if>
    <if test="age != null and age != ''">
        age=#{age},
    </if>
    </trim> where id=#{id}
</update>

<select id="queryUserById" resultMap="BaseResultMap" parameterType="java.lang.Long">
    select <include refid="Base_Column_List" /> 
    from t_user where id = #{id}
</select>

<select id="queryUserList" resultMap="BaseResultMap">
    select <include refid="Base_Column_List" /> 
    from t_user
</select>

</mapper>

五、修改相關(guān)配置文件和MyBatis配置

@SpringBootApplication
@MapperScan("com.somta.springboot.dao")
public class Application {
    public static void main(String [] args) {
        SpringApplication.run(Application.class, args);
    }
}


spring:  
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: 123456
    
mybatis:
  mapper-locations: classpath*:mybatis/**/Mysql_*Mapper.xml

通過@MapperScan("com.somta.springboot.dao")指定Dao層的包路徑,通過mapper-locations配置了MyBatis文件的掃描路徑,達(dá)到對(duì)應(yīng)映射的效果

六、編寫單元測(cè)試類

/**
 * 
 * @author 明天的地平線
 * 
 * SpringBoot 之前的版本配置單元測(cè)試類時(shí)使用 @SpringApplicationConfiguration(Application.class)
 * SpringBoot 1.5.9  改用@SpringBootTest(classes = Application.class)
 * 
 *
 */
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = Application.class)
public class MyBatisTest {

    @Autowired
    private UserDao userDao;
    
    /**
     * 新增用戶
     * @throws Exception
     */
    @Test
    public void testAddUser() throws Exception {
        User user = new User();
        user.setId(889L);
        user.setName("zhangsan");
        user.setAge(12);
        userDao.addUser(user);
    }
    
    /**
     * 刪除用戶
     * @throws Exception
     */
    @Test
    public void testDelUser() throws Exception {
        userDao.deleteUserById(889L);
    }
    
    /**
     * 修改用戶信息
     * @throws Exception
     */
    @Test
    public void testUpdUser() throws Exception {
        User user = new User();
        user.setId(2L);
        user.setName("zhangsan99");
        user.setAge(122);
        userDao.updateUserById(user);
    }
    
    /**
     * 查詢用戶
     * @throws Exception
     */
    @Test
    public void testQueryUser() throws Exception {
        User user = userDao.queryUserById(2L);
        System.out.println(user.getName());
    }
    
    /**
     * 查詢所有用戶
     * @throws Exception
     */
    @Test
    public void testQueryUserList() throws Exception {
        List<User> list = userDao.queryUserList();
        for (User user : list) {
            System.out.println(user.getName());
        }
    }
    
}

Git代碼地址:https://gitee.com/Somta/SpringBoot/tree/master/SpringBoot-mybatis
原文地址:http://somta.com.cn/#/blog/view/b8333bea30ca4500abb01e470121ba14

本文由明天的地平線創(chuàng)作,如想了解更多更詳細(xì)的內(nèi)容,請(qǐng)關(guān)注一下公眾號(hào),公眾號(hào)內(nèi)將進(jìn)行最新最實(shí)時(shí)的更新!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容