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();//关闭数据库连接
} 展开
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();//关闭数据库连接
} 展开
展开全部
// 试试这个吧,你的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();
}
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();
}
展开全部
execute在循环外面。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
stmt.execute()写到循环体里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Class.forName(DBDRIVER);//加载数据库驱动
这个放到外面去,加载一次就OK,最好放到static块里。
其他的忘记了,好久没搞web了。
这个放到外面去,加载一次就OK,最好放到static块里。
其他的忘记了,好久没搞web了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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循环外了,也就是只能把最后一次循环的数据插入到数据库。
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循环外了,也就是只能把最后一次循环的数据插入到数据库。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询