從最開始的SSH(Struts+Spring+Hibernate),到後來的SMM(SpringMVC+Spring+MyBatis),到目前的S(SpringBoot),隨着框架的不斷更新換代,也爲咱們廣大的程序猿提供了更多的方便,一塊兒搭建一個從控制層到持久層的項目可能須要一兩天的時間,可是採用SpringBoot的方式,咱們可能只須要10分鐘就能輕鬆完成一個web項目的搭建,下面咱們介紹一下SpringBoot2.0整合MyBatis的方法 java
1、新建一個項目,引入相關依賴mysql
<!-- 單元測試依賴 start --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <!-- 單元測試依賴 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>
2、新建一個實體類git
public class User { private Long id; private String name;//姓名 private Integer age;//年齡 //。。。 }
3、新建一個Dao層web
public interface UserDao { int addUser(User user); int deleteUserById(Long id); int updateUserById(User user); User queryUserById(Long id); List<User> queryUserList(); }
4、新建MyBatis的sql操做文件spring
<?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>
5、修改相關配置文件和MyBatis配置sql
@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文件的掃描路徑,達到對應映射的效果springboot
6、編寫單元測試類mybatis
/** * * @author 明天的地平線 * * SpringBoot 以前的版本配置單元測試類時使用 @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/Sprin...
原文地址:http://somta.com.cn/#/blog/vi...app
本文由明天的地平線創做,如想了解更多更詳細的內容,請關注一下公衆號,公衆號內將進行最新最實時的更新!框架