mybatis总结
来源:互联网 发布:百万公众网络 编辑:程序博客网 时间:2024/06/05 07:48
1. mybatis 获取返回自增长(auto_increment)ID
<insert id="insert" parameterType="java.util.HashMap" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> <selectKey resultType ="java.lang.Integer" keyProperty= "id" order= "AFTER"> SELECT LAST_INSERT_ID() </selectKey > INSERT INTO table_name(column1,column2,gmt_create) VALUES ( #{value1}, #{value2}, CURRENT_TIMESTAMP ) </insert>
注意:
1. insert 返回的是影响的记录的行数
2. 自增长Id在插入的实体类对象中的Id
2. mybatis 动态传递表名和批量插入
<insert id="insert" parameterType="java.util.HashMap" useGeneratedKeys="true" keyProperty="id" statementType="STATEMENT"> <selectKey resultType ="java.lang.Integer" keyProperty= "id" order= "AFTER"> SELECT LAST_INSERT_ID() </selectKey > INSERT INTO <if test="table_index>=10">tableName_${table_index}</if><if test="table_index < 10">tableName__0${table_index}</if> (column1,column2,column3,column4,gmt_create) VALUES <foreach collection ="ListName" item="item" index= "index" separator =","> ( ${item.value1}, ${item.value2}, ${item.value3}, ${item.value4}, CURRENT_TIMESTAMP ) </foreach> </insert>
注意要点:
1. parameterType 类型填java.util.Map,因为既要动态表名,又要批量插入,所以使用map,网上批量插入的例子参数都是list
2. 显式地生命statementType=”STATEMENT”。
3. 所有之前#{xxx}的东西都换成 $ {}符号。同时字符串类型的数据(插入数据库的字段)要自己加单引号,要不然语法会报错,这里注意#和$的区别:
- #{}将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号
- ${}将传入的数据直接显示生成在sql中
- $方式一般用于传入数据库对象,例如传入表名.
- #方式能够很大程度防止sql注入。$方式无法防止Sql注入。
- 一般能用#的就别用$.
参考链接:http://blog.csdn.net/tracymkgld/article/details/50905743
阅读全文
0 0
- mybatis总结
- MyBatis总结
- MyBatis 总结
- mybatis 总结
- mybatis--总结
- Mybatis总结
- mybatis 总结
- mybatis总结
- mybatis总结
- mybatis总结
- mybatis总结
- mybatis总结
- MyBatis总结
- mybatis总结
- Mybatis总结
- Mybatis 总结
- mybatis总结
- mybatis 总结
- 第十五周项目一(5)归并排序
- centos设置nat模式静态ip
- Centos7 shadowsocks服务端安装
- Windows10 右键 cmd
- 超长正整数相加
- mybatis总结
- 阿里云服务器Linux(CentOS)上TortoiseSVN服务所遇到的问题
- java IO 流
- 自己动手组装深度学习套件
- Android Volley完全解析(四),带你从源码的角度理解Volley
- 怎样获取到当前用户的管理权限,超级管理员为1,其他为0
- C++ 注释
- 命令模式
- 记负均正