• JDBC


    JDBC:Java访问控制数据库里面数据的一套标准(面向接口编程)

    一、JDBC连接

    1、注册驱动:

      当执行了当前代码之后会返回一个class对象,在此对象创建过程中,会调用具体类的静态代码块

      Class.forName("oracle.jdbc.driver.OracleDriver");

    2、建立连接:

      第一部中已经将driver对象注册到DriverManager中,所以此时可以直接通过DriverManager来获取数据库的连接

      Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");

    3、测试连接是否成功

      System.out.println(conn);

    4、定义sql语句

      select * form emp;

    5、准备静态处理块对象,将sql语句放置到静态处理块中,理解为sql语句放置的对象

      在执行sql语句时,需要一个对象来存放sql语句,对象进行执行的时候调用的是数据库的服务,数据库会从当前对象中拿到对应的sql语句进行执行

      Statement statement = conn.createStatement();

    6、执行sql语句,返回对象是结果集合

      将结果放到resultSet中,是返回结果的一个集合

      statement在执行的时候可以选择三种方式:1、execute(任何sql语句都可以执行)

                           2、executeQuery(只执行查询语句)

                           3、executeUpdate(只能执行DML语句)

      ResultSet rs = statement.executeQuery(sql);

    7、循环迭代

      使用while循环有两种方式:1、通过下标索引编号来获取,从1开始

                    2、通过列名来获取(推荐)列名一般不会发生修改

      while(rs.nest()){

        rs.getInt(1);

      }

    8、关闭连接

      statement.close();

      conn.close();

    注意:在使用createStatement时有可能会出现sql注入的情况

       为了防止sql注入:String sql = "select * from emp where ename = ?";

                ps = conn.prepareStatement(sql);

                ps.setString(1,name);

    new java.sql.Date(new SimpleDataFormat("yyyy-MM-DD").parse(xxx.yyy).getTime()));

    二、JDBC批处理

    1、注册驱动

    2、建立连接

    3、String sql = "insert into emp(empno,empname) values(?,?)";

    4、PreparedStatement ps = conn.prepareStatement(sql);

    5、for(int i = 0;i <10;i++){

        ps.setInt(1,i);

        ps.setString(2,"xxx"+i);

        //向批处理中添加sql语句

        ps.addBatch();

      }

    6、int[] ints = ps.executeBatch();

  • 相关阅读:
    字符串函数---atof()函数具体解释及实现(完整版)
    curl的简单使用
    [7] 算法之路
    springMVC3.0(文件上传,@RequestMapping加參数,@SessionAttributes,@ModelAttribute,转发,重定向,数值获取,传參,ajax,拦截器)
    hdu 1754 I Hate It 线段树 点改动
    经典的7种排序算法 原理C++实现
    自己定义View实现水平滚动控件
    centos编译ffmpeg x264
    工作脚本处理文本
    A*寻路算法
  • 原文地址:https://www.cnblogs.com/lyc-code/p/13513258.html
Copyright © 2020-2023  润新知