如何把数组写入mysql数据库

如果直接把数组拼接SQL语句的话,根据你拼接的方式不同,会有两种情况:

1、SQL执行成功,把数组的地址存入了数据库。

2、SQL执行失败,因为数组的内容有引号或者乱码等问题,导致SQL语句无法被编译通过。


解决方案如图:



我这里用的是hibernate的框架,如果看不懂没关系,直接看红色框框就行了,我是用了set入参的方法。相信学过数据库操作的朋友都知道这个方法,要是不知道也没关系,你直接百度“sql语句中的问号占位符”,就有一大堆的解释,我这里就不多说了。



暂时我发现的最简单的就只有这个set方法了。如果有其他方法更好的可以留言探讨一下。

还有,我虽然知道这个方法可以用,能达到想要的效果,但是我还不知道为什么它可以,sql语句的拼接做法却不行。如果知道的朋友可以评论说一下,谢谢!

在Java数据库插入数组,需要将数组元素逐个插入到数据库的不同列,或者将整个数组转换为字符串后插入到数据库表的一个列。以下是两种方法的示例代码: 1. 逐个插入数组元素到不同列: ```java try { // 假设数据库连接已经建立,表名为my_table,包含三个列:id, name, score int[] scores = {80, 90, 85}; PreparedStatement pstmt = conn.prepareStatement("INSERT INTO my_table (id, name, score) VALUES (?, ?, ?)"); for (int i = 0; i < scores.length; i++) { pstmt.setInt(1, i + 1); // id从1开始自增 pstmt.setString(2, "student" + (i+1)); // 假设姓名为student1, student2, student3... pstmt.setInt(3, scores[i]); pstmt.executeUpdate(); // 执行插入操作 } pstmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } ``` 2. 将整个数组转换为字符串后插入到一个列: ```java try { // 假设数据库连接已经建立,表名为my_table,包含两个列:id, scores int[] scores = {80, 90, 85}; String scores_str = Arrays.toString(scores); // 将数组转换为字符串,例如"[80, 90, 85]" PreparedStatement pstmt = conn.prepareStatement("INSERT INTO my_table (id, scores) VALUES (?, ?)"); pstmt.setInt(1, 1); // 假设只插入一行记录 pstmt.setString(2, scores_str); pstmt.executeUpdate(); // 执行插入操作 pstmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } ``` 注意,第二种方法需要在读取数据时再将字符串转换为数组。此外,如果数组包含字符串或其他非基本数据类型,需要使用适当的转换函数将其转换为字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值