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

 

posted @ 2020-08-16 20:45  showMeTheCodes  阅读(106)  评论(0编辑  收藏  举报