zoukankan      html  css  js  c++  java
  • 原生JDBC

    1.原生JDBC:
    * 原生JDBC:使用java程序操作数据库,对数据库表进行增删改查(CURD)
    * 实现步骤:
    * 1.注册驱动
    * 告知JVM我们使用的是那种驱动程序(mysql驱动,oracle驱动)
    * 2.获取数据库连接对象
    * mysql数据库,是一个TCP服务器,我们必须使用客户端经过3次握手,和服务器建立连接通路
    * 客户端(黑窗口,SQLyog,java程序)
    * 就相当于在java程序和mysql服务器之间建立一条道路,这个连接通路中有一个IO对象
    * 3.获取执行者对象
    * 用来执行sql语句,对象数据库表进行增删改查
    * 4.使用执行者对象执行sql语句,获取执行结果
    * 增删改:返回值是一个整数,影响数据库的有效行数(affected受影响的)
    * 查询:会查询出多行结果,把多行结果,存储一个ResultSet结果集中(集合)
    * 5.处理结果集
    * 6.释放资源
    * 注意:
    * 1236是固定不变的步骤
    * 45根据增删改查不同,而不同

    public class Demo02JDBC {
    public static void main(String[] args) throws Exception {
    //1.注册驱动
    Class.forName("com.mysql.jdbc.Driver");
    
    //2.获取数据库连接对象
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day04", "root", "root");
    
    //3.获取执行sql语句的执行者对象
    Statement stat = conn.createStatement();
    
    //insert(stat);
    //update(stat);
    //delete(stat);
    select(stat);
    
    //6.释放资源
    stat.close();
    conn.close();
    }
    
    private static void select(Statement stat) throws SQLException {
    
    //4.使用执行者对象,执行sql语句
    String sql = "SELECT * FROM category";
    ResultSet rs = stat.executeQuery(sql);
    
    
    //5.处理结果
    while(rs.next()){
    
    System.out.println(rs.getString("cid")+"	"+rs.getString("cname"));
    }
    }
    
    /*
    * 使用JDBC技术,对象数据库表中的数据进行删除
    */
    private static void delete(Statement stat) throws SQLException {
    //4.使用执行者对象,执行sql语句
    String sql = "DELETE FROM category WHERE cid IN(5,6)";
    int row = stat.executeUpdate(sql);
    
    //5.处理结果集
    if(row>0){
    System.out.println(row+"行数据删除成功!");
    }else{
    System.out.println("数据删除失败!");
    }
    }
    
    /*
    * 使用JDBC技术,对象数据库表中的数据进行修改
    */
    private static void update(Statement stat) throws SQLException {
    //4.使用执行者对象,执行sql语句
    String sql = "UPDATE category SET cname = '巧克力' WHERE cid = 7";
    int row = stat.executeUpdate(sql);
    
    //5.处理结果集
    if(row>0){
    System.out.println("数据修改成功!");
    }else{
    System.out.println("数据修改失败!");
    }
    }
    
    /*
    * 使用JDBC技术,对象数据库表进行添加数据
    */
    private static void insert(Statement stat) throws SQLException {
    //4.使用执行者对象,执行sql语句
    String sql = "INSERT INTO category (cname) VALUES('零食')";
    int row = stat.executeUpdate(sql);
    
    //5.处理结果集
    System.out.println(row);
    }
    }

    2.占位符;
    //3.获取预编译的执行者对象,需要传递sql语句,sql语句中可以使用?占位符代替实际参数
    String sql = "SELECT * FROM users WHERE username=? AND PASSWORD = ?";
    PreparedStatement pst = conn.prepareStatement(sql);
    /*
    * 4.使用PreparedStatement接口中的方法,设置?占位符的实际参数
    * void setObject(int parameterIndex, Object x) 使用给定对象设置指定参数的值。
    * 参数:
    * int parameterIndex:要设置的第几个?占位符;1,2,3.....
    * Object x:给?占位符设置的实际参数
    * 注意:
    * 必须保证给所有的?占位符都设置实际参数,有几个?占位符就调用几次setObject方法
    */
    pst.setObject(1, username);
    pst.setObject(2, password);

    人生就像一场路途,尝遍酸甜苦辣,方知人生苦甜.
  • 相关阅读:
    Python下用Tkinter进行GUI编程
    6月3日——回首一个半月
    Consistent Hashing算法
    学生终究要面对社会
    MySQL的锁(1)
    Memcached笔记之分布式算法(idv2.com)
    4月21日总结
    2012.3.29小结
    C#调用c++创建的dll
    以post方式发送文档到端口
  • 原文地址:https://www.cnblogs.com/zennon/p/8370754.html
Copyright © 2011-2022 走看看