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