发表于: 2017-12-16 23:15:37

1 641


今天完成的事
讲小课堂
除了昨天日报的内容外
还额外添加了关于spring boot和Mybatis 的整合
首先引入jar包
<dependency>
       <groupId>org.mybatis.spring.boot</groupId>
       <artifactId>mybatis-spring-boot-starter</artifactId>
       <version>1.1.1</version>
</dependency>
介绍两种开发模式
无配置文件注解版
1.添加maven文件
2.application.properties 添加相关配置
mybatis.type-aliases-package=com.neo.entity
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = root
springboot会自动加载spring.datasource.*相关配置,数据源就会自动注入到sqlSessionFactory中,sqlSessionFactory会自动注入到Mapper中,对了你一切都不用管了,直接拿起来使用就行了。
在启动类中添加对mapper包扫描@MapperScan
3、开发Mapper
第三步是最关键的一块,sql生产都在这里
public interface UserMapper {
       
       @Select("SELECT * FROM users")
       List<UserEntity> getAll();
       
       @Select("SELECT * FROM users WHERE id = #{id}")    
       UserEntity getOne(Long id);
       @Insert("INSERT INTO users(userName,passWord,user_sex) VALUES(#{userName}, #{passWord}, #{userSex})")
       void insert(UserEntity user);
       @Update("UPDATE users SET userName=#{userName},nick_name=#{nickName} WHERE id =#{id}")
       void update(UserEntity user);
       @Delete("DELETE FROM users WHERE id =#{id}")
       void delete(Long id);
}
极简xml版本
1.配置
pom文件和上个版本一样,只是application.properties新增以下配置
mybatis.config-locations=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
指定了mybatis基础配置文件和实体类映射文件的地址
mybatis-config.xml 配置
<configuration>
       <typeAliases>
               <typeAlias alias="Integer" type="java.lang.Integer" />
               <typeAlias alias="Long" type="java.lang.Long" />
               <typeAlias alias="HashMap" type="java.util.HashMap" />
               <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
               <typeAlias alias="ArrayList" type="java.util.ArrayList" />
               <typeAlias alias="LinkedList" type="java.util.LinkedList" />
       </typeAliases>
</configuration>
这里也可以添加一些mybatis基础的配置
2、添加User的映射文件
<mapper namespace="com.neo.mapper.UserMapper" >
   <resultMap id="BaseResultMap" type="com.neo.entity.UserEntity" >
       <id column="id" property="id" jdbcType="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的sql搬到了这里的xml中了
3.编写Dao层的代码
public interface UserMapper {
       
       List<UserEntity> getAll();
       
       UserEntity getOne(Long id);
       void insert(UserEntity user);
       void update(UserEntity user);
       void delete(Long id);
}


参考文献:http://www.ityouknow.com/springboot/2016/11/06/springboot(%E5%85%AD)-%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E7%9A%84%E4%BD%BF%E7%94%A8mybatis.html      摘自纯洁的微笑大佬

明天计划的事
爆肝写借口
遇到的问题
spring boot的优点是很简单,但是缺点同样是因为简单
因为不用自己亲手配置,出了问题排查困难
看似配置简单,但是只是对有丰富经验的人比较友好,万一出了问题对新人来说会很棘手
坑多文档少
收获
了解了MyBatis和spring boot 的整合



返回列表 返回列表
评论

    分享到