用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 ...
随机推荐
- python后端将svc文件数据读入数据库具体实现
如何用python将svc文件的数据读入到MySQL数据库里,在此直接上代码了,感兴趣的朋友可以贴代码测试: import pandas as pd import os from sqlalchemy ...
- 5-4日 socket套接字
1,socket定义 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面 ...
- redis架构~哨兵模式
一 哨兵模式稳定版本 redis哨兵模式是redis自带的高可用框架,稳定版本为redis2.8以上二 哨兵模式建立 1 避免单点故障,建立启动多个哨兵进程 2 哨兵模式启动命令 redis-s ...
- MySql cmd下的学习笔记 —— 有关select的操作(in, and, where, like等等)
为方便本节学习, 请先自行建立本表: 建一个商品表: create table goods ( -> goods_id mediumint(8) unsigned not null auto_i ...
- 常用的Character方法
- Node.js WEB服务器(1)——编写简单的HTTP服务器
基于分而治之的思想,很多架构都会采用分层的模式来处理某类应用.Node.js在Web开发上也是采用这种模式,分别提供了如下的三个层: Node核心 社区模块 应用逻辑 下面是一个最简形式的web服务器 ...
- FireDac 的一些应用提示
FireDac 的一些应用提示: 1. 客户端 dataset 能用 TFDQuery 连接 dataset provider 获取数据 ? Can I use TFDQuery and conne ...
- struts2框架之重复提交问题
防止重复提交 1. 什么是重复提交 * 提交表单时,点击一次后,页面没有刷新时,马上又点击一次,就是重复提交 * 提交后,通过浏览器的回退,又回到了表单页面,再次提交 * 提交后,按F5刷新,也是重复 ...
- Unity3D之通过C#使用Advanced CSharp Messenger
Advanced CSharp Messenger 属于C#事件的一种. 维基百科中由详细的说明http://wiki.unity3d.com/index.php?title=Advanced_CSh ...
- Centos7环境下etcd集群的搭建
Centos7环境下etcd集群的搭建 一.简介 "A highly-available key value store for shared configuration and servi ...