您的位置:首页 > 其它

Day03 JDBC初步

2019-05-09 21:32 67 查看

一.增删改查 (CRUD)   Create(创建)  Retrieve(查询)  Update(更新)  Delete(删除)

  1. Create 增加
    只需要传递SQL语句
    下面的table是在mysql中创建的表名
    String sql = "insert into table values(,,,,) ";
    s.execute(sql);   //  注:   Statement s = c.createStatement();     Connection c = DriverManager.getConnection(数据库);
  2. Delete 删除
    String sql = "delete from table where id = 2";   //id是我给表加的参数
    s.execute(sql);
  3. Update 修改
    String sql = "update table set name = 'name1' where id = 2 "; //name同上
    s.execute(sql);
  4. Retrieve 查询
    比较特殊: String sql = "select * from table";
                       ResultSet rs = s.excuteQuery(sql);
      然后用while遍历rs.next();     注意获取数据时,rs.get(3)  获得的就是第三个,因为它是从1开始算的
  5. 查询数据是否匹配
     String sql =  "select * from user where name = '" + name +"' and password = '" + password+"'";
     ResultSet rs = s.executeQuery(sql);
     if(rs.next())     里边的rs.next(),如果找到匹配数据,会返回true
                                                       如果没找到匹配数据,光标会在最后一行之后,会返回false
  6. 获取语句总数
       "select count(*)from table"   用executeQuery()执行后,用ResultSet rs 接收,再用while循环rs.next()获取rs.getInt(1)

二.PreparedStatement

  1. 根据sql语句来创建
    String sql = "insert into table values(null,?,?,?)";
    PreparedStatement ps = c.prepareStatement(sql); //放在try()的括号里边
    {    设置参数  ps.setxxxxx();}

三.execute 与 executeUpdate

  1. 都可以增删改 s.execute(sql)   s.executeUpdate(sql)
  2. 前者可以执行查询语句,后者不可以执行
     s.execute(sqlSelect);   ResultSet rs = s.getResultSet();   然后把数据get()出来  同  (一).5比较
     s.executeUpdate(sqlUpdate)  返回值是int 类型, 代表受到影响数据的个数  用int num来接收,输出num
    注:execute(sql)返回值是boolean类型的,返回true代表执行查询语句,返回false则代表执行增,删,改等语句。 

四.使用事务

  1.  通过 c.setAutoCommit(false);关闭自动提交
     s.execute(sql1);

     s.execute(sql2); //sql1和sql2如果有一个提交失败,那就都失败

     使用 c.commit();进行手动提交
  2. MYSQL 表的类型必须是INNODB才支持事务(具体在我的Day02 MySQL初步)



 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: