1. Maven库配置
在Maven 项目的 pom.xml 文件中添加gbasedbt依赖:
jdbc驱动已经提交到mvn中央仓库,包含351和220两个版本
<dependency> <groupId>com.gbasedbt</groupId> <artifactId>jdbc</artifactId> <version>3.5.1</version> </dependency> |
2. mybatis配置
2.1 mybatis-config.xml 配置参数
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源) databaseIdProvider(数据库厂商标识) mappers(映射器) --> <configuration> <!-- 数据库相关属性文件,这里不写的话,会自动加载 config.properties --> <properties resource="db.properties"></properties>
<!-- 配置别名 --> <typeAliases> <typeAlias type="com.gbasedbt.mybatis.Student" alias="Student"/> </typeAliases>
<!-- 配置以支持lvarchar --> <typeHandlers> <typeHandler handler="org.apache.ibatis.type.StringTypeHandler" jdbcType="LONGVARCHAR" javaType="String" /> </typeHandlers>
<!-- 环境配置 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <!-- 数据库连接相关配置 ,这里动态获取config.properties文件中的内容--> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments>
<!-- 0.映射文件 ,我们还没有,这里什么都不写--> <!-- 1.映射文件 --> <mappers> <mapper resource="com/gbasedbt/mybatis/StudentMapper.xml"/> </mappers>
</configuration> |
2.2 db.properties 配置数据库连接参数
driver=com.gbasedbt.jdbc.Driver url=jdbc:gbasedbt-sqli://192.168.1.71:9088/mybatis:GBASEDBTSERVER=gbase01;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;IFX_LOCK_MODE_WAIT=10 username=gbasedbt password=GBase123 ========================================== 参数说明: IP:PORT/数据库名 GBASEDBTSERVER 实例名 DB_LOCALE 数据库字符集 CLIENT_LOCALE 客户端字符集 IFX_LOCK_MODE_WAIT 锁等待时间 |
3. mybatis-plus配置
在mybatis-plus 3.4.3.2版本之后已经增加了对GBase 8s的支持(使用GBASEDBT类型),在3.5.2版本中变更类型为GBASE8S。如果使用的是其它版本,按照以下进行修改。
3.1 mybatis-plus-annotation模块
在 com.baomidou.mybatisplus.annotation.DbType.java 类中增加
GBASEDBT("gbasedbt", "南大通用安全数据库(GBase 8s)"), |
注册GBase 8s的数据库类型,名称为GBASEDBT
3.2 mybatis-plus-extension模块
1. 增加com.baomidou.mybatisplus.extension.plugins.pagination.dialects.GBasedbtDialect.java类
package com.baomidou.mybatisplus.extension.plugins.pagination.dialects;
import com.baomidou.mybatisplus.extension.plugins.pagination.DialectModel;
public class GBasedbtDialect implements IDialect {
@Override public DialectModel buildPaginationSql(String originalSql, long offset, long limit) { StringBuilder sql = new StringBuilder(originalSql) .insert(6, " SKIP " + offset + " FIRST " + limit); return new DialectModel(sql.toString()); } } |
- 在com.baomidou.mybatisplus.extension.plugins.pagination.DialectFactory.java类中增加
} else if (dbType == DbType.GBASEDBT) { dialect = new GBasedbtDialect(); |
数据库类型GBASEDBT使用的方言类型
- 在com.baomidou.mybatisplus.extension.toolkit.JdbcUtils.java类中的getDbType(String jdbcUrl)中增加
} else if (url.contains(":gbasedbt-sqli:") ) { return DbType.GBASEDBT; |
JDBC类型注册
- 增加com.baomidou.mybatisplus.extension.incrementer.GBasedbtKeyGenerator.java,用于自增长类型。
package com.baomidou.mybatisplus.extension.incrementer;
import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
public class GBasedbtKeyGenerator implements IKeyGenerator {
@Override public String executeSql(String incrementerName) { return "SELECT " + incrementerName + ".NEXTVAL FROM DUAL"; }
@Override public DbType dbType() { return DbType.GBASEDBT; } } |




