• 从头学习Spring之二(数据操作之MyBatis)


    一、引入依赖

       mybatis-spring-boot-starter 

    二、添加配置

    # mapper文件位置
    mybatis.mapper-locations = classpath*:mapper/**/*.xml
    # 实体类或者vo类位置的包名,则在xml文件中可以直接写类名而不用写全名
    mybatis.type-aliases-package = 类型别名的包名
    # 类型转换
    mybatis.type-handlers-package = TypeHandler扫描包名
    # 下划线与驼峰规则做对应
    mybatis.configuration.map-underscore-to-camel-case = true

    三、 Mapper 的映射与扫描以及简单实用

      1. @MapperScan 注解

        配置扫描位置

      2. @Mapper 注解

        定义接口

      3.映射的定义:

         XML 方式:

           mapper 接口:

    1 @Mapper
    2 public interface UserMapper{
    3     
    4     User selectById(@Param("id") Integer id);
    5 
    6 }

          实体类:

    1 @Data
    2 @TableName("user")
    3 public class User{
    4 
    5     private Integer id;
    6     private String name;
    7     
    8 }

           XML 映射文件:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     3 <mapper namespace="UserMapper">
     4 
     5     <resultMap id="BaseResultMap" type="User">
     6         <id column="id" property="id" />
     7         <result column="name" property="name" />
     8     </resultMap>
     9 
    10     <select id="selectById" resultType="User">
    11         SELECT 
    12             id,name
    13         FROM
    14             user
    15         WHERE
    16             id = #{id}
    17     </select>
    18 
    19 </mapper>

          方法调用:

     1 @SpringBootTest
     2 public class Test{
     3     
     4     @Autowired
     5     private UserMapper userMapper;
     6     public void test(){
     7     
     8        User user =  userMapper.selectById(1);
     9     
    10     }
    11 }

        注解方式:

           mapper接口:

    1 @Mapper
    2 public interface UserMapper{
    3 
    4     @Select("select id,name from user where id = #{id}")
    5     User selectById(@Param("id") Integer id);
    6 
    7 }

          实体类同上

          不需要 XML 文件

          方法测试代码同上

    四、类型映射处理

       MyBatis 使用 TypeHandler 进行 JAVA 类型与数据库数据类型的转换:如时间类型有 DateTypeHandler 进行处理

      自定义映射处理只需要新建一个 TypeHandler 类并继承 BaseTypeHandler 即可,注意不要与已有的类重名:如 Money 可以使用 joda-money 中的 Money ,其转换可以自定义一个 MoneyTypeHandler 并重写其中的方法进行转换

     五、分页

      使用 MyBatisPageHelper 工具

    1 public PageInfo<User> getUser(Integer page){
    2     // page是从第几页开始,pageSize是每页多少条数据
    3     PageHelper.startPage(page,pageSize);
    4     List<User> users = userMapper.getUsers();
    5     return new PageInfo<User>(users);
    6 }
  • 相关阅读:
    竖版文字排列实现《金刚般若波罗蜜心经》
    前端气泡效果实现的方式
    纯CSS绘制三角形
    什么是块级格式上下文
    绝对定位元素left、right、top、bottom值与其margin和宽高的关系
    currentColor在CSS的含义
    HTML/css清除浮动的几种方式
    W3C中不同标准的含义
    table表格标签的属性
    输入你的生日某年某月某日,判断这一天是这一年的第几天、星期几?
  • 原文地址:https://www.cnblogs.com/xiao-lin-unit/p/14488730.html
Copyright © 2020-2023  润新知