1.Mybatis连接池

1.Mybatis连接池

1.1mybatis连接池提供了3中方式配置:

​ 位置:只配置文件SqlMapConfig.xml中的dataSource标签,type属性就是表示采用何用连接方式。

​ type属性的取值:
POOLED : 采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现
UNPOOLED :采用传统的获取连接的方式,虽然也实现Javax.sql.DataSource接口,但是并没有使用池的思想。
JNDI: 采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到DataSource是不一样。
注意:如果不是web或者maven的war工程,是不能使用的。
我们课程中使用的是tomcat服务器,采用连接池就是dbcp连接池。

2.mybatis事务

3.mybatis中的多表查询

​ 表之间的关系

​ 一对多

​ 多对一

​ 一对一

​ 多对多

​ mybatis中多表查询

​ 示例:用户和账户

​ 一个用户可以有多个账户

​ 一个账户只能属于一个用户

​ 步骤:

​ 1.建立两张表,用户表,账户表(具备一对多的关系,需要使用外键在账户表中添加)

​ 2.建立两个实体类:用户实体类和账户实体类(让用户和账户的实体类能体现出来一对多的关系)

​ 3.建立两个配置文件(用户,和账户配置文件)

​ 4.实现配置:当我们查询用户时,可以同时得到用户下所包含的账户信息

​ 当我们查询账户时,可以同时得到账户下所包含的用户信息

​ 示例:用户和角色

​ 用户可以有多个角色

​ 一个角色也可以赋予多个用户

​ 步骤:

​ 1、建立两张表:用户表,角色表
让用户表和角色表具有多对多的关系。需要使用中间表,中间表中包含各自的主键,在中间表中是外键。
2、建立两个实体类:用户实体类和角色实体类
让用户和角色的实体类能体现出来多对多的关系
各自包含对方一个集合引用
3、建立两个配置文件
用户的配置文件
角色的配置文件
4、实现配置:
当我们查询用户时,可以同时得到用户所包含的角色信息
当我们查询角色时,可以同时得到角色的所赋予的用户信息

4.动态 SQL 之标签

<select id="findUserByCondition" resultMap="userMap" parameterType="user">
    select * from user
    <where>
        <if test="userName != null">
            and username = #{userName}
        </if>
        <if test="userSex != null">
            and sex = #{userSex}
        </if>
    </where>
</select>

List 集合用于封装参数

<!-- 根据queryvo中的Id集合实现查询用户列表 -->
<select id="findUserInIds" resultMap="userMap" parameterType="queryvo">
    <include refid="defaultUser"></include>
    <where>
        <if test="ids != null and ids.size()>0">
            <foreach collection="ids" open="and id in (" close=")" item="uid" separator=",">
                #{uid}
            </foreach>
        </if>
    </where>
</select>
<mapper namespace="com.itheima.dao.IUserDao">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值