java程序 怎么把一个字符串数组存入数据库?数据库的表要怎么创建

大神有没有人讲详细点的,我想问下,java程序 怎么把一个字符串数组存入数据库?数据库的表要怎么创建
最新回答
゛﹏花凋为谁祭

2024-05-23 12:47:07

一楼大哥,你运行过你的代码吗?貌似有个严重的错误啊,应该不会有数据“插入”成功的!!!!
【你的代码这里】
for(i=0;i<a.length;i++)
int rs=stmt.executeUpdate(sql);

这是不对的......................
如果有循环的话,应该这么写:
【代码】
for(int i=0;i<a.length;i++){
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
}
这样数据才能插入成功!
离山道寺

2024-05-23 13:24:42

public class ddd {
public static void main(String args[]){
String driverClass="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/find";//find数据库名
String user="root";//
String password="root";//MYSQL
Connection conn;
try {
Class.forName(driverClass).newInstance(); conn=DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
int i=0;
String a[]={"sad","dsds","dsfss"};
String sql="insert into XX values (null,'"+a[i]+"')";
for(i=0;i<a.length;i++)
int rs=stmt.executeUpdate(sql);
}catch(Exception ex){
ex.printStackTrace();
}
}
建个表,两列,ID 和word;ID设置自增;
有问题再找我。
追问
我是在用access做,不是用mysql呢。还有我用不用打开mysql或者access在表上操作?
追答
access还是一样的啊,只是连接数据库修改一下,其他操作都差不多的。
你需要在数据库那边见表就好了。
追问
就是想问这个表怎么建呢,在一个格子插入的元素是一个字符串数组。另外你的那个代码里下部的for循环里的句子是什么意思呀?我的sql语句里还包含前面的很多表项元素,如果循环使用execute不会出问题吗?谢谢了
追答
这个表建两列,一列装编号,一列装数组中的字符串;
因为一个数组是从a[0]到a[i]的,for循环从a[0]开始往数据库插数据。
因为我没用过access数据库,但是sql命令都是通用的。
应该没问题,你去试试
追问
那这个表和原来的表怎么建立联系呢?如果循环中的sql语句我在之前的代码中还添加了其他的项怎么办?我不只是单单只要这一个表项呀
追答
最初始的表,你要建多少列,就建多少列啊。
比如ID,name,num,Age,word等等多列,
你插入那条sql语句就需要变动;
由于word对应的数组字符串,在第五列:
String sql="insert into XX values (null,name,num,age,'"+a[i]+"')";
如果name,num,Age是常量,你就直接填在sql语句中,
如果不是常量:1,是数组或者字符串数组,这个稍微复杂点,这个需要条件判断插入
2,普通变量,也需要判断输入;
追问
是这样的,插入信息的时候,把从上一层得到的对象值插入当前表的一行中(id,name与那个字符串数组(如de[])和另一个数组(co[]),所以前面那些都是普通变量,后头是两个字符串数组的表项。其实我就是觉得你的那个循环里的sql语句已经包含了太多前面的表项的信息了,这样子循环不会出问题?如果我建两个sql语句分别用于前面的表项和这个字符串数组呢?这样子我怎样确定这个字符串数组是插在了当前的一行而不是下一行呢?
追答
前面的表项是否是一样的?一样就可以用for;如果不一样的话,可以用for,再加判断语句,

再update或者insert;
最好把你需要做的功能具体列出来,我看看怎么做。
你这样说的 ,我有些地方还理解不清楚。