javaEE框架课程
3.3 settings(配置)
mybatis全局配置参数,全局参数将会影响mybatis的运行行为。
详细参见“学习资料/mybatis-settings.xlsx”文件
javaEE框架课程
3.4 typeAliases(类型别名) 3.4.1 mybatis支持别名:
别名 _byte _long _short _int _integer _double _float _boolean string byte long short int integer double float boolean date decimal bigdecimal
映射的类型 byte long short int int double float boolean String Byte Long Short Integer Integer Double Float Boolean Date
BigDecimal BigDecimal
3.4.2 自定义别名:
在SqlMapConfig.xml中配置:
javaEE框架课程
3.5 typeHandlers(类型处理器)
类型处理器用于java类型和jdbc类型映射,如下:
mybatis自带的类型处理器基本上满足日常需求,不需要单独定义。
mybatis支持类型处理器:
类型处理器
BooleanTypeHandler ByteTypeHandler ShortTypeHandler IntegerTypeHandler LongTypeHandler FloatTypeHandler DoubleTypeHandler BigDecimalTypeHandler StringTypeHandler ClobTypeHandler NStringTypeHandler NClobTypeHandler ByteArrayTypeHandler BlobTypeHandler DateTypeHandler DateOnlyTypeHandler TimeOnlyTypeHandler SqlTimestampTypeHandler SqlDateTypeHandler SqlTimeTypeHandler ObjectTypeHandler EnumTypeHandler
Java类型
Boolean,boolean Byte,byte Short,short Integer,int Long,long Float,float Double,double BigDecimal String String String String byte[] byte[]
Date(java.util) Date(java.util) Date(java.util)
Timestamp(java.sql) Date(java.sql) Time(java.sql) 任意
Enumeration类型
JDBC类型
任何兼容的布尔值
任何兼容的数字或字节类型 任何兼容的数字或短整型 任何兼容的数字和整型 任何兼容的数字或长整型 任何兼容的数字或单精度浮点型
任何兼容的数字或双精度浮点型
任何兼容的数字或十进制小数类型
CHAR和VARCHAR类型 CLOB和LONGVARCHAR类型
NVARCHAR和NCHAR类型 NCLOB类型
任何兼容的字节流类型 BLOB和
LONGVARBINARY类型 TIMESTAMP类型 DATE类型 TIME类型
TIMESTAMP类型 DATE类型 TIME类型
其他或未指定类型
VARCHAR-任何兼容的字符串类型,作为代码存储(而不是索引)。
javaEE框架课程
3.6 mappers(映射器)
Mapper配置的几种方法:
3.6.1 使用相对于类路径的资源 如: 3.6.2 使用完全限定路径 如: 3.6.3 使用mapper接口类路径 如: 注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。 3.6.4 注册指定包下的所有mapper接口 如: 注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。 4 Mapper.xml映射文件 Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心。 javaEE框架课程 4.1 parameterType(输入类型) 4.1.1 #{}与${} #{}实现的是向prepareStatement中的预处理语句中设置参数值,sql语句中#{}表示一个占位符即?。 使用占位符#{}可以有效防止sql注入,在使用时不需要关心参数值的类型,mybatis会自动进行java类型和jdbc类型的转换。#{}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。 ${}和#{}不同,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。使用${}不能防止sql注入,但是有时用${}会非常方便,如下的例子: 如果本例子使用#{}则传入的字符串中必须有%号,而%是人为拼接在参数中,显然有点麻烦,如果采用${}在sql中拼接为%的方式则在调用mapper接口传递参数就方便很多。 //如果使用占位符号则必须人为在传参数中加% List //如果使用${}原始符号则不用人为在参数中加% List 再比如order by排序,如果将列名通过参数传入sql,根据传的列名进行排序,应该写为: ORDER BY ${columnName} 如果使用#{}将无法实现此功能。 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库mybatis+spring+springmvc(传智播客)笔记(6)在线全文阅读。
相关推荐: