Mybatis实体类和数据库表之间的映射关系:
关于Mybatis实体类和数据库表之间的映射关系:
1、使⽤原⽣⽅式,即不使⽤⼯具和插件的⽅法:
  例如:最简单的springboot的demo;
  1.1、实体类的类名及属性要和数据库表名和字段名遵循下划线转驼峰命名格式;
  1.2、因为Mapper接⼝没有实现类,所以需要⽤代理⽅式动态⽣成其对应的实现类,实现的⽅式有两种:
    (1)在Mapper接⼝上⽤@Mapper注解,⽣成该类的实现类,@Mapper的包是 org.apache.ibatis.annotations.Mapper;
    (2)如果有很多Mapper接⼝,在接⼝上⽤注解太⿇烦,就需要在springBoot的启动类上⽤@MapperScan注解,括号中是包名路径,表⽰⽣成该包下所有接⼝的实现类;
batis.spring.annotation.MapperScan;
2import org.springframework.boot.SpringApplication;
3import org.springframework.boot.autoconfigure.SpringBootApplication;
4//batis.spring.annotation.MapperScan; //⼀个是org,⼀个是tk
5
6/**
7 * @author TT
8*/
9 @SpringBootApplication
10 @MapperScan("com.thl.mapper")  //扫描mapper包下所有的mapper接⼝,如果还有其他包也需要⽣成实现类,括号中可以⽤数组⽅式配置多个包路径
11public class SpringBootTkMapperApplication {
12
13public static void main(String[] args) {
14        SpringApplication.run(SpringBootTkMapperApplication.class, args);
15    }
16
17 }
  1.3、如果还有对应的*l⽂件(⽤tk.mapper,单表的CRUD可以不⽤*l),需要配置扫描resources下的mapper的xml⽂件;我是在application.properties⽂件中配置的;
  1.4、如果没有⽤resultMap标签配置映射关系,⼊参⽤的是实体类,即⽤的resultType标签,则还需要配置下划线转驼峰的规则,不然字段映射不上。
    如果⽤了resultMap标签,返回类型也是的话,则不需要配置下划线转驼峰规则,字段可以映射,但是以防万⼀,建议配置上,反正不影响什么;
1 #端⼝
spring framework和spring的关系2 server.port=8081
3 #数据库配置
4 spring.datasource.driver-class-name= sql.jdbc.Driver
5 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/rbac
6 spring.datasource.username=root
7 spring.datasource.password=123456
8 #可以直接使⽤包名
pe-aliases-package=com.thl.domain
10 #扫描resources下mapper包路径下所有的xml⽂件
11 mybatis.mapper-locations=classpath:/mapper/*.xml
12#下划线转驼峰配置
2、⽤⼯具类,例如⽤tk.mapper
  2.1、单表的增删改查已经封装好了,如果不需要额外写sql的话,连l⽂件都不需要写,因为它⾃动做了映射。
  2.2、其次的话就是前⾯提到的xml⽂件中的<resultMap>标签,这个标签⾮常强⼤,可以指定数据库表的字段和实体类的属性之间的映射关系,指定好后就能封装成我们想要的对象;
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd">
3 <mapper namespace="com.thl.mapper.RoleMapper">
4  <resultMap id="BaseResultMap" type="com.thl.domain.Role">
5    <!--
6      WARNING - @ated
7    -->
8    <id column="id" jdbcType="INTEGER" property="id" /> //指定主键
9    <result column="name" jdbcType="VARCHAR" property="name" /> //指定name属性
10    <result column="is_disabled" jdbcType="INTEGER" property="isDisabled" />//指定isDisabled属性,这⾥就⾃⼰做了映射
11  </resultMap>
12  <select id="queryAll" resultMap="BaseResultMap" parameterType="com.thl.domain.Role"> //这⾥⽤封装好的BaseResultMap对象13    select * from `role` where id = #{id}
14 </select> 15 </mapper>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。