-
一、resultMap和resultType:当配置resultType时,就不需要配置resultMap,看似resultType方便,但是会被受限制,没有resultMap开放多。
相同点:都是表示查询结果集的类型。
不同点:
resultMap需要手动配置映射关系,而resultType是直接指定java类型或者自定义的实体类型,查询结果集的列名必须和实体属性名称一致(实体类:名称大小写可以忽略;java类型,如Map集合的key大小写要一致,尽量都大小写规范,如果不放心可以select ID id,...)。
优缺点:
1、resultType结果集列名要与java属性名一样,但是resultMap不受限制,因为resultMap有column来规定。
2、由于SQL类型与Java中类型部分不匹配,resultMap可以通过typeHandler=""来匹配(如:SQL中的0和1来表示java中的false和true;Date类型的转换),但是resultType无能为力。
二、parameterMap和patameterType:
表示传入参数的对应关系,前者不推荐使用,只是mybatis为了适应以前的版本。
提示:看到Map字眼的想到映射关系,看到Type字眼的想到类型。三、#{}和${}:
相同点:都是用来作为占位符。
不同点:#{}在预编译的时候会呗替换为?,而${}在预编译的时候直接将变量的值替换进去,而且没有引号(所以还要加上“'${...}'”),故一般都是用前者,个别情况会使用后者:如需进行排序,且排序字段为参数时可以使用${}(order by后面不喜欢被预编译,所以使用${}更为恰当)。
四、#{}和ognl:在#{}中如果是基本类型,其中的名称可以随便写(不推荐),但一般都用_parameter,因为值唯一,而ognl中必须写成_parameter的方式。查看全部 -
关于PrintWrite.write()返回的是乱码的原因是没有给responses设置编码,加上resp.setCharacterEncoding("UTF-8");查看全部
-
xml配置文件中部分符号需要转义
& --> &
" --> "
查看全部 -
查看全部
-
查看全部
-
不同namespace下的id可以相同
resultMap对应相关的实体类,id的命名不可重复。
主键用id,其他字段用result。
<mapper namespace="Message"> <resultMap type="com.imooc.bean.Message" id="MessageResult"> <id column="id" jdbcType="INTEGER" property="id"/> <result column="username" jdbcType="VARCHAR" property="username"/> <result column="password" jdbcType="VARCHAR" property="password.encrypted"/> <result column="administrator" jdbcType="BOOLEAN" property="administrator"/> </resultMap> <select id="queryMessageList" parameterType="long" resultMap="UserResult"> select ID,COMMAND,DESCRIPTION,CONTENT from message where 1 =1 </select> </mapper>
sqlSession通过namespace下的id查找对应的SQL语句
sqlSession = dbAccess.getSqlSession(); sqlSession.selectList("Message.queryMessageList");
查看全部 -
url设置编码
查看全部 -
课程准备:段子手的mybatis的课程的基本功
查看全部 -
mybatis配置核心查看全部
-
mybatis常用标签
查看全部 -
jdbc:mysql://localhost:3306/mocro_message?characterEncoding=utf-8 记得加上数据库的字符串的字符编码查看全部
-
mybatis常见问题解析
查看全部 -
mybatis容易混淆的概念
查看全部 -
mybatis全部标签工能与标签名称
查看全部 -
hidden?????
查看全部
举报