转 在Spring Boot中集成Mybatis
3398 | 0 | 0
在Spring Boot中集成Mybatis
在POM中添加Mybatis的相关起步依赖
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
配置数据库连接,我们在application.yml文件中配置一下内容
spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/restful?useUnicode=true&characterEncoding=UTF-8&useSSL=false username: root password: root initialize: true
在数据库中创建user表,字段为ID(INT),NAME(VARCHAR),HOBBY(VARCHAR),并创建user实体Bean,如下:
public class User { private Integer id; private String name; private String hobby; //省去get、set方法 //之前文章我提过一个lombok的框架,可以省去get set方法,大家可以参考一下 //https://my.oschina.net/wangxincj/blog/811611 @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", hobby='" + hobby + '\'' + '}'; } }
user对象创建好后我们编写UserMapper,此处有两种方法,大家可以自行选择:
1、第一种方法如下:
编写Mapper
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @Mapper public interface UserMapper { int insert(@Param("pojo") User pojo); int insertList(@Param("pojos") List<User> pojo); int update(@Param("pojo") User pojo); }
在resources文件夹下面创建mapper文件夹,存放mapper.xml文件
编写UserMapper.xml
<?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.wang.mybatis.UserMapper"> <!--auto generated Code--> <resultMap id="AllColumnMap" type="com.wang.mybatis.User"> <result column="id" property="id"/> <result column="name" property="name"/> <result column="hobby" property="hobby"/> </resultMap> <!--auto generated Code--> <sql id="all_column"> `id`, `name`, `hobby` </sql> <!--auto generated Code--> <insert id="insert"> INSERT INTO `user` (`id`,`name`,`hobby`) VALUES (#{pojo.id},#{pojo.name},#{pojo.hobby}) </insert> <!--auto generated Code--> <insert id="insertList"> INSERT INTO `user`( <include refid="all_column"/> )VALUES <foreach collection="pojos" item="pojo" index="index" separator=","> ( #{pojo.id}, #{pojo.name}, #{pojo.hobby} ) </foreach> </insert> <!--auto generated Code--> <update id="update"> UPDATE `user` <set> <if test="pojo.id != null"> `id` = #{pojo.id}, </if> <if test="pojo.name != null"> `name` = #{pojo.name}, </if> <if test="pojo.hobby != null"> `pwd` = #{pojo.hobby} </if> </set> WHERE `id` = #{pojo.id} </update> </mapper>
在application.yml中添加Mybatis的相关配置
mybatis: mapper-locations: classpath*:mapper/*Mapper.xml type-aliases-package: com.wang.mybatis
2、第二种方法如下
编写Mapper对象
@Mapper public interface UserMapper { @Insert("INSERT INTO user(name, hobby) VALUES(#{name}, #{hobby})") int insert(@Param("name") String name, @Param("hobby") String hobby); @Update("UPDATE user SET hobby=#{hobby} WHERE name=#{name}") void update(User user); @Delete("DELETE FROM user WHERE id =#{id}") void delete(Long id); }
不难看出第一种方法是比较传统的xml方式配置,而第二种方式则是去除了xml将sql配置到了注解中,简化了配置,也更符合Spring Boot的初衷。两种方法大家看自己的情况而定吧。
至此,Mybatis的相关配置完成。
0
小飞
19人已关注
领课教育 29707
7896
update 44041
3664
领课教育 16276
husheng 19316
请更新代码 40271
凯哥Java 837
凯哥Java 840
凯哥Java 668