mybatis常见问题
2016-01-09 02:39
281 查看
parameterType与parameterMap有什么区别?
resultType与resultMap有什么区别?
resultType:可以把结果自动映射到相应的JAVA类中,但无法指定输出字段的类型,会对性能产生轻微的影响。resultMap:可以预先定义resultMap元素,可以控制数据如何从结果集中取出,以及哪个属性匹配哪个字段。
parameterType属性值是JAVA类的全限定名,目的是限制输入参数的类型为指定的JAVA类,如果不指定,任何带有合适属性(get/set方法)的JAVA BEAN都可以作为输入参数。
parameterMap:预先定义parameterMap的属性值,用于有次序的参数匹配JDBC符号。
<resultMap type="com.csii.ibs.common.ECif" id="loadCifInfoResult"> <result property="id" column="CIFNO" /> <result property="cifSeq" column="CIFSEQ" /> <result property="name" column="CIFNAME" /> <result property="status" column="CIFSTATE" /> <result property="bankSeq" column="BANKSEQ" /> </resultMap> <select id="loadCifInfo" resultMap="loadCifInfoResult" parameterType="java.util.HashMap"> select a.CIFNO, a.CIFSEQ, a.CIFSTATE, a.BANKSEQ, a.BRANCHSEQ, from EBANKCIF a </select>
<resultMap type="java.util.HashMap" id="loadUserInfoResult"> <result property="CifSeq" column="CIFSEQ" /> <result property="UserSeq" column="USERSEQ" /> <result property="UserId" column="USERID" /> </resultMap> <select id="loadUserInfo" resultMap="loadUserInfoResult" parameterType="java.util.HashMap"> select a.CIFSEQ, a.USERSEQ, a.USERID from EUSER a </select>
自增主键:
<insert id="insert" parameterType="riskmCatalogDO" > INSERT INTO riskm_catalog( id, title) VALUES ( #id#, #title#) <selectKey keyProperty="id" resultType="java.lang.Integer" order="AFTER"> <!--oracle--> SELECT key_sequence.nextval() from dual <!--mysql--> SELECT last_insert_id() from dual </selectKey> </insert>
#和$区别:
1. $中间的变量就是直接替换成值的,#会根据变量的类型来进行替换比如articleTitle的类型是string, 值是"标题"的时候
$articleTitle$ = 标题
#articleTitle# = '标题'
2. $ 的作用实际上是字符串拼接 #用于变量替换
3. 对于一条简单的sql语句,例如:Select * from user where id=#id#,
Ibatis会把sql预编译为select * from user where id=?
$符号会把参数原样嵌入sql语句中而不进行预编译,这就使得有可能出现sql注入攻击。
相关文章推荐
- LeetCode Jump Game II
- 数据库第三范式
- mybatis常用配置——resultMap
- GitHub-入门
- mysql---逻辑和数据库设计及权限
- GitHub-入门
- [R] R package "benchmark"
- java中static{}块
- Codeforces Round #338 (Div. 2)B. Longtail Hedgehog解题报告
- [俄勒冈大学]养成Python写作习惯
- vim 基础学习之普通模式
- 数据库第二范式
- 码农路,渐行渐远
- PDO 用法学习
- vim 基础学习之重复
- centos 6.5 tree命令提示:bash: tree:command not found
- CentOS6.4下安装MySql
- UIColor
- WPF中使用相对资源来进行绑定,数据源是通过DataContext来指定的
- [R] Bind element of List of matrix or data.frame or list