10.$和#的区别 | 11.添加对象时如何把生成的id返回

一. Mybatis中$和#的区别。

1. $: 解析时不会为内容添加”” 他是sql语句的拼接存在sql注入的危害。传入的为表结构时。

2. #: 解析时会为内容添加””,它的sql时采用占位符,防止sql注入。

11.添加对象时如何把生成的id返回

  用:keyProperty="id"

 1 <!--逆向工程自动生成-->
 2 <insert id="insertSelective" parameterType="com.zhiyou100.wc.bean.Users">
 3     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
 4       VALUES IDENTITY_VAL_LOCAL()
 5     </selectKey>
 6     insert into users
 7     <trim prefix="(" suffix=")" suffixOverrides=",">
 8       <if test="NAME != null">
 9         NAME,
10       </if>
11       <if test="age != null">
12         age,
13       </if>
14       <if test="sex != null">
15         sex,
16       </if>
17     </trim>
18     <trim prefix="values (" suffix=")" suffixOverrides=",">
19       <if test="NAME != null">
20         #{NAME,jdbcType=VARCHAR},
21       </if>
22       <if test="age != null">
23         #{age,jdbcType=INTEGER},
24       </if>
25       <if test="sex != null">
26         #{sex,jdbcType=VARCHAR},
27       </if>
28     </trim>
29   </insert>

原文地址:https://www.cnblogs.com/banzhuanlaowang/p/11455398.html

时间: 2024-10-03 13:46:00

10.$和#的区别 | 11.添加对象时如何把生成的id返回的相关文章

捕获或添加对象时的模式切换

当我们使用对象库添加对象时一旦点击了“Add objects to local”按钮后就只能抓取对象而无法进行其他任何操作,但常常我们会遇到这样的问题:在一个页面上添加对象后需要切换到另一个Web页面添加另一个对象,于是便用到了QTP提供的捕获或添加对象时两种模式的切换功能,该功能使得切换后可以停止对控件的抓取,并还可以对被测对象进行操作.下面介绍下这两种模式及其切换功能. 1 .半操作模式-----CTRL 键                   支持点击 2.全模式操作-----CTRL+A

python列表中添加对象时的注意

最近在用python写代码,用到了对象数组.在c++中我们要使用能够灵活操作的对象数组,一般会用stl的vector类,该类的push_back方法可以将一个对象的拷贝加入到vector对象中,所以当使用[]下标对vector的元素进行修改时,原来的作为push_back参数的那个对象的值并不会改变.python中类似的方法是列表的append方法,但是要注意此时若加入到列表中的是基础数据类型,则是值传递,若是对象,则是引用传递.这种参数的传递方式和java一样.因此,在python中通过列表下

nodejs+mysql 插入一条记录时获取自动生成的id

最近在写学生申报项目的后端接口时发现需要获取数据库自动生成的主键,因为要先将项目信息插入到project表,得到生成的项目ID,再将项目ID和指导老师ID插入到project_member表 一开始想在插入项目之后,用SELECT LAST_INSERT_ID() 获取生成的ID,后来发现,在插入操作完成后的返回结果里就带有自动生成的ID.可用rows.insertId获取 代码: //利用事务对project表和project_member表进行插入 conn.beginTransaction

List循环添加对象时遇到问题的解决

1 var temp=new handleData(); 2 foreach(var t in data) 3 { 4 temp.DataValue = t.DataValue; 5 temp.CreateTime = t.CreateTime; 6 data1.Add(temp); 7 } 最后的结果是data里面的数据都是一样的 原因:temp是引用类型,所以最后都是最后一次改变的temp的值 解决办法:在循环里每一次都加new一下 foreach(var t in data) { temp

Effective C++ 条款11,12 在operator= 中处理&ldquo;自我赋值&rdquo; || 复制对象时不要忘记每一个成分

1.潜在的自我赋值     a[i] = a[j];     *px = *py; 当两个对象来自同一个继承体系时,他们甚至不需要声明为相同类型就可能造成别名. 现在担心的问题是:假如指向同一个对象,当其中一个对象被删,另一个也被删,这会造成不想要的结果. 该怎么办? 比如:   widget& widget:: operator+ (const widget& rhs) {    delete pd;    pd = new bitmap(*rhs.pb);    return *thi

[菜鸟]C++创建类对象时(无参)后不加括号与加括号的区别

在不考虑用new动态创建对象的情况下,用最普通的 类名 对象名(参数); 的方法创建对象 先贴上最正常最普通的代码 #include<iostream> using namespace std; class C{ public: C(){ cout<<"Hello C++\n"; }; C(int m){ cout<<"I love C++\n"; }; private: int n; }; int main(){ C c; re

【Java编程思想】11.持有对象

如果一个程序只包含固定数量的且生命周期都是已知的对象,那么这是一个非常简单的程序. Java 类库中提供一套容器类,来存储比较复杂的一组对象.其中有 List.Set.Queue.Map 等.这些类也被称为集合类,Java 的类库中使用 Collection 这个名字指代该类库的一个特殊子集(其实 Java 中大部分容器类都实现了 Collection 接口). 11.1 泛型和类型安全的容器 在 Java SE5 之前的容器,编译器是允许向容器中插入不正确的类型的.因此在获取容器中对象时,一旦

Effective C++_笔记_条款12_复制对象时勿忘其每一个成分

(整理自Effctive C++,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 编译器会在必要时候为我们的classes创建copying函数,这些“编译器生成版”的行为:将被烤对象的所有成员变量都做一份拷贝. 如果你声明自己的copying函数,意思就是告诉编译器你并不喜欢缺省实现中的某些行为.编译器仿佛被冒犯似的,会以一种奇怪的方式回敬:当你的实现代码几乎必然出错时却不告诉你.所以自己实现copying函数时,请遵循一条规则:如果你为c

zbb20170928 解决springmvc在单纯返回一个字符串对象时所出现的乱码情况

解决springmvc在单纯返回一个字符串对象时所出现的乱码情况 使 用springmvc框架开发了这么长时间,之前都是直接返回jsp页面,乱码情况都是通过配置和手动编解码来解决,但是今天突然返回一段单纯的字符串 时,发现中文乱码情况解决不了了,下面就给各位分享一下如何解决返回字符串时出现的乱码情况(无需实验,直接使用即可). 之前我们都是通过在springmvc的核心配置文件中配置视图解析器来返回指定的页面,将数据通过Model对象渲染页面,最后响应给用户,但是这种方式我们是通过在web.xm