/ 中存储网

Java在MySQL数据库中删除、更新、循环插入的例子

2014-07-13 16:32:55 来源:中存储网
import java.sql.*; //<第1步>导入JDBC包
public class testmysql {
 public static void main(String[] args){
  String url = "jdbc:mysql://localhost:3306/nlacwu";//定义mysql数据库的URL
  String user = "root"; //定义访问数据库的帐号
  String password = "03071249"; //定义访问数据库的密码
//  String sql = "insert into test values(100,100)"; //定义查询的SQL语句
  Connection conn = null; //定义数据库的连接conn 
  ResultSet rs = null; //定义查询结果集rs
  PreparedStatement ps=null;
  try {
   Class.forName("com.mysql.jdbc.Driver"); //<第2步>注册mysql数据库驱动
   conn = DriverManager.getConnection(url,user,password);//<第3步>获取数据库连接
   //stmt = conn.createStatement(); //<第4步>获取盛装SQL语句的载体stmt
   //rs = stmt.executeQuery(sql); //<第5步>获取查询结果集rs
//   String sqlparse="insert";
//   String sqlparse="delete";
   String sqlparse="update";
   if (sqlparse=="insert"){
    for (int i=0;i<=99;i++){
     sqlparse = "insert into test(id,name) values(?,?)";
     ps = conn.prepareStatement(sqlparse);
     ps.setInt(1,i);
     ps.setInt(2,i);
        ps.executeUpdate();
    } 
   }
   else if(sqlparse=="delete"){
    for (int i=0;i<=99;i++){
     sqlparse = "delete from test where id=?";
     ps = conn.prepareStatement(sqlparse);
     ps.setInt(1, i);
     ps.executeUpdate();
    }
   }
   else{
    for (int i=0;i<=99;i++){
     sqlparse = "update test set name=? where id=?";
     ps = conn.prepareStatement(sqlparse);
     ps.setInt(1,i+1);
     ps.setInt(2,i);
     ps.executeUpdate();
    }
   }
//   ps = conn.prepareStatement(sql);
//      ps.executeUpdate();
//   while(rs.next())
//   {
//    System.out.println(rs.getString("id")); //输出结果集rs,若rs不为null,即获取连接
//   }
   } catch (Exception e) {
    e.printStackTrace();
   }finally
   {
    // close rs
    try {
     if (rs !=null) {
      rs.close();
     }
    }catch (SQLException e) {
     e.printStackTrace();
    }
    // close ps
    try {
     if (ps != null) {
      ps.clearParameters();
      ps.close();
     }
    } catch (SQLException e) {
     e.printStackTrace();
    }
    // close conn
    try { 
     if (conn !=null) {
      conn.close(); //<第8步>关闭数据库连接
     }
    } catch (SQLException e) {
     e.printStackTrace();
    }
   }
  }
}
注意:select与其它的不同,执行时应该用executeQuery,其它的用executeUpdate!
sql语句中的value设置应该是常量,如果要能够设置成变量,应该用问号表示,然后在下面根据问号的个数来设置,具体见红色的代码所示。
这里是在windows环境下,我后来把它移植到linux环境下,我的方法是直接把这个project通过xftp传到linux中,然后因为要通过jdbc连接mysql,所以再在linux下的eclipse中添加相应的包——mysql-connector-java-5.1.13-bin.jar,运行后出现错误:Access denied for user 'root'@'localhost' (using password: YES)这点我很奇怪,我明明设置了密码,怎么会说我不应该用密码登陆呢?网上很多人说是因为密码错误。。。。我觉得我这种情况应该不是,后来我偶然间去project的Java Build Path里头看,发现问题了,xftp传递过来后居然把以前在windows下添加的jar包路径也保存下来了,但是显然路径已经完全不对了。

具体看下图:

java操作mysql时循环插入、删除、更新 - 寒塘渡鹤影 - wuyanzan606——疏云冷月

正确的设置应该是:

java操作mysql时循环插入、删除、更新 - 寒塘渡鹤影 - wuyanzan606——疏云冷月

这样就可以了。。。 运行后果然是。。。。所以说:尽信书不如无书!!!什么事儿都要自己想明白。。。