zoukankan      html  css  js  c++  java
  • 从头学习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 }
  • 相关阅读:
    linux 复 带进度条
    frp配置
    zookeeper_service 出错 java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNoNodeException
    zookeeper_service 出错 ........... are only available on JDK 1.5 and higher
    推荐eclipse插件Properties Editor
    使用ab对nginx进行压力测试
    Linux搭建Snmp服务
    第一个python程序
    如何执行Python代码
    pycharm 的调试模式 MAC版
  • 原文地址:https://www.cnblogs.com/xiao-lin-unit/p/14488730.html
Copyright © 2011-2022 走看看