当前位置:主页 > 查看内容

Mybatis复习小结

发布时间:2021-06-05 00:00| 位朋友查看

简介:mybatis在使用代理dao的方式实现增删改查时做什么事呢 只有两件事 第一创建代理对象 ? ? ? ? ? ? ? ? ? ? ? ?第二在代理对象中调用selectList 我们读取配置文件用到了IO里面的Resources类读出来的流也就是我们找到了我们要的这这些信息交给了构建者构建者使……

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的操作

?

?

;原文链接:https://blog.csdn.net/ls_wifi/article/details/114518136
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:mybatis学习日志(一) 下一篇:没有了

推荐图文


随机推荐