Springboot +Mybatis整合--xml方式

Posted on 2019-12-12 14:48  liuyao_commit  阅读(925)  评论(0编辑  收藏  举报

1. 配置依赖pom.xml

dependency>
     <groupId>org.mybatis.spring.boot</groupId>
     <artifactId>mybatis-spring-boot-starter</artifactId>
     <version>2.1.1</version>
</dependency>
<!-- mybatis mapper自动生成插件 -->
<!-- 没有使用-->
<!--添加数据库链接 -->
<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
</dependency>

2. 配置文件application.xml

pring:
  datasource:
      password: root
      username: root
      url: jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8
      driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
  mapper-locations: classpath:/mapper/*Mapper.xml
  mybatis:
     type-aliases-package: com.liuyao.demo.entity

3. Mybatis mapper文件

仅是参考的mapper模型,有些像foreach复杂的处理情况都没有,

<mapper namespace="com.neo.mapper.UserMapper" >
    <resultMap id="BaseResultMap" type="com.neo.entity.UserEntity" >
        <id column="id" property="id" jdbcType="BIGINT" />  // 这里是个注意的地方,因为我数据库里设置的是bigint
        <result column="userName" property="userName" jdbcType="VARCHAR" />
        <result column="passWord" property="passWord" jdbcType="VARCHAR" />
        <result column="user_sex" property="userSex" javaType="com.neo.enums.UserSexEnum"/> //这里也是
        <result column="nick_name" property="nickName" jdbcType="VARCHAR" />
    </resultMap>

    <sql id="Base_Column_List" >
        id, userName, passWord, user_sex, nick_name
    </sql>

    <select id="getAll" resultMap="BaseResultMap"  >
       SELECT 
       <include refid="Base_Column_List" />
       FROM users
    </select>

    <select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" >
        SELECT 
       <include refid="Base_Column_List" />
       FROM users
       WHERE id = #{id}
    </select>

    <insert id="insert" parameterType="com.neo.entity.UserEntity" >
       INSERT INTO 
            users
            (userName,passWord,user_sex) 
        VALUES
            (#{userName}, #{passWord}, #{userSex})
    </insert>

    <update id="update" parameterType="com.neo.entity.UserEntity" >
       UPDATE 
            users 
       SET 
        <if test="userName != null">userName = #{userName},</if>
        <if test="passWord != null">passWord = #{passWord},</if>
        nick_name = #{nickName}
       WHERE 
            id = #{id}
    </update>

    <delete id="delete" parameterType="java.lang.Long" >
       DELETE FROM
             users 
       WHERE 
             id =#{id}
    </delete>
</mapper>

mapper类(是个接口)

@Mapper
@Component
public interface UserMapper {
/**
* 查询所有用户
* @return
*/
public List lsitAllUser();
public User listUserById(@Param("id") int id);
Integer insertUser( @Param("user") User user);
}
然后测试就行;
遇到问题:

  1. @Controller 和@ RequestController之间的区别
  2. 使用@controller中Unknown return value type 这个问题的解决:@ResposeBody
  3. @RequestBody注解的使用