怎么把Java里的数组insert到数据库里呢??

importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.IOException;impor... import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class ShuangSeQiuToDatabase {
public static void main(String [] args) throws IOException{
String url="jdbc:mysql://localhost:3306/mydatabase";
String user="root";
String pwd = "12345";
//加载数据库
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.exit(0);
}
Connection con;
Statement st = null;
//连接数据库
try {
con = DriverManager.getConnection(url, user,pwd );
st = con.createStatement();
} catch (SQLException e) {
e.printStackTrace();
System.exit(0);
}
//打开数据文件

FileReader f = new FileReader("d:\\data.csv");
BufferedReader bfr = new BufferedReader(f);
String line;
while((line = bfr.readLine())!=null){
//每行有8个数据,用逗号隔开的,这里把它们分开暂时存在tem里面
String[] tem = line.split(",");
String sql = "insert into shuangseqiu (tem[0],tem[1],tem[2],tem[3],tem[4],tem[5],tem[6],tem[7],)";
try {
st.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

数据库连接成功。
我想问的问题就是这一块:
String sql = "insert into shuangseqiu (tem[0],tem[1],tem[2],tem[3],tem[4],tem[5],tem[6],tem[7],)";
try {
st.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}

把tem[i]放到“”里边作为字符串就不是它的值了,而直接是tem[i]作为字符串插入进去,所以出错,怎么把tem[i]的值显现出来呢?
展开
 我来答
小童鞋_成er
推荐于2018-03-23 · 知道合伙人数码行家
小童鞋_成er
知道合伙人数码行家
采纳数:4650 获赞数:22879
主要从事J2EE工作,热爱Java,用心讨论技术,共同进步。

向TA提问 私信TA
展开全部
String sql = "insert into shuangseqiu ("+tem[0]+","+tem[1]","+tem[2]","+tem[3]","+tem[4]","+tem[5]","+tem[6]","+tem[7]",)";
或者
    StringBuffer sb = new StringBuffer();
    sb.append("insert into shuangseqiu (");
for(int i = 0; i < tem.length; i++){
if(tem.length -1 == i){
    sb.append(tem[i]+")");
}else{
    sb.append(tem[i]+",");
        }
}
zh857872
2013-10-23 · TA获得超过1415个赞
知道小有建树答主
回答量:426
采纳率:100%
帮助的人:298万
展开全部
楼主,用+号把它们的值拼接起来,如下:
String sql = "insert into shuangseqiu values("+tem[0]+","+tem[1]+","+tem[2]+","+tem[3]+","+tem[4]+","+tem[5]+","+tem[6]+","+tem[7]+","+")";

对楼主的建议:
1、字符串的拼接最好使用stringbuffer或者stringbuild,这两者是内容可变的,效率相对高些。
2、上面的语句最好把字段名写上,如:insert into shuangseqiu(字段1,字段2...) values()。

有问题欢迎提问,满意请采纳!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-23
展开全部
tem[i]
是String ?

那就是那样的呀
String sql = "insert into shuangseqiu ('"+tem[0]+"', '"+tem[1]+"','"+tem[2]+"','"+tem[3]+"','"+tem[4]+"','"+tem[5]+"','"+tem[6]+"','"+tem[7]+"')";

或者,使用PreparedStatement , 然后用参数

PreparedStatement pst = con.prepareStatement("insert into shuangseqiu(?, ?, ?, ?, ?, ?, ?)");

for(int i=0; i<tem.length; i++)

pst.setString(i+1, tem[i]);
pst.executeUpdate();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式