手把手教你使用Mybatis连接数据库
今天讲讲怎么样让后端服务和数据库合二为一,正所谓男女搭配干活不累,有了数据库的翅膀,前端、后台、数据就算一个完整的Demo了。
本节的目标:
spring后台连接上篇文章的数据库金库的存放-CentOS数据库安装
可以通过rest api接口读取、写入数据表demo
先列出知识点,可以随意跳跃着看。
1. 缘分一道桥:后端如何链接数据库
2. 神器在我手:如何快速生成Dao层
3. 万事俱备矣:控制层与Dao的合体
4. 指尖上舞蹈:运行测试
1. 缘分一道桥:后端如何链接数据库
首先来一个灵魂三问:为什么要链接数据库,用什么链接数据库,如何链接数据库。
OK,第一个问题,后台服务往往要处理成千上万的数据,这些数据不可能都存在内存里面,需要有一个地方存储,然后服务用到的时候再去获取,存数据的地方就是数据库。数据库有很多类型,关系数据库,文档数据库等等(有空可以写一个数据库系列)。大家可以参考上一篇文章《安装数据库》,进行数据库的安装。
第二个问题:我们这里使用mybatis和数据库通信。mybatis是一个优秀的持久层框架,后面我们会有文章专门讲这个,这里知道就好了。
第三个问题,我们分成几步来讲:
step1:添加数据库相关依赖包
pom.xml新增mysql和mybatis包,mysql包是底层的mysql api实现,mybatis会依赖它。其余和之前的保持一致,新增如下:
org.mybatis.spring.bootmybatis-spring-boot-starter2.1.0mysqlmysql-connector-javaruntime
step2:添加数据库相关配置项
在resources/application.properties配置数据库地址、密码、驱动器,mybatis对应的工程配置等,直接甩出我的配置如下:
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_namespring.datasource.username=xxxspring.datasource.password=xx123spring.datasource.driver-class-name=com.mysql.jdbc.Drivermybatis.project= src/main/javamybatis.resources=src/main/resources
基本看名字就知道什么意思了,不解释,有疑问可以留言。
step3:编译测试
先点击Maven/Lifecycle/install安装新的依赖,如果没有出错,则成功了。
然后右键点击工程里面的xxApplication-->Run,如果没有问题,我们就运行成功。
有了上述的几步,后续我们的代码就可以连接到数据库里面的demo表了。
2. 神器在我手:如何快速生成Dao层
第一步只是添加了依赖,但是使用mybatis还需要写Mapper,Entity等数据,还有xm等配置,非常麻烦,一想想就头大,幸好mybatis考虑到一点,可以通过插件:mybatis-generator一键生成上述所有代码。如下:
在pom.xml添加插件依赖包:
<plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.7</version><executions><execution><id>mybatis-generator</id><phase>deploy</phase><goals><goal>generate</goal></goals></execution></executions><configuration>#插件配置信息<configurationFile>mybatis-generator/generatorConfig.xml</configurationFile><verbose>true</verbose><overwrite>true</overwrite></configuration><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency></dependencies></plugin>
step2: 使用配置generatorConfig.xml(可以放到任何目录下)配置数据库相关信息:也就是插件要知道去哪里操作数据库,操作什么表,我的配置如下:
<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><!--可以使用``包括字段名,避免字段名与sql保留字冲突报错--><!-- 自动生成toString方法 --><!-- 自动生成equals方法和hashcode方法 --><!--数据库连接信息--><!--生成模型的包名和位置--><!-- 生成映射文件的包名和位置--><!-- 生成DAO的包名和位置--><!--表名-->
step3:
首先右键pom.xml-->reimport
然后点击Maven/Plugins/mybatis-generator下面generator,等待代码自动生成,如下:
Demo:对数据表demo对抽象
DemoExample:对操作数据表demo的条件、查询等封装
DemoMapper:Dao层,对操作demo的封装
3. 万事俱备矣:控制层与Dao的合体
有了Dao层,Mapper,我们如何使用:查询和插入
step1:建立控制类DemoWebController
step2:添加代码:
@RestControllerpublicclassDemoWebController{@AutowiredprivateDemoMapper d_mapper;//操作查询数据库,通过DemoExample构建查询条件// 这里是select * from demo;@GetMapping("/getDemo")publicList getDemoData(){ DemoExample ex =newDemoExample();returnd_mapper.selectByExample(ex); }//操作写入数据库,并且返回写入成功or失败的操作码@GetMapping("/insertDemo")publicintinsertData(){ Demo demo_data =newDemo(); demo_data.setId(33); demo_data.setData("insert data");returnd_mapper.insert(demo_data); }}
代码里面有些注解看不懂没关系,后面会讲。
免费分享Java技术资料,需要的朋友可以在后台私信我
来源:微信公众号
作者:DrunkCoder
原文:手把手教你使用Mybatis连接数据库