---恢复内容开始---
1.首先说明什么是JDBC
在第一眼看到这个名词之前,我觉得有必要知道它的英文全称是什么,Java Database Connectivity,从英文字面上理解就直译为
可连通的Java数据库,说白了也就是想提供一套中间环节,去连接Java代码与数据库,使之可以直接通过操作Java代码就可以控制数据库。
2.JDBC的实质
它是Java访问数据库的解决方案,希望能过用同样的方式访问不同的数据库,以达到实现与具体数据库无关的Java操作界面。
JDBC实质上就是就是一套标准化的接口,不同的数据库厂商根据自己的数据库特点去实现这套接口,实现的具体方法无需我们去关心。
JDBC中数据库厂商实现的主要接口如下:
DriverManager :驱动管理
Connection、
DatabaseMetaData :连接接口
Statement、
PreparedStatement
CallableStatement: 语句对象接口
ResultSet、
ResultSetMetaData: 结果集接口
3.JDBC的工作原理
程序员调用的是底层数据库厂商实现的部分,
即:1)通过Connection 接口实现第一步的连接
2)通过Statement结果传送sql语句
3)数据库返回结果保存到ResultSet结果集合接口中
主要流程可归纳为:
1)加载驱动,创建连接
2)创建语句对象
3)执行SQL语句
4)发回结果集
5)关闭连接
下面我以我学的oracle数据库配合eclips为例逐步阐述一下如何实现JDBC
1)加载驱动
使用的方法为:Class.forName(“驱动”);
对于如何获得到这个驱动,我所知道的方法是:展开JDBC的jar包,如我使用的是ojdbc6.jar,在里面找到oracle.jdbc.driver,在里面再找到OracleDriver然后鼠标右键点qualitycopy,粘贴到引号之中即可,如:Class.forName("oracle.jdbc.driver.OracleDriver");
2)创建连接
使用的方法为: conn=DriverManager.getConnection(“jdbc:oracle:thin:@IP地址:1521:orcl","数据库账号","数据库密码”);
如:conn=DriverManager.getConnection("jdbc:oracle:thin:@172.16.3.8:1521:orcl","jsd1601","jsd1601");
3)创建语句对象
使用的方法为:Statement stmt=conn.createStatement();
需要注意的是,使用的是第二步上面创建出来的连接去调用方法
调用executeUpdate方法将sql语句传入其中即可执行所写的sql语句,这里需要注意的是,executeUpdate方法能执行的sql种类为insert,update,delete
如: Statement stmt=conn.createStatement();
String sql="insert into emp_jiawenzhe(empno,ename,sal,deptno) values(1000,'贾文哲',1500,10)";
int i=stmt.executeUpdate(sql);
这里面的返回值i就是受影响的行数,我们可以根据这个受影响的行数来判断是否操作成功
4)而对于返回的结果集主要是指进行select操作(这里暂不提)
5)最后关闭连接
如:conn.close();
列举一整体代码,包括注释:
1 package jdbc_day01; 2 import java.sql.*; 3 /** 4 * 演示JDBC的操作步骤 5 * 1、加载驱动程序 6 * 2、创建连接 7 * 3、创建语句对象 8 * 4、发送SQL语句 9 * 5、如果发送的是select语句,处理结果集10 * 6、关闭连接11 * @author jiawenzhe12 *13 */14 public class JDBCDome01 {15 public static void main(String[] args) throws SQLException {16 //需求:创建一个员工,员工号,员工名,工资,部门号17 //1、18 Connection conn=null;19 try {20 Class.forName("oracle.jdbc.driver.OracleDriver");21 System.out.println("驱动加载成功");22 //2、23 conn=24 DriverManager.getConnection("jdbc:oracle:thin:@172.16.3.8:1521:orcl","jsd1601","jsd1601");25 System.out.println(conn.getClass().getName());26 //3、27 //Statment 语句对象。发送并执行SQL语句28 /*29 * int excuteUpdate(String sql);30 * 发送insert,update,delete语句31 * 返回值int表示影响数据库表的行数32 */33 Statement stmt=conn.createStatement();34 String sql="insert into emp_jiawenzhe(empno,ename,sal,deptno) "35 + "values(1000,'王小二',1500,10)";36 int i=stmt.executeUpdate(sql);37 if(i>0){38 System.out.println("保存成功!");39 }40 } catch (ClassNotFoundException e) {41 e.printStackTrace();42 //1、记录日志43 //2、通知调用者44 throw new RuntimeException("加载驱动错误",e);45 }finally{46 //关闭连接47 if(conn!=null){48 try {49 conn.close();50 } catch (SQLException e) {51 e.printStackTrace();52 }53 }54 }55 56 57 58 59 }60 }
注:oracle数据库可以使用的jar包:ojdbc14.jar/ojdbc6.jar(oracle12c用这个)
mysql数据库可以使用的jar包:mysql-connector-java-5.0.4-bin.jar
加载驱动类:
Class.forName("com.mysql.jdbc.Driver");
未完待续!
---恢复内容结束---
原标题:Java——JDBC小结
关键词:JAVA