1、第一容易混淆的 resultMap、resultType
resultMap
resultType
2、parameterMap、parameterType(推荐parameterType)
Map结尾对应映射
Type结尾对应class类型
3、#{}、${}
#{} 解析成SQL语句后会替换成 ?
${} 解析成SQL语句后会直接替换内容值
要向正确执行,还需要加上单引号
4、#{}、ognl表达式
常用标签
Mybatis核心之SqlSession
应用到的技术,先使用JDBC,再对比Mybatis的甜。
怎么把参数传递到SQL语句?
配置文件怎么接受参数?
接收到的参数怎么使用?
建立数据库时的编码和建表时候的编码
安装数据库时的编码
与数据库交互的URL加编码
1、文件的编码
2、jsp上设置的编码
3、servlet接收参数时用来转换的编码
4、tomcat接收get中文的编码
常见的几个问题
父表与子表统一插入时,且父表的主见是自增组件,如何拿到返回的自增组件?
1、useGeneratedKevs为true时,表示采用自增组件
2、keyProperty表示的是返回的组件,存到java对象的哪个属性里面。在sqlsession执行前id是没有值的,执行后就编程有值了
#{}与ognl表达式
1、单一参数时#{}随便写啥。自定义类型时就不行了
2、单一参数时ognl必须使用_parameter来获取参数
#{}与ognl表达式
${} 的使用场景--------------order by场景
${} 的使用场景--------------order by场景
${} 的使用
#{}:会被mybatis解析成预编译的?然后通过prepareStament为这个?赋值为段子
${}:直接拼接在后面,然后赋值。它没有预编译效果
#{}与${}的--------区别1
parameterMap和parameterType
1、它们的作用和resultMap与resultType的区别是差不多的
2、表示传参的对应关系
resultMap与resultType的区别
1、都是用于sql结果集与java对象的关系
2、resultType适合直接映射的,字段与数据库的一致,不区分大小写
3、resultMap适合自己指定对应关系,typeHandel用于数据类型转换(比如用 0 1 表示男女就可以用resultMap方式)
常用标签总结
程序里面最经典的结构:
1、顺序
2、循环 foreach
3、分支 choose
常用的mybatis标签·,大多都是在if条件语句的情况下使用
1、where 两个作用
2、sql引用
3、set和where作用差不多
4、trim,代替其他标签
5、if/else的替代标签choose when(mybatis里面没有if else标签)
trim标签代替set标签
常用的mybatis标签·,大多都是在if条件语句的情况下使用
where 两个作用
sql引用
set和where作用差不多
trim,代替其他标签