🎉 add mybatis module
This commit is contained in:
parent
12dbd6b82f
commit
933d90ce20
|
@ -27,6 +27,7 @@
|
||||||
<guava.version>31.1-jre</guava.version>
|
<guava.version>31.1-jre</guava.version>
|
||||||
<commons-collections4.version>4.4</commons-collections4.version>
|
<commons-collections4.version>4.4</commons-collections4.version>
|
||||||
<javers-core.version>6.6.5</javers-core.version>
|
<javers-core.version>6.6.5</javers-core.version>
|
||||||
|
<mybatis-plus-boot-starter.version>3.5.5</mybatis-plus-boot-starter.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,6 +77,12 @@
|
||||||
<version>${javers-core.version}</version>
|
<version>${javers-core.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||||
|
<version>${mybatis-plus-boot-starter.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
@ -17,4 +17,17 @@
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter-api</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.nebula.mybatis.entity;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : wh
|
||||||
|
* @date : 2024/3/11 13:06
|
||||||
|
* @description:
|
||||||
|
*/
|
||||||
|
public class BaseDO {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime addTime;
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
}
|
|
@ -0,0 +1,83 @@
|
||||||
|
package com.nebula.mybatis.handler;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.Array;
|
||||||
|
import java.sql.CallableStatement;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import org.apache.ibatis.type.BaseTypeHandler;
|
||||||
|
import org.apache.ibatis.type.JdbcType;
|
||||||
|
import org.apache.ibatis.type.MappedJdbcTypes;
|
||||||
|
import org.apache.ibatis.type.MappedTypes;
|
||||||
|
import org.apache.ibatis.type.TypeException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : wh
|
||||||
|
* @date : 2024/3/11 12:59
|
||||||
|
* @description:
|
||||||
|
*/
|
||||||
|
@MappedJdbcTypes(JdbcType.ARRAY)
|
||||||
|
@MappedTypes({Integer[].class, String[].class, Boolean[].class, Double[].class, Long[].class, BigDecimal[].class})
|
||||||
|
public class ArrayTypeHandler extends BaseTypeHandler<Object[]> {
|
||||||
|
private static final String TYPE_NAME_VARCHAR = "varchar";
|
||||||
|
private static final String TYPE_NAME_INTEGER = "integer";
|
||||||
|
private static final String TYPE_NAME_BOOLEAN = "boolean";
|
||||||
|
private static final String TYPE_NAME_NUMERIC = "numeric";
|
||||||
|
private static final String TYPE_NAME_BIGINT = "bigint";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setNonNullParameter(
|
||||||
|
PreparedStatement ps, int i, Object[] parameter, JdbcType jdbcType) throws SQLException {
|
||||||
|
String typeName = null;
|
||||||
|
if (parameter instanceof Integer[]) {
|
||||||
|
typeName = TYPE_NAME_INTEGER;
|
||||||
|
} else if (parameter instanceof String[]) {
|
||||||
|
typeName = TYPE_NAME_VARCHAR;
|
||||||
|
} else if (parameter instanceof Boolean[]) {
|
||||||
|
typeName = TYPE_NAME_BOOLEAN;
|
||||||
|
} else if (parameter instanceof Double[]) {
|
||||||
|
typeName = TYPE_NAME_NUMERIC;
|
||||||
|
} else if (parameter instanceof Long[]) {
|
||||||
|
typeName = TYPE_NAME_BIGINT;
|
||||||
|
} else if (parameter instanceof BigDecimal[]) {
|
||||||
|
typeName = TYPE_NAME_NUMERIC;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeName == null) {
|
||||||
|
throw new TypeException("ArrayTypeHandler parameter typeName error, your type is " + parameter.getClass().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
Connection conn = ps.getConnection();
|
||||||
|
Array array = conn.createArrayOf(typeName, parameter);
|
||||||
|
ps.setArray(i, array);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object[] getNullableResult(ResultSet resultSet, String s) throws SQLException {
|
||||||
|
return getArray(resultSet.getArray(s));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object[] getNullableResult(ResultSet resultSet, int i) throws SQLException {
|
||||||
|
return getArray(resultSet.getArray(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object[] getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
|
||||||
|
return getArray(callableStatement.getArray(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
private Object[] getArray(Array array) {
|
||||||
|
if (array == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return (Object[]) array.getArray();
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue