🎉 add mybatis module
This commit is contained in:
parent
12dbd6b82f
commit
933d90ce20
|
@ -27,6 +27,7 @@
|
|||
<guava.version>31.1-jre</guava.version>
|
||||
<commons-collections4.version>4.4</commons-collections4.version>
|
||||
<javers-core.version>6.6.5</javers-core.version>
|
||||
<mybatis-plus-boot-starter.version>3.5.5</mybatis-plus-boot-starter.version>
|
||||
</properties>
|
||||
|
||||
|
||||
|
@ -76,6 +77,12 @@
|
|||
<version>${javers-core.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>${mybatis-plus-boot-starter.version}</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
|
|
@ -17,4 +17,17 @@
|
|||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</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>
|
|
@ -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