今天讲讲怎么样让后端服务和数据库合二为一,正所谓男女搭配干活不累,有了数据库的翅膀,前端、后台、数据就算一个完整的Demo了。
本节的目标:
spring后台连接上篇文章的数据库金库的存放-CentOS数据库安装
可以通过rest api接口读取、写入数据表demo
先列出知识点,可以随意跳跃着看。
首先来一个灵魂三问:为什么要链接数据库,用什么链接数据库,如何链接数据库。
OK,第一个问题,后台服务往往要处理成千上万的数据,这些数据不可能都存在内存里面,需要有一个地方存储,然后服务用到的时候再去获取,存数据的地方就是数据库。数据库有很多类型,关系数据库,文档数据库等等(有空可以写一个数据库系列)。大家可以参考上一篇文章《安装数据库》,进行数据库的安装。
第二个问题:我们这里使用mybatis和数据库通信。mybatis是一个优秀的持久层框架,后面我们会有文章专门讲这个,这里知道就好了。
第三个问题,我们分成几步来讲:
step1:添加数据库相关依赖包
pom.xml新增mysql和mybatis包,mysql包是底层的mysql api实现,mybatis会依赖它。其余和之前的保持一致,新增如下:
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.0
mysql
mysql-connector-java
runtime
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表了。
第一步只是添加了依赖,但是使用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(可以放到任何目录下)配置数据库相关信息:也就是插件要知道去哪里操作数据库,操作什么表,我的配置如下:
step3:
首先右键pom.xml–>reimport
然后点击Maven/Plugins/mybatis-generator下面generator,等待代码自动生成,如下:
Demo:对数据表demo对抽象
DemoExample:对操作数据表demo的条件、查询等封装
DemoMapper:Dao层,对操作demo的封装
有了Dao层,Mapper,我们如何使用:查询和插入
step1:建立控制类DemoWebController
step2:添加代码:
@RestController
public class DemoWebController {
@Autowired
private DemoMapper d_mapper;
//操作查询数据库,通过DemoExample构建查询条件
// 这里是select * from demo;
@GetMapping("/getDemo")
public List 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);
}
}
代码里面有些注解看不懂没关系,后面会讲。
来源:微信公众号
作者:DrunkCoder
原文:手把手教你使用Mybatis连接数据库