diff --git a/pom.xml b/pom.xml
index 7d5bce9..81cc07a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,18 +50,23 @@
test
+
+ org.apache.commons
+ commons-lang3
+ 3.12.0
+
+
+
com.aliyun.oss
aliyun-sdk-oss
3.17.4
-
com.aliyun
green20220302
3.0.1
-
com.alibaba
fastjson
diff --git a/src/main/java/com/bao/dating/handler/ListToVarcharTypeHandler.java b/src/main/java/com/bao/dating/handler/ListToVarcharTypeHandler.java
new file mode 100644
index 0000000..ca30e97
--- /dev/null
+++ b/src/main/java/com/bao/dating/handler/ListToVarcharTypeHandler.java
@@ -0,0 +1,66 @@
+package com.bao.dating.handler;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+import org.apache.ibatis.type.TypeHandler;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * List类型转换成Varchar类型
+ * @author KilLze
+ */
+@MappedJdbcTypes(JdbcType.VARCHAR)
+@MappedTypes(List.class)
+public class ListToVarcharTypeHandler implements TypeHandler> {
+ @Override
+ public void setParameter(PreparedStatement preparedStatement, int i, List strings, JdbcType jdbcType) throws SQLException {
+ // 遍历List类型的入参,拼装为String类型,使用Statement对象插入数据库
+ StringBuffer sb = new StringBuffer();
+ for (int j = 0; j < strings.size(); j++) {
+ if (j == strings.size() - 1) {
+ sb.append(strings.get(j));
+ } else {
+ sb.append(strings.get(j)).append(",");
+ }
+ }
+ preparedStatement.setString(i, sb.toString());
+ }
+
+ @Override
+ public List getResult(ResultSet resultSet, String s) throws SQLException {
+ // 获取String类型的结果,使用","分割为List后返回
+ String resultString = resultSet.getString(s);
+ if (StringUtils.isNotEmpty(resultString)) {
+ return Arrays.asList(resultString.split(","));
+ }
+ return null;
+ }
+
+ @Override
+ public List getResult(ResultSet resultSet, int i) throws SQLException {
+ // 获取String类型的结果,使用","分割为List后返回
+ String resultString = resultSet.getString(i);
+ if (StringUtils.isNotEmpty(resultString)) {
+ return Arrays.asList(resultString.split(","));
+ }
+ return null;
+ }
+
+ @Override
+ public List getResult(CallableStatement callableStatement, int i) throws SQLException {
+ // 获取String类型的结果,使用","分割为List后返回
+ String resultString = callableStatement.getString(i);
+ if (StringUtils.isNotEmpty(resultString)) {
+ return Arrays.asList(resultString.split(","));
+ }
+ return null;
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 9064b7c..6e3ef9f 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -5,7 +5,7 @@ spring:
datasource:
url: jdbc:mysql://114.55.250.24:3306/dating?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: root
- password: root
+ password: rJ6DBTYrFCpjdsxy2sBV
driver-class-name: com.mysql.cj.jdbc.Driver
# MyBatis 配置
diff --git a/src/main/resources/com/bao/dating/mapper/PostMapper.xml b/src/main/resources/com/bao/dating/mapper/PostMapper.xml
index 138c06e..ceb64f9 100644
--- a/src/main/resources/com/bao/dating/mapper/PostMapper.xml
+++ b/src/main/resources/com/bao/dating/mapper/PostMapper.xml
@@ -1,8 +1,8 @@
-
+
INSERT INTO post
@@ -16,7 +16,10 @@
is_public, like_count, favorite_count, created_at, updated_at)
VALUES
- (#{userId}, #{content}, #{mediaOssKeys}, #{tags}, #{location}, #{isPublic}, 0, 0, #{created_at}, #{updated_at})
+ (#{userId}, #{content},
+ #{mediaOssKeys, typeHandler=com.bao.dating.handler.ListToVarcharTypeHandler},
+ #{tags, typeHandler=com.bao.dating.handler.ListToVarcharTypeHandler},
+ #{location}, #{isPublic}, 0, 0, #{createdAt}, #{updatedAt})
\ No newline at end of file