spring boot 集成mybatis 注解版查询

简介: spring boot 集成 mybatis 使用注解实现spring boot 和 mybatis已经正常集成,在使用查询时使用的是注解,(项目没有任何XML文件)@Mapper@Table(name = "t_user")public in...

spring boot 集成 mybatis 使用注解实现

spring boot 和 mybatis已经正常集成,在使用查询时使用的是注解,(项目没有任何XML文件)

@Mapper
@Table(name = "t_user")
public interface UserMapper {

    @Select("select * from t_user where user_id = #{id}")
      public User findUserById(@Param("id") String id);
}

这种方式是不知道为什么,只有几个属性会填充值,其他属性查询出来的结果都为null

image.png

但是我如果写了

 @Results({
 @Result(column = "user_id",property = "userId"),
            @Result(column = "username",property = "username"),
            @Result(column = "pass",property = "pass"),
            @Result(column = "phone_number",property = "phoneNumber")
})

就会完全正确,每个属性都有值
问题1: 为什么会出现有的属性有值,有的属性没值?
问题2:我不能每个查询语句都这么写,这样会有很多的重复的@Result部分,有没有注解将其在内部进行对应关系实现,不需要每次都写@ Result?

问题1. 因为结果集的column和Bean的property不对应,当然就会null.

问题2. 你可以在sql中用别名,使得column和property对应,这样就不会出现问题1.

问题一的话,因为数据库字段是你下划线分隔,bean中的字段是驼峰命名的,如user_name和userName,导致无法匹配

如果是通过xml文件来配置的话,只需要开启驼峰命名转换

<setting name="mapUnderscoreToCamelCase" value="true"/>

yml中 大概是这样

mybatis:
  configuration:
    map-underscore-to-camel-case: true

http://www.mybatis.org/mybatis-3/zh/java-api.html

String resource = "org/mybatis/builder/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(inputStream);

相关文章
|
9天前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
9 0
|
11天前
|
消息中间件 Java Kafka
Springboot集成高低版本kafka
Springboot集成高低版本kafka
|
17天前
|
NoSQL Java Redis
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
51 0
|
30天前
ssm(Spring+Spring mvc+mybatis)——updateDept.jsp
ssm(Spring+Spring mvc+mybatis)——updateDept.jsp
10 0
|
30天前
ssm(Spring+Spring mvc+mybatis)——showDept.jsp
ssm(Spring+Spring mvc+mybatis)——showDept.jsp
9 0
|
22天前
|
NoSQL Java Redis
SpringBoot集成Redis
SpringBoot集成Redis
159 0
|
29天前
|
NoSQL Java Redis
小白版的springboot中集成mqtt服务(超级无敌详细),实现不了掐我头!!!
小白版的springboot中集成mqtt服务(超级无敌详细),实现不了掐我头!!!
231 1
|
29天前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
35 1
|
10天前
|
SQL XML Java
【mybatis】第二篇:@Select注解中加入字段判断
【mybatis】第二篇:@Select注解中加入字段判断
|
10天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)