编码流程
1.编写全局配置文件: SqlMapConfig.xml(整一次就行了,数据库配置等)
2.映射文件:xxxMapper.xml(编写SQL语句,指定输入参数以及输入参数的Java类型,这是最核心的,会了映射文件,注解方式也就会了)
3.编写dao代码:xxxDao接口,xxxDaoImpl实现类(编写mybatis API,DaoImpl在直播课中作为入口进行分析,入门的话它不是重点)
4. POJO 类(用来传递参数和映射结果对象)
5. 单元测试类
全局配置文件(在实际过程中可能看不见,和spring整合后,spring提供了一个类,这个类提供配置文件的所有功能,但是入门混个脸熟)
这部分功能主要是数据库链接,数据文件通过db.properties做了配置
这个与映射文件相关联,mybatis只会加载全局配置文件,而配置文件就是通过这里加载的
接下来看映射文件,与需求相关,实现一个小需求,根据用户id查询用户信息,
我们取表的数据最终封装成user对象,设计的部分就是映射文件和Dao接口,
SqlSession是mybatis提供的一个重要接口,提供给程序员对这个API进行调用,完成对数据库的增删改查,只要能得到这个接口就能调用它的增删改查
但这个接口需要sqlSessionFactory工厂进行创建,工厂怎么来?不应该在Dao里面取创建,如果Dao每调用一次就创建一次的话那还要这个工厂干什么,那只要不跟Dao有关系的就不需要过多关注了,只要想着谁给我注入一个工厂就行啦,两种方法注入,set方法与构造方法注入;在这里是set方法注入,到时候从sqlSession作为入口去阅读源码
这里面两个参数与映射文件挂钩,完善增删改查,原先jdbc是写的sql,这个sql就是通过第一个参数的唯一标识,这个唯一标识就是映射文件里面的,第二个参数就是sql需要传入的入参
namespace类似Java里面的包名,包名就是为了方便管理类,从而方便管理sql,它针对的增删改查分别有四个标签select,insert,update与delete;
虽然应用的时候简单,但是需要知道最后会封装成mappedStatement对象,这么多对象如何区别了,这里有一个唯一标识id,sql写在标签内部;
有一个需要注意的是这里面的参数怎么传递,原先写jdbc的时候用的是?占位符,mybatis用的#{}与?占位符是一个作用,#{}比?要好因为在jdbc中有两个?占位符有点麻烦,而这里直接用#{}与id绑定在一起;
sql语句的参数用parameterType,指定输入参数对应的Java类型,java类型要与下面函数中的参数类型一致
最终的结果集resultType要封装成一个java对象,这个只需要告诉mybatis需要封装哪个java对象就行啦;原则就是java对象的属性名称和要查询的列的名称要一致
在查询的里面有三个需要关注的点,1.sql语句,来源于需求,如果sql语句中有参数要传递,用#{};2.入参的名称与类型有关系,如果入参类型是8种基本类型或者String类型的话,名称随便写,因为它根本没通过名称去取值;3.如果有多个参数也得封装成一个po类或者map结构去传入,如何去取里面的值,比如po类要去取传入参数的id值,就得跟id值的参数类型一致
测试
使用SqlSessionFactoryBuilder去构建,Mybatis提供Resources去读取
mybatis_录播_03mybatis入门
最新推荐文章于 2024-09-20 12:15:20 发布