今天小编给大家分享一下mybatis的动态SQL及连接池怎么配置的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
mybatis根据传入参数的不同来查询。
<select id="findByCondition" parameterType="com.domain.User" resultType="com.domain.User"> select * from users where 1=1 <if test="name != null"> and name= #{name} </if> </select>
如果太多的话,就不写where1=1.在if外面嵌套if标签。
<select id="findByCondition" parameterType="com.domain.User" resultType="com.domain.User"> select * from users <where> <if test="name != null"> and name= #{name} </if> </where> </select>
同时,第一个if语句中的and将会被省略!!!
mybatis范围查询,例如select * from users where age in (11,12,13);
外部定义一个包装类,包装ages作为属性,下列以id为例子(在外部定义集合来包装)
<select id="findByRange" parameterType="com.domain.QueryVo" resultType="com.domain.User"> select * from users <where> //where子句的开头,and或者是or,将会被where元素去除。 <if test="ids != null and ids.size()>0">这里的判断条件是Java语句 <foreach collection="ids" open="and id in (" close=")" item="id" separator=","> #{id} </foreach> </if> </where> </select>
SQL语句 select 字段 from where id in{?}
<foreach>标签用于遍历集合,它的属性;
Collection
代表要遍历的集合元素(属性名称)
open
代表语句的开始部分
close
代表语句的结束部分
item
代表遍历集合的每个元素,生成的变量名
sperator
代表元素之间的分割符
连接池:在实际开发中使用,可以减少我们获取连接所消耗的时间。
mybatis连接池提供了3种方式的配置
在主配置文件中的DataSource属性中配置
type
取值 POOLED采用传统的javax.sql.DataSource规范中的连接池
UNPOLLED
虽然实现了DataSource的标准,但是没有使用池的概念(Connection对象)
JNDI
使用服务器提供的jndi技术来取得DataSource对象。注意:如果不是web工程和maven的war工程,是不可使用的。
备注:mybatis中事务的操控,底层是通过操控Connection对象设置的。
POOLED
:从池中拿出连接,最后把连接放回池里。
UNPOOLED
创建连接,结束连接(jdbc连接方式)
① where和if标签
② foreach循环标签
注意事项:
③ 批量添加
④ selectKey
① 多对一查询
A). 建表时,外键一定是建在多的一端。
B). 在多的一端的实体类中创建一个一的一端的对象属性。
C). 连接查询的sql语句
①select … from 表1 left join 表2 on 连接条件。连接条件一般就是外键=指向的主键。
② resultMap
i. id,result配置一般的属性
ii. association标签配置多余的字段,property和javatype属性。子标签id和result
② 多对一查询如何做到修改功能
③ 一对多查询
与多对一查询不同的地方:
A)创建实体类时,在一的一端创建一个List属性,List中放的是多的一端的对象。
B)详细的resultMap配置
以上就是“mybatis的动态SQL及连接池怎么配置”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。