MyBatis框架
官方文档地址: https://mybatis.org/
什么是框架
? 框架类似于脚手架,建筑时候帮助你更快的完成建造任务,单纯的框架不能用来当房子用,但是辅助盖楼也是很有必要的,能够节省更多的时间。另一种说法就是框架提供了一系列的模板代码,只需要很少的代码来实现基础功能,最早时候通过JDBC连接数据库,每次都写加载驱动,连接数据库,写SQL语句,执行语句,处理结果集,关闭连接,多麻烦呀,所以框架就提供了一个入口,写上驱动名和相关的参数就能进行SQL操作了。
? 我还有一层理解,就是框架中集成了大量的代码,通过反射等各种方式,对性能有些影响,但是对于后期维护起来更加方便,所以这个问题能难为到我这种强迫症,毕竟现在都是框架横行的时代,不用也不行啊,所以权衡性能和维护难度吧。【这里是我的疑问,大佬可以帮我解答以下】
软件的三层架构
- 数据持久化存储层:主要和数据库打交道的
- 业务层:主要实现业务功能的
- 表现层:与用户进行交互的,并且能与业务层联系
DAO层与业务层联系,业务层与表现层联系,这样的架构应该是目前主流的规范。
MVC设计思想
? 最早我对三层构架和MVC模型总是混淆,MVC是一种设计思想,他们确实有相似的地方,Model 是模型,模型拥有多种处理任务,模型可以对多个视图提供数据,可以有效的减少代码量。View是视图,与前端页面关联最大,一般都是由 页或者是客户端界面组成。Controller是控制器,控制器接收用户请求,并且完成对模型的指向,
MyBatis入门
? MyBatis是一个持久层框架,提供了与数据库交互的方法,能够减少大量代码,主要写一些SQL语句就可以了,通过XML配置,这样维护起来也更加方便了,与代码混淆在一起就会感到很臃肿。
MyBatis依赖
? MyBatis虽然可以操作数据库,但是也需要MySQL的驱动支持,所以在使用MyBatis时,仍要导入MySQL的驱动,以Maven项目为例,依赖如下所示:
MyBatis核心配置
? MyBatis需要一个主配置文件,这个文件中包含了与数据库连接的配置以及映射文件的配置,所以核心配置文件不能丢掉。
核心配置文件标签
在资源目录创建一个数据库连接的配置文件:文件名(db.properties)
核心配置文件中读取上面的配置文件
映射文件
类型的别名
? 就像上面的resultType写的都是全限定名,每次这么写太累了,所以可以给他们起个别名。在核心配置文件中,添加别名标签和属性。如下所示:
? 这样就可以在映射文件中直接使用u来代表我的User类了。
迫不及待的运行
maven提供了测试类,我们可以在测试类中写代码,看一下是否能够执行呢当前没有使用接口方式,只有核心配置文件、映射文件和实体类]
@Testpublic void query() throws IOException { //alt+enter:补全返回值类型 //读取mybatis的核心配置文件 InputStream stream = Resources.getResourceAsStream("mybatisConfig.xml"); //获取SqlSessionFactory对象 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(stream); //获取SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(); //args:映射文件中的namespace.操作标签的id值 ListUser> list = sqlSession.selectList("userMapper.selectUser"); //输出结果 list.forEach(System.out::print); //关闭连接对象 sqlSession.close();}@Testpublic void add() throws IOException { //读取mybatis的核心配置文件 InputStream stream = Resources.getResourceAsStream("mybatisConfig.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(stream); SqlSession sqlSession = sqlSessionFactory.openSession(); User u=new User(); u声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!