JAVA用for循环向数据库加信息,下面哪里错了呢?

publicstaticvoidmain(String[]args)throwsException{java.sql.Connectionconn=null;//创建数据... public static void main(String[] args) throws Exception{
java.sql.Connection conn = null;//创建数据库连接
java.sql.PreparedStatement stmt = null;//创建数据库操作
for(int i=0;i<15;i++)
{
int a=1;
String name = "小杨"+a;
String sex = "女";
int date = 18;

String sql= "INSERT INTO user (name,sex,date)"+"values(?,?,?)";
Class.forName(DBDRIVER);//加载数据库驱动
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
stmt = conn.prepareStatement(sql);
stmt.setString(1,name);
stmt.setString(2,sex);
stmt.setInt(3,date);
a++;

System.out.println("yes");
}

stmt.execute();//执行数据库更新操作
stmt.close();//关闭数据库操作
conn.close();//关闭数据库连接
}
展开
 我来答
fuhaiwei
2013-02-28 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1382万
展开全部
// 试试这个吧,你的conn打开了多次,创建了多个stmt,但是只提交了一次,关闭一次,逻辑上有些问题。

public static void main(String[] args) throws Exception {
Class.forName(DBDRIVER);
java.sql.Connection conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
for (int i = 0; i < 15; i++) {
String sql = "INSERT INTO user(name,sex,date) values(?,?,?)";
java.sql.PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, "小杨" + (i + 1));
stmt.setString(2, "女");
stmt.setInt(3, 18);
stmt.executeUpdate();
stmt.close();
}
conn.close();
}
帐号已注销
2013-02-28 · TA获得超过1243个赞
知道小有建树答主
回答量:2126
采纳率:55%
帮助的人:671万
展开全部
execute在循环外面。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
654110905
2013-02-28 · TA获得超过175个赞
知道小有建树答主
回答量:114
采纳率:0%
帮助的人:124万
展开全部
stmt.execute()写到循环体里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
轩辕酷酷狼
2013-02-28 · TA获得超过2420个赞
知道小有建树答主
回答量:869
采纳率:100%
帮助的人:570万
展开全部
Class.forName(DBDRIVER);//加载数据库驱动

这个放到外面去,加载一次就OK,最好放到static块里。
其他的忘记了,好久没搞web了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IT奋斗者
2013-02-28 · 超过10用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:23.1万
展开全部
public static void main(String[] args) throws Exception{
java.sql.Connection conn = null;//创建数据库连接
java.sql.PreparedStatement stmt = null;//创建数据库操作
for(int i=0;i<15;i++)
{
int a=1;
String name = "小杨"+a;
String sex = "女";
int date = 18;
String sql= "INSERT INTO user (name,sex,date)"+"values(?,?,?)";
Class.forName(DBDRIVER);//加载数据库驱动
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
stmt = conn.prepareStatement(sql);
stmt.setString(1,name);
stmt.setString(2,sex);
stmt.setInt(3,date);
a++;
System.out.println("yes");
stmt.execute();//执行数据库更新操作

}

stmt.close();//关闭数据库操作
conn.close();//关闭数据库连接

你之前的写法都是在for循环外了,也就是只能把最后一次循环的数据插入到数据库。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式