手把手教你使用Mybatis连接数据库

今天讲讲怎么样让后端服务和数据库合二为一,正所谓男女搭配干活不累,有了数据库的翅膀,前端、后台、数据就算一个完整的Demo了。

本节的目标:

spring后台连接上篇文章的数据库金库的存放-CentOS数据库安装
可以通过rest api接口读取、写入数据表demo
先列出知识点,可以随意跳跃着看。

1. 缘分一道桥:后端如何链接数据库

2. 神器在我手:如何快速生成Dao层

3. 3. 万事俱备矣:控制层与Dao的合体

4. 4. 指尖上舞蹈:运行测试

5. 1. 缘分一道桥:后端如何链接数据**库

首先来一个灵魂三问:为什么要链接数据库,用什么链接数据库,如何链接数据库。

OK,第一个问题,后台服务往往要处理成千上万的数据,这些数据不可能都存在内存里面,需要有一个地方存储,然后服务用到的时候再去获取,存数据的地方就是数据库。数据库有很多类型,关系数据库,文档数据库等等(有空可以写一个数据库系列)。大家可以参考上一篇文章《安装数据库》,进行数据库的安装。

第二个问题:我们这里使用mybatis和数据库通信。mybatis是一个优秀的持久层框架,后面我们会有文章专门讲这个,这里知道就好了。

第三个问题,我们分成几步来讲:

step1:添加数据库相关依赖包

pom.xml新增mysql和mybatis包,mysql包是底层的mysql api实现,mybatis会依赖它。其余和之前的保持一致,新增如下:

<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

step2:添加数据库相关配置项

在resources/application.properties配置数据库地址、密码、驱动器,mybatis对应的工程配置等,直接甩出我的配置如下:

spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name
spring.datasource.username=xxx
spring.datasource.password=xx123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.project = src/main/java
mybatis.resources=src/main/resources
基本看名字就知道什么意思了,不解释,有疑问可以留言。

step3:编译测试

先点击Maven/Lifecycle/install安装新的依赖,如果没有出错,则成功了。

然后右键点击工程里面的xxApplication–>Run,如果没有问题,我们就运行成功。

有了上述的几步,后续我们的代码就可以连接到数据库里面的demo表了。

  1. 神器在我手:如何快速生成Dao层

第一步只是添加了依赖,但是使用mybatis还需要写Mapper,Entity等数据,还有xm等配置,非常麻烦,一想想就头大,幸好mybatis考虑到一点,可以通过插件:mybatis-generator一键生成上述所有代码。如下:

在pom.xml添加插件依赖包:

org.mybatis.generator mybatis-generator-maven-plugin 1.3.7 mybatis-generator deploy generate #插件配置信息 mybatis-generator/generatorConfig.xml true true mysql mysql-connector-java 5.1.46 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">
<generatorConfiguration>
 <context id="mysqlgenerator" targetRuntime="MyBatis3">
 <property name="autoDelimitKeywords" value="true"/>
 <!--可以使用``包括字段名,避免字段名与sql保留字冲突报错-->
 <property name="beginningDelimiter" value="`"/>
 <property name="endingDelimiter" value="`"/>
 <!-- 自动生成toString方法 -->
 <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
 <!-- 自动生成equals方法和hashcode方法 -->
 <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"/>
 <commentGenerator>
 <property name="suppressDate" value="true"/>
 </commentGenerator>
 <!--数据库连接信息-->
 <jdbcConnection driverClass="com.mysql.jdbc.Driver"
 connectionURL="jdbc:mysql://127.0.0.1:3306/coder"
 userId="xxcoder"
 password="xx123"/>
 <javaTypeResolver>
 <property name="useJSR310Types" value="true"/>
 </javaTypeResolver>
 <!--生成模型的包名和位置-->
 <javaModelGenerator targetPackage="com.example3.demo.domain" targetProject="src/main/java"/>
 <!-- 生成映射文件的包名和位置-->
 <sqlMapGenerator targetPackage="com.example3.demo.dao" targetProject="src/main/resources"/>
 <!-- 生成DAO的包名和位置-->
 <javaClientGenerator type="XMLMAPPER" 
 targetPackage="com.example3.demo.dao"
 targetProject="src/main/java"/>
 <!--表名-->
 <table tableName="demo">
 </table>
 </context>
</generatorConfiguration>

step3:

首先右键pom.xml–>reimport

然后点击Maven/Plugins/mybatis-generator下面generator,等待代码自动生成,如下:

Demo:对数据表demo对抽象

DemoExample:对操作数据表demo的条件、查询等封装

DemoMapper:Dao层,对操作demo的封装

  1. 万事俱备矣:控制层与Dao的合体

有了Dao层,Mapper,我们如何使用:查询和插入

step1:建立控制类DemoWebController

step2:添加代码:

@RestController
public class DemoWebController {
@Autowired
private DemoMapper d_mapper;
//操作查询数据库,通过DemoExample构建查询条件
// 这里是select * from demo;
@GetMapping("/getDemo")
public List<Demo> getDemoData(){
 DemoExample ex = new DemoExample();
return d_mapper.selectByExample(ex);
 }
//操作写入数据库,并且返回写入成功or失败的操作码
@GetMapping("/insertDemo")
public int insertData(){
 Demo demo_data = new Demo();
 demo_data.setId(33);
 demo_data.setData("insert data");
 return d_mapper.insert(demo_data);
 }
}

代码里面有些注解看不懂没关系,后面会讲。

免费分享Java技术资料,需要的朋友可以在后台私信我
在这里插入图片描述

来源:微信公众号

作者:DrunkCoder

原文:手把手教你使用Mybatis连接数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值