zoukankan      html  css  js  c++  java
  • JDBC的编码步骤

    1. 注册JDBC驱动程序

    // 如果使用MySQL数据库:
    Class.forName("com.mysql.jdbc.Driver");
    
    // 如果使用Oracle数据库:
    Class.forName("oracle.jdbc.driver.OracleDriver");
    

    2. 获取数据库连接

    Connection conn = DriverManager.getConnection(url,user,password);
    // 与MySQL数据库连接:
          url:jdbc:mysql://localhost:3306/自己创建的MySQL数据库名称
          user:用户名
          password:密码(自己安装的时候设置的密码)
    // 与Oracle数据库连接:
          url:jdbc:oracle:thin:@localhost:1521:orcl
          user与password和MySQL的一致
    

    3. 准备sql语句

    String sql = "sql语句";
    

    4. 创建发送SQL语句的对象(执行者)

    两种方式:需要使用类型为Statement或PreparedStatement的对象来构建并向数据库提交SQL语句

    4.1:创建Statement接口操作数据库,向数据库发送命令:

    Statement stat = conn.createStatement();
    

    4.2:创建PreparedStatement接口操作数据库,向数据库发送命令(预编译sql语句):

    注:预编译sql语句,要给sql语句添加参数,通过预编译对象赋值。

    PreparedStatement preparedStatement = conn.prepareStatement(sql);
    
    赋值:
    setXxx(int 第几个问号,Object 实际参数);
    例:
    prestat.setInt(第一个参数,第二个参数); 
    prestat.setString(第一个参数,第二个参数);
    prestat.setObject(第一个参数,第二个参数);
    

    PreparedStatement和Statement的区别:

      PreparedStatement是Statement的子接口,它具有预编译,预处理的功能,所以效率要比Statement高,而且它可以识别sql语句中的参数和占位符(可以传参)如果sql语句中的参数较多,需要拼接字符串时,用PreparedStatement非常方便。

    5. 执行sql语句

    5.1:Statement方式:

    // 增删改返回的是影响行数:
          int res = stat.executeUpdate(sql);
    // 查返回的是结果集:
          ResultSet rs = stat.executeQuery(sql);
    

    5.2:PreparedStatement方式:

    // 增删改返回的是影响行数:
          int res = stat.executeUpdate();
    // 查返回的是结果集:
          ResultSet rs = stat.executeQuery();
    

    ResultSet取数据方式:rs就是数据库游标,next相当于游标的指针向前移动,并且返回boolean值,是否有记录

    while(rs.next()) {
        // 获取数据有两种方法,一个是按照列的索引来获取,一个是按照列名来获取
        // 索引从1开始(Java中只有JDBC是索引从1开始的)
        int id = rs.getInt(1);
        // college不一定是列名,也可能是列的别名
        String college = rs.getString("college");
        Date date = rs.getDate("update");
        System.out.println("id=" + id);
        System.out.println("college=" + college);
        System.out.println("update=" + date);
        // 到此一条记录读取完成,下一个循环是下一个记录
    }
    

    6. 释放资源

    stat.close();
    conn.close();
    preparedStatement.close();
    如果返回的是结果集需要释放:rs.close();
    
  • 相关阅读:
    禁止页面被复制和禁止右键,一段样式一段JS就行了,无需复杂设定!
    你不知道的DIV+CSS的命名规则
    帝国cms提高网站网页打开速度的手段
    帝国cms网站管理系统之安全设置最优化分享
    渗透测试===使用BURPSUIT暴力破解某网站的手机验证码
    并发、并行、同步、异步、多线程的区别?
    python基础===一行 Python 代码实现并行(转)
    python目前安装的包备份
    jmeter,测登录,要不要过滤掉JS,CSS等请求?感觉过滤掉了压出来的数据就不真实?
    几个网站
  • 原文地址:https://www.cnblogs.com/zbh355376/p/13972677.html
Copyright © 2011-2022 走看看