09mybatis属性和数据库字段不匹配处理

Book.java
id
name
price

book 表
book_id
book_name
book_price

create table book(
book_id int unsigned auto_increment,
book_name varchar(20),
book_price decimal(8,2),
primary key(book_id)
)engine=innodb charset=utf8;

BookMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fz.mapper.BookMapper">
<resultMap id="bk" type="book">
<id column="book_id" property="id"/>
<result property="name" column="book_name"/>
<result property="price" column="book_price"/>
</resultMap>

<select id="queryAll" resultType="book" resultMap="bk">
select * from book
</select>

<select id="page" parameterType="map" resultType="book">
select * from book limit #{start},#{pagesize}
</select>

<select id="queryById" resultType="book" statementType="PREPARED">
select * from book where id = #{id}
</select>

<delete id="delete" statementType="PREPARED">
delete from book
</delete>

<delete id="deleteById" parameterType="int" statementType="PREPARED">
delete from book where id = #{id}
</delete>

<insert id="add" parameterType="book">
insert into book values(null,#{name},#{price})
</insert>

<insert id="save" parameterType="map">
insert into book values(null,#{name},#{price})
</insert>

<update id="update" parameterType="book">
update book set name=#{name},price=#{price} where id=#{id}
</update>
<update id="updateById" parameterType="map">
update book set name=#{name},price=#{price} where id=#{id}
</update>

<update id="updateByName" parameterType="map">
update book set price=#{price} where name=#{name}
</update>
</mapper>

<resultMap id="bk" type="book">
<id column="book_id" property="id"/>
<result property="name" column="book_name"/>
<result property="price" column="book_price"/>
</resultMap>

<select id="queryAll" resultType="book" resultMap="bk">
select * from book
</select>

时间: 2024-12-24 21:52:57

09mybatis属性和数据库字段不匹配处理的相关文章

实体类与数据库字段不匹配问题,java.sql.SQLSyntaxErrorException: Unknown column &#39;xxx&#39; in &#39;field list&#39;

控制台报错 ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 'user_name' in 'field list' ### The error may exist in panfeng/mapper/StudentMapper.java (best guess) ### The error may involve panfeng.mapper.StudentMapper.se

MyBatis数据库字段和实体对象属性名不一致的解决方案

数据库和对象的属性名不一致是很常见的问题,这个时候依从表字段到对象属性名的按名称匹配映射已经搞不定这个了,下面是几种解决方案. 1. 开启驼峰转换 如果数据库中的字段名与对象只是简单的不一致的话,比如名字是一样的,只是分隔方式不一样,在数据库中使用了下划线分隔,而在对象中使用了驼峰分隔,如果都是这样子的话倒不是特别麻烦,只需要在mybatis的配置文件中开启驼峰转换即可. <setting name="mapUnderscoreToCamelCase" value="t

Mybatis——实体类属性名和数据库字段名不同时的解决办法

在使用Mybatis来持久化数据库时,有时候会碰到数据库中表中的字段与java实体类中属性名不一致的情况,在这种情况下Mybatis是不能完成字段的自动映射的.而通常情况下,数据库及实体类是不应该被改的的.所以要在不改变数据库以及实体类的情况下解决这个问题,下面是解决该问题的三种方式: java实体类: public class User { private Long id; private String userName; private String passWord; /** * ...

Spring 注解实体类中非数据库字段属性

解决办法:在属性的get方法上加上一段注解标识它是临时属性,不是数据库字段就OK @Transient public List<Reverts> getChildList() { return childList; } public void setChildList(List<Reverts> childList) { this.childList = childList; } 记得导入的是:import javax.persistence.Transient;

【原创】文本工具的使用--根据数据库字段快速生成该表对应的Model类属性

在实际项目开发过程中,我们会经常碰到这样的问题:数据库表的字段按下划线命名方式都设计好了,接下来是要创建该表对应的Model类.如果我们按照数据库表中的字段,再手动敲一遍,生成对应Model类的属性.在字段少的情况下,手动创建Model类似乎没啥的.要是字段比较多,那就有点费时了.那如何快速生成数据库表字段对应的Model类呢?以下是本人的解决方案: 1.将建表语句复制到文本编辑器,如notepad++,editplus,vim等. 2.剔除其他字符串,提取字段 点击全部替换 3.下划线法转驼峰

spring data mongodb中,如果对象中的属性不想加入到数据库字段中

spring data mongodb中,如果对象中的属性不想加入到数据库字段中,可加@Transient注解,声明为透明属性 spring data mongodb 官网帮助文档 http://www.boyunjian.com/javadoc/org.springframework.data/spring-data-mongodb/1.2.3.RELEASE/_/org/springframework/data/mongodb/core/query/Criteria.html#all(jav

在数据库字段(实体类属性名)带下划线时get和set方法无效

错误描述: 使用springboot和mybatis,查询数据并封装到java类中,因为java实体类的属性名带有下划线(" _ "),导致get和set方法无效,数据无法封装到实体类中,出现null. 结局办法: 数据库字段保持不变的情况下,改变属性名命名方式,用@Column("")注解将属性名和字段对应. 原文地址:https://www.cnblogs.com/FanWenSong/p/12103320.html

Django项目实践3 - Django模型(数据库字段及操作)

http://blog.csdn.net/pipisorry/article/details/45725953 数据库字段 时间字段 DateTimeField和DateField和TimeField存储的内容分别对应着datetime(),date(),time()三个对象. auto_now=Ture,字段保存时会自动保存当前时间,但要注意每次对其实例执行save()的时候都会将当前时间保存,也就是不能再手动给它存非当前时间的值. auto_now_add=True,字段在实例第一次保存的时

数据库字段动态扩展设计

最近讨论数据库有关产品方案的项目自动扩展问题,即每个方案都有多个项目,而每个方案的项目或多或少,也有不一样的,方案以后也可能随之增加新的项目.因此需要数据库设计一套可扩展的方案. 以商品为例,类似淘宝上的设计,要求如下: 1. 字段自动扩展 2. 属性公用 3. 无限扩展字段 现在,看现实世界的产品: 一个产品怎么在数据库存储呢?如:产品表(产品名称,产品类别,品牌,型号,重量--) 而 产品类别 和 品牌 是冗余的,因此独立出两张表来. 再看看产品,电脑 和手机都有相同或者不同的属性,这只是简