前言:
而今小伙伴们对“如何查看sql中的数据源”大概比较注重,同学们都需要知道一些“如何查看sql中的数据源”的相关文章。那么小编也在网上收集了一些对于“如何查看sql中的数据源””的相关文章,希望同学们能喜欢,大家快快来了解一下吧!一、Mybatis 连接池
1.1 Mybatis 的连接池技术采用的是自己的连接池技术。在 Mybatis的 SqlMapConfig.xml配置文件中,通过来<dataSource type="pooled">来实现 Mybatis中连接池的配置。
1.2 Mybatis 连接池的分类:
UNPOOLED:不使用连接池的数据源
POOLED:使用连接池的数据源
JNDI:使用 JNDI 实现的数据源
在这三种数据源中,我们一般采用的是 POOLED 数据源
1.3 Mybatis 中数据源的配置:
二、 Mybatis 的事务控制
2.1 Mybatis 中事务提交方式:Mybatis中事务的提交方式,本质上就是调用JDBC的 setAutoCommit()来实现事务控制。
2.2 Mybatis 自动提交事务的设置(不常用,了解):
注意事项:我们发现,此时事务就设置为自动提交了,同样可以实现CUD操作时记录的保存。虽然这也是一种方式,但就编程而言,设置为自动提交方式为 false 再根据情况决定是否进行提交,这种方式更常用,因为我们可以根据业务情况来决定提交是否进行提交。
三、Mybatis 的动态 SQL 语句
3.1 动态 SQL 之<if>标签:
3.1.1 使用举例:
持久层 Dao 接口:
持久层 Dao 映射配置:
注意: <if>标签的 test 属性中写的是对象的属性名,如果是包装类的对象要使用 OGNL 表达式的写法。 另外要注意 where 1=1 的作用~!
测试:
3.2 动态 SQL 之<where>标签
3.2.1 为了简化上面 where 1=1 的条件拼装,我们可以采用标签来简化开发:
持久层 Dao 映射配置:
3.3 动态标签之<foreach>标签
3.3.1 需求:当传入多个 id 查询用户信息时,就要将一个集合中的值,作为参数动态添加进来。
3.3.2 代码实现:
在 QueryVo 中加入一个 List 集合用于封装参数
在持久层 Dao 接口定义方法:
持久层 Dao 映射配置:
编写测试方法
3.4 Mybatis 中简化编写的 SQL 片段:Sql 中可将重复的 sql 提取出来,使用时用 include 引用即可,最终达到 sql 重用的目的。
3.4.1 举例:
定义代码片段:
引用代码片段:
四、 Mybatis 多表查询之一对多
4.1 本次案例主要以最为简单的用户和账户的模型来分析Mybatis多表关系。用户为 User 表,账户为Account表。一个用户(User)可以有多个账户(Account)。
4.2 一对一查询(多对一):
4.2.1 需求: 查询所有账户信息,关联查询下单用户信息。 因为一个账户信息只能供某个用户使用,所以从查询账户信息出发关联查询用户信息为一对一查询。如果从用户信息出发查询用户下的账户信息则为一对多查询,因为一个用户可以有多个账户。
4.2.2 定义账户信息的实体类
4.2.3 编写 Sql 语句:实现查询账户信息时,也要查询账户所对应的用户信息。
4.2.4 定义 AccountUser 类
为了能够封装上面 SQL 语句的查询结果,定义 AccountUser类中要包含账户信息同时还要包含用户信息,所以我们要在定义 AccountUser 类时可以继承 Account 类。
4.2.5 定义账户的持久层 Dao 接口:
4.2.6 定义 AccountDao.xml 文件中的查询配置信息:
4.2.7 创建 AccountTest 测试类
4.2.8 定义专门的类作为输出类型,其中定义了 sql 查询结果集所有的字段。此方法较为简单,企业中使用普遍。
4.3 一对多查询:
4.3.1 需求: 查询所有用户信息及用户关联的账户信息。
分析: 用户信息和他的账户信息为一对多关系,并且查询过程中如果用户没有账户信息,此时也要将用户信息查询出来,我们想到了左外连接查询比较合适。
4.3.2 编写 SQL 语句:
4.3.3 用户持久层 Dao 接口中加入查询方法:
4.3.4 用户持久层 Dao 映射文件配置:
4.3.5 测试方法
五、Mybatis 多表查询之多对多
5.1 用户与角色的关系模型:
5.2 业务要求及实现 SQL:
5.2.1 需求:实现查询所有对象并且加载它所分配的用户信息。
分析:查询角色我们需要用到Role表,但角色分配的用户的信息我们并不能直接找到用户信息,而是要通过中 间表(USER_ROLE 表)才能关联到用户信息。
5.2.2 实现的 SQL 语句:
5.3 编写角色实体类
5.4 编写 Role 持久层接口
5.5 编写映射文件:
5.6 编写测试类
标签: #如何查看sql中的数据源 #mybatis 自动提交 #mybatis自动提交设置 #多个sql查询结果一起输出