mybatis03

1.mybaits的数据源

 Mybatis 将它自己的数据源分为三类:

UNPOOLED     不使用连接池的数据源(想用就查询建)

POOLED       使用连接池的数据源(常用,用的时候才池中取,完了放回)

JNDI            使用 JNDI 实现的数据源 
在这三种数据源中,我们一般采用的是 POOLED 数据源(很多时候我们所说的数据源就是为了更好的管理数据 库连接,也就是我们所说的连接池技术)

2.事务控制

默认不可开启自动提交事务   需要手动提交  session.commit(); 

开启自动提交事务:session = factory.openSession(true); 

设置为自动提交方式为 false再根据情况决定是否进行提交,这种方式更常用。因为我们可以根据业务 情况来决定提交是否进行提交。

3.动态sql语句

 if where foreach

1.需求:根据返回的id或者返回的name或者其他字段来查询对应的数据

  

2.需求

标签用于遍历集合,它的属性:  collection:代表要遍历的集合元素,注意编写时不要写#{}  open:代表语句的开始部分  close:代表结束部分 

传入多个 id 查询用户信息,用下边 sql 实现:

SELECT * FROM USERS WHERE username LIKE '%张%' AND (id =10 OR id =89 OR id=16) 

这样我们在进行范围查询时,就要将一个集合中的值,作为参数动态添加进来。

public class QueryVo implements Serializable {

private List ids;

**set ()

**get()

}

 

  
<select id="findInIds" resultType="user" parameterType="queryvo">
<include refid="defaultSql">include>
<where> <if test="ids != null and ids.size() > 0">
<foreach collection="ids" open="id in ( " close=")" item="uid" separator=",">
#{uid}
foreach>
if>
where>
select>

 4.定义代码片段 

 

 

   select * from user 

 

 

 

 5.一对一查询

 1.直接在pojo上加字段  使用内连接查询对应的字段

  

 

2.在pojo中引入另一种张表的pojo 使用resultMap 配置


 

6.一对多

一样的在pojo在添加另一张表pojo的 List<> 类型   使用外连接  join on

 

 

 

 7.多对多

 跟1对多一样的 操作  数据库sql不一样而已

 

你可能感兴趣的:(mybatis03)