Mapper sql语句字段和实体类属性名字有什么关系
背景:
1.在数据库中有一个通知表
可以看到其中的
- gmt_create、
- notifier_name、
- outer_title
这三个字段是有下划线的
2.这张表对应的实体类为
public class Notification { private Long id; private Long notifier; private Long receiver; private Long outerId; private Integer type; private Long gmtCreate; private Integer status; private String notifierName; private String outerTitle; }
在写实际java代码命名采用驼峰命名
注意application.properties是否开启了驼峰映射
#驼峰映射
mybatis.configuration.map-underscore-to-camel-case=true
3.在Mapper中有一个插入语句
//0.插入一条通知
@Insert("insert into questions (title,description,gmt_create,gmt_modified,creator,tag) values (#{title},#{description},#{gmtCreate},#{gmtModified},#{creator},#{tag})")
void createQuestion(Question question);
结论:在进行占位时#{}中的内容应为gmtCreate
写的时候留心下,写成gmt_create可能会报错
There is no getter for property named 'gmt_create' in 'class com.example.com
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
详解 MapperScannerConfigurer之sqlSessionFactory注入方式
MapperScannerConfigurer之sqlSessionFactory注入方式讲解 首先,Mybatis中的有一段配置非常方便,省去我们去写DaoImpl(Dao层实现类)的时间,这个配置就是包扫描.... 让我们先来看一段代码: <!-- 4:配置扫描Dao接口的包,动态实现Dao接口,注入到Spring容器中 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
-
MyBatis MapperProvider MessageFormat拼接批量SQL语句执行报错的原因分析及解决办法
最近在项目中有这么一段代码:下载服务器基础业务数据进行本地批量插入操作,因项目中使用mybatis进行持久化操作,故直接考虑使用mybatis的批量插入功能. 1.以下是Mapper接口的部分代码 public interface PrintMapper { @InsertProvider(type = PrintMapperProvider.class,method = "insertAllLotWithVehicleCode4H2") void insertAllLotWithVe
-
详解MyBatis的getMapper()接口、resultMap标签、Alias别名、 尽量提取sql列、动态操作
一.getMapper()接口 解析:getMapper()接口 IDept.class定义一个接口, 挂载一个没有实现的方法,特殊之处,借楼任何方法,必须和小配置中id属性是一致的 通过代理:生成接口的实现类名称,在MyBatis底层维护名称$$Dept_abc,selectDeptByNo() 相当于是一个强类型 Eg 第一步:在cn.happy.dao中定义一个接口 package cn.happy.dao; import java.util.List; import cn.happy.e
-
使用XSD校验Mybatis的SqlMapper配置文件的方法(2)
在上篇文章给大家介绍了使用XSD校验Mybatis的SqlMapper配置文件的方法(1),需要的朋友可以参考下. 编写好XSD文件,然后来看怎么使用XSD文件校验,并解析SqlMapper文件,也就是实现doParseSqlMapperResourceWithSchema()方法. 为了实现这个功能,有两个基本要求: (1)兼容性:需要兼容mybatis的原生配置,兼容有两种层级,一种是使用DTD校验,这个前面已经说了,走原来的流程,兼容性没有问题:另一种就是走XSD校验,但也需要兼容myba
-
MyBatis直接执行SQL的工具SqlMapper
可能有些人也有过类似需求,一般都会选择使用其他的方式如Spring-JDBC等方式解决. 能否通过MyBatis实现这样的功能呢? 为了让通用Mapper更彻底的支持多表操作以及更灵活的操作,在2.2.0版本增加了一个可以直接执行SQL的新类SqlMapper. 我们来了解一下SqlMapper. SqlMapper提供的方法 SqlMapper提供了以下这些公共方法: Map<String,Object> selectOne(String sql) Map<String,Object&
-
Mybatis中SqlMapper配置的扩展与应用详细介绍(1)
奋斗了好几个晚上调试程序,写了好几篇博客,终于建立起了Mybatis配置的扩展机制.虽然扩展机制是重要的,然而如果没有真正实用的扩展功能,那也至少是不那么鼓舞人心的,这篇博客就来举几个扩展的例子. 这次研读源码的起因是Oracle和MySQL数据库的兼容性,比如在Oracle中使用双竖线作为连接符,而MySQL中使用CONCAT函数:比如Oracle中可以使用DECODE函数,而MySQL中只能使用标准的CASE WHEN:又比如Oracle中可以执行DELETE FORM TABLE WHER
-
使用XSD校验Mybatis的SqlMapper配置文件的方法(1)
这篇文章以前面对SqlSessionFactoryBean的重构为基础,先简单回顾一下做了哪些操作: 新建SqlSessionFactoryBean,初始代码和mybatis-spring相同: 重构buildSqlSessionFactory()方法,将众多的if语句抽取为一组小方法,预留自定义配置的方法,同时添加常用属性的getter方法: 提取组件工厂接口,并提供组件创建工具类SqlSessionComponetFactorys,将散落在不同地方的new Xxx()集中管理,便于组件的替换
-
Mapper sql语句字段和实体类属性名字有什么关系
背景: 1.在数据库中有一个通知表 可以看到其中的 gmt_create. notifier_name. outer_title 这三个字段是有下划线的 2.这张表对应的实体类为 public class Notification { private Long id; private Long notifier; private Long receiver; private Long outerId; private Integer type; private Long gmtCreate; p
-
MyBatis学习教程(四)-如何快速解决字段名与实体类属性名不相同的冲突问题
在项目开发中,我们经常会遇到表中的字段名和表对应实体类的属性名称不一定都是完全相同的情况,下面小编给大家演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突问题,感兴趣的朋友一起学习吧. 一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSERT INTO orders(order_no, or
-
Mysql字段和java实体类属性类型匹配方式
Mysql字段和java实体类属性类型匹配 参见下图: 数据库字段转实体类字段 DROP FUNCTION IF EXISTS f_spiltStr; CREATE FUNCTION `f_spiltStr`(DATA1 varchar(50)) RETURNS varchar(1000) CHARSET utf8 BEGIN SET @length = LENGTH(DATA1) - LENGTH(REPLACE(DATA1,'_','')); SET @i = 1; set @result
-
Mybatis中实体类属性与数据列表间映射方法介绍
Mybatis不像Hibernate中那么自动化,通过@Column注解或者直接使用实体类的属性名作为数据列名,而是需要自己指定实体类属性和 数据表中列名之间的映射关系,这一点让用惯了Hibernate的人很不习惯,所幸经过探索找到了建立映射关系的三种办法,其中总也有比较 简单的. 首先先定义一个实体类,如下: public class User implements Serializable { private Integer userId; private String userName;
-
Mybatis实体类属性与数据库不一致解决方案
当实体类属性和数据库不一致时,使用mybatis查询数据库返回实体类自动封装就会出现问题.针对这种情况,有两种解决方案. 1.使用别名查询 <!-- 配置查询所有操作 --> <select id="findAll" resultType="com.itheima.domain.User"> select id as userId,username as userName,birthday as userBirthday, sex as us
-
C#编程获取实体类属性名和值的方法示例
本文实例讲述了C#编程获取实体类属性名和值的方法.分享给大家供大家参考,具体如下: 遍历获得一个实体类的所有属性名,以及该类的所有属性的值 //先定义一个类: public class User { public string name { get; set; } public string gender { get; set; } public string age { get; set; } } //实例化类,并给实列化对像的属性赋值: User u = new User(); u.name
-
java反射遍历实体类属性和类型,并赋值和获取值的简单方法
实例如下: import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Date; /** * 获取实体类型的属性名和类型 * @param model 为实体类 * @author kou 为传入参数 */ public class GetModelNameAndType { public
-
使用jpa的时候set实体类属性自动持久化的解决方案
使用jpa的时候set实体类属性自动持久化 实例代码 Set<User> users = new HashSet<User>(); User user = null; for(int i = 0; i < 10; i++){ user = new User(); user.setUserName("wy" + i); users.add(user); } Company company = userDao.getCompany(); company.set
-
SpringBoot 返回Json实体类属性大小写的解决
目录 返回Json实体类属性大小写问题 Json转换大小写的坑 返回Json实体类属性大小写问题 总归上述问题Rt,其实今天开发刚遇到,当时找了半天为啥前台传参后台却接收不到,原来是返回的时候返回小写,但是前台依旧大写传参. 查了很多后发现其实是json返回的时候把首字母变小写了,也就是Spring Boot中Jackson的功劳 百度后得@JsonProperty注解完美解决.但与此同时会出现两个问题 如果注解放到属性上,则返回的时候既有大写也有小写, @JsonProperty("Ao&qu
-
mybatisPlus 实体类与数据库表映射关系详解
目录 实体类与数据库表映射关系 具体的映射方法有两种 忽略某个实体类属性和数据库表字段之间的映射关系 问题描述 解决方案 实体类与数据库表映射关系 使用mybatisPlus时,会确定实体类和数据的映射关系 具体的映射方法有两种 1.默认:采用驼峰映射规则 例如MyUserTable 对应的数据库表为 my_user_table ; TEMyUserTable 对应表名为t_e_my_user_table; 2.注解@TableName 在类名上方添加@TableName("my_user
随机推荐
- js实现单击图片放大图片的方法
- 让IIS6支持JSP的设置方法(IIS完美整合Tomcat)
- java使用hadoop实现关联商品统计
- ORA-00392ORA-00312日志正在清除故障
- Oracle 启动例程 STARTUP参数说明
- Javascript 跨域访问解决方案
- ASP.NET实现伪静态网页方法小结
- 详解JavaScript编程中的window与window.screen对象
- 浅谈socket同步和异步、阻塞和非阻塞、I/O模型
- Node.js站点使用Nginx作反向代理时配置GZip压缩的教程
- Linux C线程池简单实现实例
- 将MS SQL SERVER数据库运行在普通用户(独立用户)状态下的设置方法终结篇
- 图片加载进度实时显示
- js prototype截取字符串函数
- 在win 2003中得到登陆密码
- 启用带宽限制功能的用户,请确认已安装QoS
- 实例分析Java Class的文件结构
- Android实现状态栏白底黑字效果示例代码
- 深入剖析Android中init进程实现的C语言源码
- vsftp上传553 Could not create file错误解决