如何将实体类中的map集合类型的数据存储到数据库中
时间: 2023-03-21 15:03:54 浏览: 183
将实体类中的map集合类型的数据存储到数据库中,需要先将map集合转换为json格式的字符串,然后将字符串存储到数据库中的对应字段中。具体实现过程可以参考以下代码:
1. 将map集合转换为json格式的字符串
```
import com.alibaba.fastjson.JSONObject;
public class MapToJsonUtil {
public static String map2Json(Map<String, Object> map) {
JSONObject jsonObject = new JSONObject();
for (Map.Entry<String, Object> entry : map.entrySet()) {
jsonObject.put(entry.getKey(), entry.getValue());
}
return jsonObject.toJSONString();
}
}
```
2. 将json格式的字符串存储到数据库中
假设需要将map集合存储到名为"table_name"的表中的字段"map_data"中,可以使用以下代码实现:
```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class MapToDBUtil {
public static void saveMapToDB(Map<String, Object> map) {
String url = "jdbc:mysql://localhost:3306/db_name";
String username = "root";
String password = "root";
Connection conn = null;
PreparedStatement ps = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, username, password);
String sql = "insert into table_name(map_data) values(?)";
ps = conn.prepareStatement(sql);
ps.setString(1, MapToJsonUtil.map2Json(map));
ps.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
以上代码是一个简单的示例,实际应用中需要根据具体情况进行适当修改。
阅读全文