mybatis-02
Posted 随笔小记lover
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis-02相关的知识,希望对你有一定的参考价值。
mybatis
mybatis
持久化框架
It was an accident to know you
ssm框架学习
mybatis
目录
一、mapper的动态代理原则
二、占位符#{},${}。
三、parameterType和resultType
四、输出包装类型resultMap
五、动态sql语句
六、提取sql片段
七、一对一查询
八、一对多查询
一、mapper的动态代理原则
接口--四个原则
1. 方法名==user。Xml中的id名
2. 返回值类型于mapper.xml文件中返回类型一致
3. 方法的入参类型于mapper.xml中入参的类型要一致
4. 命名空间等于接口的完整类名--绑定接口
SqlMapConfig.xml
Properties:驱动读取--jdbc.properties
Typealiases:类型别名--解决不用写很长类名的问题-----包和子包下所有的 大小写均可
Mapper:映射 子.xml
二、占位符#{},${}
#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换。#{}可以有效防止sql注入。 #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。
${}表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。
三、parameterType和resultType
parameterType:指定输入参数类型,mybatis通过ognl从输入对象中获取参数值拼接在sql中。
resultType:指定输出结果类型,mybatis将sql查询结果的一行记录数据映射为resultType指定类型的对象。如果有多条数据,则分别进行映射,并把对象放到容器List中
四、输出包装类型
当字段与数据库不对应的时候使用resultmap
五、动态sql语句
If:判断是否为空 防止对造成and的影响
Where去掉第一个前and
Foreach:使用多个id查询用户时使用
foreach元素的属性主要有 item,index,collection,open,separator,close。
item表示集合中每一个元素进行迭代时的别名,
index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,
open表示该语句以什么开始,
separator表示在每次进行迭代之间以什么符号作为分隔 符,
close表示以什么结束。
在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,主要有一下3种情况:
1. 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
2. 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
3. 如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可
六、提取sql片段
提取sql片段
<sql></sql>
取得时候用<include>
七、一对一查询
1.使用resultType
先新建一个类继承父类再添加需要关联查询后的字段
在mapper中写入sql语句
2.使用resultMap
在类中写入另一个表的类
使用resultMap
八、一对多查询
在类中写入一对多的类
编写mapper,书写resultMap
先成者未必有成,后达者未必不达
何事秋风悲画扇
编辑:lover
以上是关于mybatis-02的主要内容,如果未能解决你的问题,请参考以下文章
学习mybatis02---配置mybatis-config.xml文件