首页 > 技术文章 > mybatis课程设计02

hao20200708 2020-09-03 09:55 原文

燃尽图:

一、 MyBatis实现数据库连接

1. 知识点引入

MyBatis的实现除了之前学习JDBC时需要使用的mysql-connector-java包之外,还要有引入三个jar包。第一个是数据库连接池,配置数据库连接的各种参数;第二个是mybatis-spring包,这个包是mybatisspring的整合,实现springmybatis管理;第三个是mybatis包,这个是mybatis的核心包,里面封装了mybatis对数据库的高级封装操作。

当然了,这里用的是spring-mybatis技术实现的数据库操作,所以也引入了有关springjar包:spring-webmvc。关于spring的使用和原理,会分出另外的章节讲解,这里暂且理解为servlet的高级封装即可。

2. 概念

数据库操作都需要什么,mybatis是怎么实现的?

1.数据库连接的配置

2.实体类,要和数据库表的字段有一一对应的关系

3. java类中的mapper接口

4.mapper接口相互映射的用来书写SQL语句的xml文件

5.可以直接使用单元测试,测试SQL操作的执行结果。

3. 示例 

//上节课中关于数据库连接配置的mybatis写法

 

4. 讲解思路

本节课是在上节课的基础上,对配置文件的详解。在套用JDBC的连接方式之基础之上,加深对mybatis连接数据库的配置参数理解。

 

 

 

5. 小结

所有的配置,其实都是在为SQL工厂服务的。SQL工厂负责数据库的连接,负责java类对数据库的SQL操作,负责SQL操作之后,对操作结果的封装和返回。

 

 

二、 MyBatis的数据库配置之方式2

1. 知识点引入

java中,一个功能的实现是可以有不同的方式去完成的,这里在介绍一种其他的配置方式。该方法是一种紧凑型的配置,不太适合大规模的协同开发,但是也是需要掌握的。

7. 概念

mybatis的配置进行精简,写在一个配置当中。

8. 示例

 

9. 讲解思路

1.l配置数据库连接参数到JDBCdatasource

2.ldatasource,生成SQL工厂

3.l设置映射扫描:aSQL工厂传入进去,b、持久层接口包的扫描。

 

 

10. 小结

这样的数据库连接开发方式,适合小规模的项目开发。里面的各项配置信息是写死到xml文件当中的,不能达到配置信息共享的目的,不适合模块化开发。但是这样的开发方式,适合初学者使用,减少了不少配置文件内容。

三、 测试SQL操作

1. 知识点引入

单元测试,一步一侧,确保每一个层面的正确。这样一来,出现异常时,降低了排查错误的难度和排查数量。

2. 概念

JUnit是一个单元测试的jar包,需要注意的是,在新建的maven项目中,即使在pom.xml中引入了JUnit的坐标,也不会配置到项目中去。需要在build path中收到添加单元测试的配置,和junit相似的是,在新建的maven项目中,也没有tomcat的配置,也需要手动配置到maven项目中去。

3. 示例

其实在和mapper包同级目录中也可以进行单元测试,在上节中推荐在test包中进行单元测试,是一种行业规范。这里在mapper包同级中创建一个test包,进行单元测试

 

 

1.SQL的参数由来:传入的user对象,里面的变量数据,是SQL语句的参数。用#{}在花括号中写入类的变量名,就能在SQL语句中拿到user对象的数据。最后,只需把组合的结果,放在SQL语句的对应位置即可。

2.mybatis对参数对象的数据进行自动解析的同时,mybatis也对SQL的数据库操作结果,进行了对应的封装。这里进行的是insert操作,返回值为受影响的行数,应该是一个int型数据。由于基本数据类型和包装类的自动拆装箱性能,直接使用了包装类integer来接收返回值。如果进行的是select操作,返回的是一系列数据,那么mybatis也能进行再封装,只需把返回值改为对应数据库表的bean类即可,在后面的mybatis学习中,会学习到这一点的。

3.这里可以看到又出现了一个新的注解:@Insert,这个注解是mybatis的,是在说明这个操作是一个SQL操作,对应的是一个insert的动作。对应的应该不难猜到,还有deleteupdateselect操作,后面还会学习到。

持久层接口和SQL语句结合在一起,写在了DAO接口类中。之前也配置好了数据库的连接方式。下面就可以进行测试啦。之前说过了,test包写在maventest包下是行业规范,但是也可以写在自己想写的地方。这里就和dao层同级了,如下:

 

4. 讲解思路

1.之前是把持久层接口和SQLxml相分离,通过mybatis的映射而又相互联系。但是这次,直接通过mybatis的驱动注解,把xml中的SQL语句写在持久成接口的对应方法上。让两个文件,又精简成了一个。

2.单元测试类,推荐按照规范写在src/test/java包下,但是,其实测试是可以写在其他的地方,也能实现单元测试的目的。这里只做了解,单元测试的写法,还是要写在规范的位置。

 

 

5. 小结

1.本节课的数据库连接方式,虽然精简,但是配置不够灵活。

2.数据库连接的步骤:adatasource接收配置信息。b、由datasource生成SQL工厂。c、由SQL工厂和持久成接口,生成MapperScannerConfigurer(映射扫描)。

3.数据库连接配置成功,就可以书写DAO接口和SQL语句了,这里是把接口方法和对应的SQL语句,写在了一起的。

4.在接口的方法上面,用mybatis的注解,写对应的SQL语句。需要传入的参数和操作的结果,会通过mybatis进行解析和封装。

 

百度网盘:

 

链接:https://pan.baidu.com/s/11JnwSj2M3yO8zUXCq9dalg
提取码:cnmx

 

推荐阅读