jdbc知识点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
话题一:JDBC简介及基本使用
一:jdbc简介:
1:定义:
JDBC是一套协议,是JAVA开发人员和数据库厂商达成的协议,也就是由Sun定义一组接口,由数据库厂商来实现,并且为java开发人员提供调用接口方法。是java访问数据库的唯一的,统一的,底层的API
2:产生的背景和原因:
(1)由java从小设备应用发展到通用语言,跟企业打交道一定要和数据库打交道,这就是java为联结数据库发明API的原因
(2):java的平台无关性,就需要自己重新开发一套平台无关的联结数据库语言,
(3):java希望所用的代码都在虚拟机中运行,以保证安全性。
3:数据库驱动的概念:
驱动本质上是一个某个数据库厂商实现的jdbc接口的类库,
注意:数据库驱动不是一定要实现这个类库中的所有接口,但是必须实现java.sql.Driver接口。
二:jdbc中常使用的接口
1:Driver:驱动
2:DriverManager:辅助管理驱动
3:Connection:数据库联接
4:Statement:对数据库的操作对象(通过SQL语句操作)
5:ResultSet:结果集
三.JDBC应用步骤
1,注册加载一个driver驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
2,创建数据库连接(Connection)
String url="jdbc:oracle:thin:@192.168.0.23:1521:tarena";
String user="openlab";
String password="open123";
con=DriverManager.getConnection(url,user,password);
3,创建一个Statement(发送sql)
String sql="select first_name,id from s_emp";
state=con.createStatement();
4,执行sql语句
ResultSet rs=state.executeQuery(sql)
5,处理sql结果(select语句,关闭rs)
while(rs.next()){
System.out.print(rs.getInt("id"));
System.out.println(""+rs.getString("first_name"));}
6,关闭Statement state.close()
7,关闭连接Connection con.close()
注意:
(1)关闭对象的步骤势必须要做的,因为这些资源是不会自动释放的,必须要自己关闭
(2)要按先ResultSet结果集,后Statement,最后Connection的顺序关闭资源,因为Statement 和ResultSet是需要连接时才可以使用的,所以在使用结束之后有可能其他的Statement还需要连接,所以不能先关闭Connection。
四:细节知识点
1:常用驱动类
(1)Oracle的Driver
oracle.jdbc.driver.OracleDriver
(2)mysql的Driver
com.mysql.jdbc.Driver
(3)SQLServer的Driver的全名com.microsoft.jdbc.sqlserver.SQLServerDriver2:
2:常用的url书写格式
(1)Oracle URL的格式
例:jdbc:oracle:thin:@192.168.0.20:1521:tarenadb
(2)MySql URL的写法
例:jdbc:mysql://localhost:3306/tarena
(3)SQLServer URL的写法
例:jdbc:microsoft:sqlserver://localhost:1433/test
3:statement的方法作用和区别
excute():任何语句都可以
executeUpdate():增,删,改,创建
executeQuery():查询
4:固定驱动(了解)
如果想要用固定的driver而不是要让驱动管理器一个一个的找,那么需要明确的driver,可以通过new的方式,显式的创建driver
例如:
Driver drv=new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver(drv);
5:激发驱动类加载的方式
直接在获得连接的代码中调用Class.forName(“”);
直接在静态代码块中调用Class.forName(“”);
通过命令行参数传入,(本质上传入的是字符串)
Class.forName(args[0]);
通过虚拟机参数传入
终端命令行传入,
例如Java-Djdbc.drivers=oracle.jdbc.driver.OracleDriver FristJdbc.java
在eclipse中加入虚拟机参数的方式。
6:PreparedStatement的使用(从Statement继承而来)
同构SQL:SQL语句基本一样,只是具体参数值不同.
异构SQL:SQL语句完全不一样.
Statement不足:
1.效率比较低;
2.对字段类型的支持比较差;
3.语法含义不清晰.(结构不清楚)
由于编译时不需要参数,PreparedStatement可以使用"?"来替代sql语句中的某些参数,它先