前言:最近在做框架项目 , 为了适应不同使用者的需求 , 需要针对主流数据进行支持 。现在主流的数据库主要有:MySQL、Oracle、SQL server、PostgreSql , 每种数据库有自己的特点 , 为了使用MyBatis连接并操作上述四种数据库 , 查阅了很多资料 。在学习过程中发现资料分散 , 所以笔者在此做个总集 , 一次性将四种数据库的连接方法做个教程 , 话不多说 , 开干:
零、公共配置:首先MyBatis的基础配置:entity、mapper、service以及测试用的controller , 由于这一部分基本是通用的 , 所以先提出来讲:
1.创建项目:无论使用哪种数据库 , MyBatis框架和JDBC是必选的 , 然后再根据具体使用哪种数据库选择对应的驱动 。

文章插图
2.搭建基本结构:接下来就是MyBatis常规套路 , 实体、映射、服务接口与实现以及测试API接口 , 放张项目基本机构图:

文章插图
User实体:
import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@NoArgsConstructor@AllArgsConstructorpublic class User {private int id;private String name;private int age;private boolean sex;}IUserMapper:
import com.sql.learn.entity.User;import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapperpublic interface IUserMapper {List<User> getAll();}UserMapper.xml:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.sql.learn.mapper.IUserMapper"><select id="getAll" resultType="User">select * from userTable</select>
<!--select * from "userTable" (oracle表名命名规范 , 如果是小写这里需要将表名加引号 , 不然会自动转为大写)-->
<!--select * from "userTable" (postgresql没有办法 , 必须加引号查询)--></mapper>IUserService:
import com.sql.learn.entity.User;import java.util.List;public interface IUserService {List<User> getAll();}UserServiceImpl:
import com.sql.learn.entity.User;import com.sql.learn.mapper.IUserMapper;import com.sql.learn.service.IUserService;import org.springframework.stereotype.Service;import java.util.List;@Service("userService")public class UserServiceImpl implements IUserService {private final IUserMapper userMapper;public UserServiceImpl(IUserMapper userMapper) {this.userMapper = userMapper;}@Overridepublic List<User> getAll() {return userMapper.getAll();}}TestController:
import com.sql.learn.entity.User;import com.sql.learn.service.IUserService;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestControllerpublic class TestController {final IUserService userService;public TestController(IUserService userService) {this.userService = userService;}@RequestMapping("/test/getall")public List<User> GetAll() {List<User> ret = userService.getAll();return ret;}}这里为了方便演示 , 我使用了多配置文件的写法 , 在主配置文件里面指定具体使用的数据库配置就行了 , application.yml:
spring:profiles:active: xxxmybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.sql.learn.entity好 , 公共部分就搭建完成了 , 现在就是具体每种数据库的操作了 , 有问题的可参见大神文章 --- SpringBoot整合mybatis快速入门 。
一、MySQL:MySQL是一个关系型数据库管理系统 , 由瑞典MySQL AB 公司开发 , 属于 Oracle 旗下产品 。MySQL 是最流行的关系型数据库管理系统之一 , 在 WEB 应用方面 , MySQL是最好的 RDBMS (Relational Database Management System , 关系数据库管理系统) 应用软件之一 。--- 百度百科
MySQL无疑是最受欢迎的数据库了 , 所以这里先介绍:
一开始创建项目时可以进行勾选 , 如果错过了也不要紧 , 手动在pom文件里面添加依赖即可:

文章插图
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>版本自选</version></dependency>然后编写application-mysql.yml配置文件 , 根据自己的情况修改对应字段 , url具体配置见文章 -- springboot数据库连接字符串(url)参数分析:
spring:datasource:#用户名:username: root#密码:password: xxx#连接字符串 , 需要修改的一般只有数据库名 , 我这里是testurl: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai#连接MySQL6以上:driver-class-name: com.mysql.cj.jdbc.Driver#连接MySQL5:#driver-class-name: com.mysql.jdbc.Driver然后再使用MySQLworkbench创建test数据库及userTable表 , 然后添加几条简单的数据:

文章插图

文章插图

文章插图
将主配置文件中的active设置为mysql , 然后就可以运行进行测试了 , 测试结果:

文章插图
二、Oracle:Oracle Database , 又名Oracle RDBMS , 或简称Oracle 。是甲骨文公司的一款关系数据库管理系统 。它是在数据库领域一直处于领先地位的产品 。可以说Oracle数据库系统是世界上流行的关系数据库管理系统 , 系统可移植性好、使用方便、功能强 , 适用于各类大、中、小微机环境 。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案 。--- 百度百科 。
有了上面的经验 , 接下来就是大同小异了 , 不同数据库之间可能有些许差异 , 但大体操作是一致的:
同样也是新建项目时选择对应驱动 , 或者手动添加依赖 , 唯一需要注意的是如果提示字符集错误还要添加 orai18n 依赖:

文章插图
<dependency><groupId>com.oracle.database.jdbc</groupId><artifactId>ojdbc8</artifactId><version>版本自定</version></dependency><dependency><groupId>cn.easyproject</groupId><artifactId>orai18n</artifactId><version>版本自定</version><scope>provided</scope></dependency>然后编写application-oracle.yml文件 , 根据自己的情况修改对应字段:
spring:datasource:username: rootpassword: xxx#url配置注意区别SID和服务名两种方式 , 这里用的是服务名方式url: jdbc:oracle:thin:@//127.0.0.1:1521/ORCLdriver-class-name: oracle.jdbc.OracleDriver然后再使用Navicat创建test数据库及USERTABLE表 , 然后添加几条简单的数据:

文章插图

文章插图
【在springboot中接口回调的另一种说法 在SpringBoot中使用MyBatis连接四种主流数据库】

文章插图
将主配置文件中的active设置为oracle , 然后就可以运行进行测试了 , 测试结果:

文章插图
三、SQL server:美国Microsoft公司推出的一种关系型数据库系统 。SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统 , 实现了与WindowsNT的有机结合 , 提供了基于事务的企业级信息管理系统方案 。--- 百度百科 。
同样也是新建项目时选择对应驱动 , 或者手动添加依赖:

文章插图
<dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><version>版本自选</version></dependency>然后编写application-sqlserver.yml文件 , 根据自己的情况修改对应字段:
spring:datasource:username: sapassword: xxxurl: jdbc:sqlserver://127.0.0.1:1433;databasename=Testdriver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver然后再使用ssms创建test数据库及userTable表 , 然后添加几条简单的数据:

文章插图

文章插图
将主配置文件中的active设置为sqlserver , 然后就可以运行进行测试了 , 测试结果:

文章插图
四、PostgreSql:PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS) , 是以加州大学计算机系开发的POSTGRES , 4.2版本为基础的对象关系型数据库管理系统 。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中 。--- 百度百科 。
同样也是新建项目时选择对应驱动 , 或者手动添加依赖:

文章插图
<dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>版本自定</version></dependency>然后编写application-postgresql.yml文件 , 根据自己的情况修改对应字段:
spring:datasource:username: xxxpassword: yyyurl: jdbc:postgresql://127.0.0.1:5432/testdriver-class-name: org.postgresql.Driver

文章插图

文章插图
将主配置文件中的active设置为postgresql , 然后就可以运行进行测试了 , 注意postgresql的查询语句必须给表加上引号 , 测试结果:

文章插图
大功告成!
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
