mybatis框架笔记

MyBatis-config.xml 中的知识点

1.起别名(作用是,在xxxMapper.xml文件中的resultType属性直接写类名即可,不用写全类名了)
2.将mapper映射写入配置(把写sql语句的那个配置文件放在MyBatis-config.xml ,当该配置被MyBatis工厂加载时也被加载)

如果是使用@Mapper的话,就把使用该注解的接口的全类名放在里面:

3.数据库的连接操作放在environments标签里面

xxxDao.xml中的知识点

1.所有操作语句都在里面,namespace的值为需要进行数据库操作的那个类(xxxDao.java)的全类名
<?xml version="1.0" encoding="UTF-8"?>
<mapper namespace="com.kuang.dao.xxxDao">
    <select id="listCategory" resultType="Category">
        select * from   category_     
    </select>
</mapper>
2.简单的增删改查的标签(属性id的值必须是xxxDao.java对应的方法名)是 select * from category_
3.多参数操作时,要用到map(其实也可以不用,因为ssm框架的时候可以传多个参数),因为session的方法里面只能携带一个方法名和一个参数session.selectList("listCategoryByIdAndName",params),所以可以把多个参数放到map里面,然后查询。

​ Map<String,Object> params = new HashMap<>();

​ params.put("id", 3);

​ params.put("name", "cat");

​ List cs = session.selectList("listCategoryByIdAndName",params);

4.多表查询,需要在里面声明映射关系(一对多时用collection,多对一时用association)

//type的值是实体类名,id只是个标识

//只用id字段使用标签

多对一: 把collection换成association, 把ofType换成javaType
        <!-- property: 指的是属性名称, javaType:指的是属性的类型 -->
        <association property="category" javaType="Category">
5.注解方式用到的相关注解

@Mapper @Select @Insert @update @delete

MyBatis执行流程

1.调用Resource.getResourceAsStream(),将mybatis-config.xml转化成流的形式

2.使用SqlSessionFactoryBuilder.build() 加载该流,从而创建出对应的sqlSessionFactory工厂

3.从SqlSessionFactory工厂中获取SqlSession的实例session

4.使用session的内置的增删改查方法进行数据库操作。例如:session.selectList("xxxDao.java里面的对应的方法名"`,“参数(根据需求可以无参)”); 或者使用session.getMapper(CategoryMapper.class)获取一个mapper实例,使用该实例对CategoryMapper.class里的方法进行数据库操作。

posted @   木糖醇困了  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
点击右上角即可分享
微信分享提示