Mybatis复习小结

mybatis在使用代理dao的方式实现增删改查时做什么事呢?

只有两件事: 第一:创建代理对象

                       第二:在代理对象中调用selectList

我们读取配置文件用到了IO里面的Resources类,读出来的流也就是我们找到了我们要的这这些信息,交给了构建者,构建者使用工具类给我们构建了一个工厂对象,工厂里面的openSession()给我们提供了一个session方法,什么时候调用selectList查询所有的方法,创建Dao实现类增强的时候也就是创建代理对象的时候。

第一步 SqlSessionFactoryBuilder接收SqlMaoConfig.xml文件流,构建出SqlSessionFactory对象  // SqlSessionFactoryBuilder的build()方法里面有一个XMLConfigBuilder对象,他是做什么的呢?他是用来解析XML文件的一个构建者,通过他的parse()方法解析mybatis配置文件

第二步 SqlSessionFactory读取SqlMapConfig.xml中连接数据库和mapper映射信息。用来生产出真正操作数据库的SqlSession对象

第三步 SqlSession对象有两大作用:1、生成接口代理对象  2、定义通用增删改查方法

第四步 在代理对象中执行目标对象的方法

第五步 封装结果集

 

模糊查询操作:

@Test
public void testFindByName(){
  List<User> users = userDao.findByName("%王%");
  for(User user : users){
    System.out.println(user); 
     } 
}

xml写法

select *from user where username like #{name} 


@Test
public void testFindByName(){
  List<User> users = userDao.findByName("王");
  for(User user : users){
    System.out.println(user); 
     } 
}

xml写法

select *from user where username like '%${value}%' 

 

 获取用户的总记录条数

select count(id) from user;

 

配置插入操作后,获取插入数据的id 

  <insert id="saveUser" parameterType="com.itheima.domain.User">
    <selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
       select last_insert_id();
    </selectKey>
    insert into user(username,address,sex,birthday)values(#{username},#{address},#{sex},#{birthday}); 
    </insert>

 keyProperty="id" //id的属性名称对应实体类的
 keyColumn="id" //id的类名对应表的 
 resultType="int" //结果集类型
 order="AFTER" //什么时候执行获取id的操作

 

 

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值