二、MyBatis的常用基本知识
2016-03-13 14:53
190 查看
1、类型别名
类型别名是为Java类型设置的一个短名字。它只和XML配置有关,用来减少类完全限定类名的冗余
目的:设置别名可以不用在每个需要使用完全限定类名的位置使用一场串的冗余
设置方法:
方法一:
方法二
MyBatis已经内建的别名:
别名 - - - - - - - - - - - - - - - - - - - - - - - - - 映射类型
_byte - - - - - - - - - - - - - - - - – - - - - - - - byte
_long - - - - - - - - - - - - - - - - - - - - - - - - long
_short - - - - - - - - - - - - - - - - - - - - - - - - short
_int - - - - - - - - - - - - - - - - - - - - - - - - - int
_integer - - - - - - - - - - - - - - - - - - - - - - int
_double - - - - - - - - - - - - - - - - - - - - - - double
_float - - - - - - - - - - - - - - - - - - - - - - - - float
_boolean - - - - - - - - - - - - - - - - - - - - - boolean
string - - - - - - - - - - - - - - - - - - – - - - - String
byte - - - - - - - - - - - - - - - - - - - - - - - - - Byte
long - - - - - - - - - - - - - - - - - - - - - - - - - Long
short - - - - - - - - - - - - - - - - - - - - - - - - - Short
int - - - - - - - - - - - - - - - - - - - - - - - - - - - Integer
integer - - - - - - - - - - - - - - - - - - - - - - - -Integer
double - - - - - - - - - - - - - - - - - - - - - - - Double
float - - - - - - - - - - - - - - - - - - - - - - - - - Float
boolean - - - - - - - - – - - - - - - - - - - - - -Boolean
date - - - - - - - - - - - - - - - - - - - - - - - - - Date
decimal - - - - - - - - - - - - - - - - - - - - - - -BigDecimal
bigDecimal - - - - - - - - - - - - - - - - - - - - - BigDecimal
object - - - - - - - - - - - - - - - - - - - - - - - - Object
map - - - - - - - - - - - - - - - - - - - - - - - - - Map
hashmap - - - - - - - - - - - - - - - - - - - – - - HashMap
list - - - - - - - - - - - - - - - - - - - - - - - - - - List
arrayList - - - - - - - - - - - - - - - - - - - - - - - ArrayList
collection - - - - - - - - - - - - - - - - - - - - - - Collection
iterator - - - - - - - - - - - - - - - - - - - - - - - - Iterator
2、字符串替换:
MyBatis的两种字符串替换语法:
#{….} : 使用?进行替代
${…} : 使用完整字符串完成替代
默认情况下,使用#{…}格式的语法会导致MyBatis创建预处理语句属性并安全地设置值,但对于ORDER BY 这样的语句并不适用
3、Result Maps
ResultMap 元素是MyBatis中最强大最重要的元素
常用与关联查询或者当数据库中的字段信息和对象属性不一致时的映射问题
使用ResultMap解决字段信息与对象属性不一致:
方法一:通过使用投影解决
方法二:使用外部的resultMap
1、声明resultMap
2、在语句中使用:
解决关联查询的问题:
方法一:在resultMap中使用
1、声明resultMap
2、使用
类型别名是为Java类型设置的一个短名字。它只和XML配置有关,用来减少类完全限定类名的冗余
目的:设置别名可以不用在每个需要使用完全限定类名的位置使用一场串的冗余
设置方法:
方法一:
<!-- mybatis-config.xml --> <typeAliases> <!-- alias: 别名--> <!-- type : 别名对应的完全限定类型 --> <typeAlias alias="User" type="yin.shop.model.User" /> <typeAlias alias="alias="Blog" type="domain.blog.Blog"/> ..... ..... ..... </typeAliases>
方法二
<!-- mybatis-config.xml --> <!-- 该方法MyBatis会在包名下自动搜索需要的JavaBean --> <!-- 默认情况下会使用Bean的首字母的非限定类名来做为它的别名 --> <typeAliases> <!-- name : 包名 --> <package name="yin.shop.model" /> </typeAliases>
MyBatis已经内建的别名:
别名 - - - - - - - - - - - - - - - - - - - - - - - - - 映射类型
_byte - - - - - - - - - - - - - - - - – - - - - - - - byte
_long - - - - - - - - - - - - - - - - - - - - - - - - long
_short - - - - - - - - - - - - - - - - - - - - - - - - short
_int - - - - - - - - - - - - - - - - - - - - - - - - - int
_integer - - - - - - - - - - - - - - - - - - - - - - int
_double - - - - - - - - - - - - - - - - - - - - - - double
_float - - - - - - - - - - - - - - - - - - - - - - - - float
_boolean - - - - - - - - - - - - - - - - - - - - - boolean
string - - - - - - - - - - - - - - - - - - – - - - - String
byte - - - - - - - - - - - - - - - - - - - - - - - - - Byte
long - - - - - - - - - - - - - - - - - - - - - - - - - Long
short - - - - - - - - - - - - - - - - - - - - - - - - - Short
int - - - - - - - - - - - - - - - - - - - - - - - - - - - Integer
integer - - - - - - - - - - - - - - - - - - - - - - - -Integer
double - - - - - - - - - - - - - - - - - - - - - - - Double
float - - - - - - - - - - - - - - - - - - - - - - - - - Float
boolean - - - - - - - - – - - - - - - - - - - - - -Boolean
date - - - - - - - - - - - - - - - - - - - - - - - - - Date
decimal - - - - - - - - - - - - - - - - - - - - - - -BigDecimal
bigDecimal - - - - - - - - - - - - - - - - - - - - - BigDecimal
object - - - - - - - - - - - - - - - - - - - - - - - - Object
map - - - - - - - - - - - - - - - - - - - - - - - - - Map
hashmap - - - - - - - - - - - - - - - - - - - – - - HashMap
list - - - - - - - - - - - - - - - - - - - - - - - - - - List
arrayList - - - - - - - - - - - - - - - - - - - - - - - ArrayList
collection - - - - - - - - - - - - - - - - - - - - - - Collection
iterator - - - - - - - - - - - - - - - - - - - - - - - - Iterator
2、字符串替换:
MyBatis的两种字符串替换语法:
#{….} : 使用?进行替代
${…} : 使用完整字符串完成替代
默认情况下,使用#{…}格式的语法会导致MyBatis创建预处理语句属性并安全地设置值,但对于ORDER BY 这样的语句并不适用
3、Result Maps
ResultMap 元素是MyBatis中最强大最重要的元素
常用与关联查询或者当数据库中的字段信息和对象属性不一致时的映射问题
使用ResultMap解决字段信息与对象属性不一致:
方法一:通过使用投影解决
SELECT *, post_code as 'postcode' .....
方法二:使用外部的resultMap
1、声明resultMap
<!-- user.xml --> ... <!-- id : resultMap的唯一标识 --> <!-- type : 完全限定类名或别名 --> <resultMap id="userMap" type="User" > <id property="id" column="id" /> <result property="userName" column="username" /> <result property="password" column="password" /> </resultMap>
2、在语句中使用:
<!-- user.xml --> <select id="load" resultMap="userMap" > ....... </select>
解决关联查询的问题:
方法一:在resultMap中使用
<association>
1、声明resultMap
<!-- user.xml --> .... <resultMap id="userMap" type="User" autoMapping="true" > <id column="a_id" property="id" /> <!-- 一个复杂的类型关联;许多结果将包成这种类型 --> <association property="user" javaType="User" /> <result column="user_id" property="id" /> <result column="username" property="userName" /> .... .... </association> </resultMap>
2、使用
<!-- user.xml --> <select id="load" parameterType="int" resultMap="userMap" > SELECT *, ti_id as a_id, t1.user_id, t2.id as 'user_id" FROM t_address t1 LEFT JOIN t_user t2 ON t1.user_id = t2.id WHERE t1.id=#{id} </select>
相关文章推荐
- 初学者 ffmpeg + SDL2.0 安装与应用概要点
- 线程的创建-4
- laravel开发环境准备
- 第三周项目二-本月有几天?
- C++读取txt文件操作
- RHEL6.4 NFS文件共享服务器搭建
- Xcode中Download的模拟器下载和文档下载
- 模板_点分治
- 第三周项目-输出星号图
- 重温观察者模式
- Android Studio--使用Toast
- 矩形面积交
- 安装配置Eclipse过程
- shiro springsecurity lucene restful webservice bootstrap html5
- 如何用jspSmartUpload上传文件:)
- uva11729(Commando War)
- 两个优先队列维护左右(12北邮多校)(4302)
- 自定义标题项目框架
- redis server
- C++阶乘