springcloud适配mysql和oracle数据库
mysql和oracle数据库部分语法不相同,为了适配两种数据库(修改配置文件方式),可以先操作sql,然后通过代码级别再实现。比如oracle限制返回的条数:rownum<=1 但是mysql的语法是:limit 1,你可以通过返回所有数据,然后再get(0)去除第一条数据,
今天的重点:springcloud+tk.mybatis+oracle/mysql
1.先上依赖:
父工程部分依赖:
复制代码
org.springframework.boot
spring-boot-starter-parent
2.2.2.RELEASE
复制代码
<?xml version="1.0" encoding="UTF-8"?>
com.xxx
xxxxxxxx
0.0.1-SNAPSHOT
4.0.0
xxxxx-xxxx
xxxx-xxxxx
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${springboot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${springboot.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 数据库配置 start-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<!-- <groupId>com.baomidou</groupId>-->
<!-- <artifactId>mybatis-plus</artifactId>-->
<!-- <version>2.3</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-autoconfigure</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.zhdgps.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.9</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
<!-- 数据库配置 end -->
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
<!-- 注册中心 start-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- 注册中心 end-->
<!-- swagger start -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- swagger end -->
<!-- jwt -->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.10.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>${springboot.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.9.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.2.9.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${springboot.version}</version>
<configuration><!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.zhd.eoms.EomsApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
复制代码 根据上面的依赖选择,不要都贴上,
然后使用mybatis-generator自动生成entity、mapper和xml映射文件,
略
然后就是今天的重点:怎样配置数据库id的类型
第一种:自增ID,可以这样配置:
@Id
@Column(insertable = false, name = "ID")
@GeneratedValue( generator = "JDBC")
private Integer id;
这样oracle和mysql都适用;
自增适合哪种经常查询信息,因为id是天然有序,效率高一些,
如果是UUID:
@Id
@Column(name = "ID")
@KeySql(genId = UUIDGenId.class)
复制代码
public class UUIDGenId implements GenId{
@Override
public String genId(String s, String s1) {
return UUID.randomUUID().toString().replace(“-”,“”);
}
}
复制代码
UUIDGenId 类
复制代码
public class UUIDGenId implements GenId{//
@Override
public String genId(String s, String s1) {
return UUID.randomUUID().toString().replace(“-”,“”);
}
}
相关文章
- mysql优化count(*)查询语句
- MySQL 常用基础命令
- 【Mysql 学习】MERGE存储引擎(一)
- 【MySQL】常见的mysql 进程state
- Linux - mysql 异常: ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
- MYSQL查询今天、昨天、7天、近30天、本月、上一月 数据
- MySQL选择数据库use与mysql_select_db使用详解
- mysql describe
- Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- Mysql:Error Code 1235,This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
- mysql事务
- [AWS] Create MySQL database in RDS and connect from local / EC2
- Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
- paip.mysql 全文索引查询空白解决
- 【项目实战】MySQL获取距今最近12个月的汇总统计数据
- mysql cascade|restrict|no action|set null__mysql 外键的几种约束
- 洞悉MySQL底层架构:游走在缓冲与磁盘之间
- mysql 查看 脏页_MySQL:刷脏页
- MySQL缺失mysql_config文件
- Mysql 语句 insert into 与 replace into 区别
- Linux 使用docker搭建MySQL服务的一些细节问题
- Mysql之安全清理mysql-slow.log
- 云原生之在kubernetes集群下部署Mysql应用