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);

    人生就像一场路途,尝遍酸甜苦辣,方知人生苦甜.
  • 相关阅读:
    Oozie时bin/oozied.sh start或bin/oozied.sh run出现Bootstrap进程无法启动,http://bigdatamaster:11000/oozie界面也无法打开?
    [ACM] POJ 2253 Frogger (最短路径变形,每条通路中的最长边的最小值)
    Echoprint系列--Android编译与调用
    shell编程之文本与日志过滤
    C++中搜索、截取字符串
    Swift中的UIKit重力学
    hbase0.96 put流程 源码分析
    [Docker]初次接触
    工作日志2014-08-25
    Flex和Servlet结合上传文件报错(二)
  • 原文地址:https://www.cnblogs.com/zennon/p/8370754.html
Copyright © 2011-2022 走看看