用mybatis做数据库处理 代码中的字段大小写 要和mapper映射设置的大小写一致(这TM不废话么,原谅我渣!~~)
简单描述情况:其实这个问题怎么说呢,有人给你说,你肯定能意识到,必须大小写对应的嘛。emmmm我现在才意识到是因为:自己在下边敲代码,配的mapper文件并没有把属性变量,和数据库里的段单独提出来做映射,基本上都是嵌在sql语句中的,大小写也都一样,所以从来没遇到过这种弱智白痴加213的问题。进公司之后呢,字段已经不是我原来自己做的东西那么少了,十几个算是少的,所以公司都是在mapper中单独拎出来做了集中处理,这里就是我的错误所在了,这里mapper设置的字段是大写的,而我class 以及各层的属性变量都是小写的!~~ 废话不多说,下边贴代码,先贴以前的,再贴现在的。放心这些字段都不是公司的,都是我自己瞎起名的,想表达的就是一个字段提取出来进行映射的格式而已 。
代码部分:以前的自己写的:
<insert id="insertEvent" parameterType="map">
insert into event(id,user_id,title,event,e_date,s_date,end_date) values (#{id},#{user_id},#{title},#{event},#{e_date},#{s_date},#{end_date})
</insert>
<select id="selectEvent" parameterType="map" resultType="map">
select * from event where user_id=#{user_id}
</select>
现在的:
结果集映射:
<resultMap id="ProductResultMap" type="SysDict">
<result column="product_id" property="productId" jdbcType="CHAR" />
<result column="product_name" property="productName" jdbcType="VARCHAR" />
<result column="product_code" property="productCode" jdbcType="VARCHAR" />
<result column="sort_no" property="sortNo" jdbcType="TINYINT" />
<result column="parent_id" property="parentId" jdbcType="CHAR" />
<result column="description" property="description" jdbcType="VARCHAR" />
</resultMap>
表映射:
<sql id="tableName">
product
</sql>
字段映射:
<sql id="Field">
product_id,
product_name,
product_code,
sort_no,
parent_id,
description
</sql>
数据库字段映射:
<sql id="FieldValue">
#{productId},
#{productName},
#{productCode},
#{sortNo},
#{parentId},
#{description}
</sql>
语句:
<select id="find" resultMap="ProductResultMap" >
select <include refid="Field" />from
<include refid="tableName"></include>
where parent_Id is null or parent_Id = ''
</select>
<insert id="save" parameterType="Product">
insert into
<include refid="tableName"></include>
(
<include refid="Field"></include>
)
values
(
<include refid="FieldValue"></include>
)
</insert>
简单总结一下:可以看出来,这样做的好处就时sql语句与字段的耦合度明显降低了,可以进行统一的管理,而且都是自动映射,需要注意的就是前边的字段映射的大小写,要和代码中的一致,千万记住,别犯这种低级错误!!!
用mybatis做数据库处理 代码中的字段大小写 要和mapper映射设置的大小写一致(这TM不废话么,原谅我渣!~~)的更多相关文章
- Spring Boot 实用MyBatis做数据库操作
前言: 本项目基于maven构建,使用mybatis-spring-boot作为spring-boot项目的持久层框架 spring-boot中使用mybatis持久层框架与原spring项目使用方式 ...
- 数据库小记:根据指定名称查询数据库表名及根据指定名称查询数据库所有表中的字段名称(支持mysql/postgre)
意:本篇文章仅适用于mysql和postgre这两种数据库 1.查询数据库中所有表名及对应表的详细信息 select * from INFORMATION_SCHEMA.tables 2.根据指定名称 ...
- dapper 自定义数据库字段和代码中Model字段不一致时候的mapping方法
namespace YourNamespace { /// <summary> /// Uses the Name value of the ColumnAttribute specifi ...
- SQL SERVER数据库的表中修改字段的数据类型后,不能保存
在数据库里面建了一个表,可是由于对SQL SERVER的建表功能不熟悉,不知道把主键设成什么是好,就先设置了个TEXT类型,可是后来朋友们告诉我说,TEXT类型容易让数据文件变得很大,还 是改成一 ...
- wpf后置代码中的Grid布局以及图片路径的设置
之前用Grid练习连连看布局时,遇到了几个困惑.此次就把当时的一些收获写出来,供以后翻看. 图片路径可能比较常用,所以就写在第一个了. 在xaml中,设置图片非常简单,只要把图片拷贝到资源目录(这里假 ...
- SQL SERVER数据库的表中修改字段属性被阻止“Prevent saving changes that require table re-creation”
1.启动SQL SERVER,选择工具—>选项,去掉“ 阻止保存要求重新创建表的更改”前面的勾. 2.选择设计器 3.去掉“阻止保存要求重新创建表的更改”前面的对号,点击OK. 重新启动SQL ...
- java高级用法之:在JNA中将本地方法映射到JAVA代码中
目录 简介 Library Mapping Function Mapping Invocation Mapping 防止VM崩溃 性能考虑 总结 简介 不管是JNI还是JNA,最终调用的都是nativ ...
- mybatis的mapper映射文件
1概述1.1应用架构 mybatis框架用于支持对关系数据库的操作,该体系的应用架构如下图所示: 在mybatis框架体系中,主要的组件是:SqlSessionFactoryBean和Mapp ...
- mybatis基础系列(二)——基础语法、别名、输入映射、输出映射
增删改查 mapper根节点及其子节点 mybatis框架需要读取映射文件创建会话工厂,映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert.update.d ...
随机推荐
- 快速安装nginx
1.创建nignx用户 /usr/sbin/groupadd -f nginx /usr/sbin/useradd -g nginx nginx 2.安装依赖 yum install gcc gcc- ...
- icon图标制作网站推荐
推荐链接 easyicon
- 委托(作用:解耦),lambda的演化
1.了解委托 MyDelegate类代码如下: using System; using System.Collections.Generic; using System.Linq; using Sys ...
- MongpDB 学习手册 - 索引
//查看数据库以及容量 // show dbs //查看有哪些数据表 // show collections // MongoDB 索引 // 索引通常能够极大的提高查询的效率,如果没有索引,Mong ...
- C++拷贝构造函数(深拷贝&浅拷贝)
对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=88; int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量.下面看一个类对象拷贝的简单例子. ...
- P4126 [AHOI2009]最小割
题目地址:P4126 [AHOI2009]最小割 最小割的可行边与必须边 首先求最大流,那么最小割的可行边与必须边都必须是满流. 可行边:在残量网络中不存在 \(x\) 到 \(y\) 的路径(强连通 ...
- 【SVN】关于钩子的一些使用
前一段时间,李总让我研究一下SVN钩子的使用,以前没接触过这方面东西,在这里记录一下. 何为钩子? 所谓SVN钩子就是一些与版本库事件发生时触发的程序,例如新修订版本的创建,或者是未版本化属性的修改. ...
- js中 && 和 || 的用法
js中的&& 和 || 一直以为是php那一套,上网查了一些资料,才发现不一样 a() && b() :如果执行a()后返回true,则执行b()并返回b的值:如果执行 ...
- Pyperclip could not find a copy/paste mechanism for your system.
sudo apt-get install xsel sudo apt-get install xclip pip install gtk to install the gtk Python modul ...
- 古董VS2002安装
在2002 年,随着 .NET 口号的提出与 Windows XP/Office XP 的发布,微软发布了 Visual Studio .NET(内部版本号为 7.0). 使用VS2002+Objec ...