JDBC接口及数据库厂商实现
类型 | 类名 |
---|---|
驱动管理 | DriverManager |
连接接口 | Connection |
DatabaseMetaData | |
语句对象接口 | Statement |
PreparedStatement | |
CallableStatement | |
结果集接口 | ResultSet |
ResultSetMetaData |
工作原理
- 加载驱动,建立连接:DriverManager
- 创建语句对象:Statement
- 执行SQL语句:一个字符串,通过Statement执行
- 处理结果集:只有查询语句才有结果集
- 关闭连接
Driver接口及驱动类加载
驱动类加载方式:
(Oracle)Class.forName("oracle.jdbc.driver.OracleDriver");
(MySQL)
Class.forName("com.mysql.jdbc.Driver");
Connection接口
//Oracle格式
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","openlab","open123");
//三个参数分别是url,用户名,密码
//jdbc:oracle:thin:@HOST:PORT:数据库实例名
//MySQL格式
Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/myDB?user=soft&password=soft1234&useSSL=false&useUnicod
e=true&characterEncoding=8859_1");
//jdbc:mysql://HOST:PORT/数据库名
Statement接口
Statement stmt = conn.createStatement();
- boolean flag = stmt.execute(sql);
- ResultSet rs = stmt.executeQuery(sql);
- int flag = stmt.executeUpdate(sql);
execute执行的语句通常是DDL语句。
executeQuery通常用于执行查询语句。
executeUpdate通常用于DML操作。返回值是影响的数据条数。
ResultSet接口
执行查询SQL语句后返回的结果集,由ResultSet接口接收。
常用处理方式:遍历/判断是否有结果
String sql = "select * from emp";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
System.out.println(rs.getInt("empno") + "," + rs.getString("ename"));
- 查询的一系列结果存放在ResultSet对象的一系列行中
- ResultSet对象的最初位置在行首
- ResultSet.next()方法用来在行间移动,一定要调用next确保有数据再获取字段的值
- ResultSet.getXXX()方法用来取得字段的内容