J2EE--JDBC
https://blog.csdn.net/kanglix1an/article/details/36893005
什么是JDBC?
Java语言訪问数据库的一种规范,是一套API。JDBC(Java Database Connectivity)API。即Java数据库编程接口。是一组标准的Java语言中的接口和类。使用这些接口和类,Javaclient程序能够訪问各种不同类型的数据库。比方建立数据库连接、运行SQL语句进行数据的存取操作。
JDBC规范採用接口和实现分离的思想设计了Java数据库编程的框架。 为了使client程序独立于特定的数据库驱动程序,JDBC规范建议开发人员使用基于接口的编程方式。
什么是JDBC驱动程序?
是各个数据库厂家依据JDBC的规范制作的JDBC实现类。
JDBC驱动程序的四种类型:
1.第一种类型的驱动程序的实现是通过将JDBC的调用所有托付给其他编程接口来实现的,比方ODBC。这样的类型的驱动程序须要安装本地代码库,即依赖于本地的程序。所以便携性较差。比方JDBC-ODBC桥驱动程序
2. 另外一种类型的驱动程序的实现是部分基于Java语言的。即该驱动程序一部分是用Java语言编写,其他部分托付本地的数据库的client代码来实现。
同类型1的驱动一样,该类型的驱动程序也依赖本地的程序,所以便携性较差
3. 第三种类型的驱动程序的实现是所有基于JAVA语言的。该类型的驱动程序通常由某个中间件server提供,这样client程序能够使用数据库无关的协议和中间件server进行通信,中间件server再将client的JDBC调用转发给数据库进行处理
4.第四种类型的驱动程序的实现是所有基于JAVA语言的。该类型的驱动程序中包括了特定数据库的訪问协议。使得client能够直接和数据库进行通信
JAVA使用JDBC訪问数据库的步骤(与ODBC使用基本相似):
1.得到数据库驱动程序
2.创建数据库连接
3. 运行SQL语句
4.得到结果集
5.对结果集做相应的处理(增,删,改,查)
6.关闭资源:这里释放的是DB中的资源
PS:Oracle连接字符串的书写格式:“oracle:jdbc:thin:@ip:1521: 数据库名”,”数据库username”,”数据库password”
简单的样例:
public void TestJdbc() {
String sql = "select * from test_user";
Connection con = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:name", "root", "123456");
st = con.createStatement();
rs = st.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("name"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (Exception e) {
}
try {
st.close();
} catch (Exception e) {
}
try {
rs.close();
} catch (Exception e) {
}
}
}
与ODBC比較:
JDBC和ODBC事实上都是用来连接数据库的驱动程序。ODBC中文名字叫做开放数据库互联,是微软技术人员开发的开放服务结构中有关数据库的一个组成部分,它建立一组相关的规范。并提供了一组对数据库訪问的标准应用程序编程接口。
简单的说,ODBC就是应用程序与数据库系统进行交互的工具。所有的数据库操作由相应的数据库系统的ODBC驱动程序来完毕。从而能够实现以同一的方式来处理所有的数据库。
JDBC与ODBC相似,也是一个应用程序与数据库进行通信的中介。仅仅是他们的开发商不同而已。JDBC是由Sun公司向关系型数据库系统厂商提供JDBC的规格与需求;然后各大厂商遵循标准规格设计出符合自己数据库产品的JDBC驱动程序。
JDBC的整体结构相似于ODBC,有四个组件:应用程序、驱动程序管理器、驱动程序和数据源,工作原理亦大体同于ODBC.
差别:
1.JDBC要比ODBCeasy理解。
2.JDBC数据库驱动程序是面向对象的。
3.JDBC的移植性要比ODBC要好
总之JDBC与ODBC都是数据库的驱动程序,它们的本质是同样的,都是为了处理SQL语句而设计的。并且JDBC在设计的时候。其也是在ODBC的基础上进行设计的,并保留了ODBC数据库驱动程序的部分功能。或者说,我们能够把JDBC看作是ODBC的还有一个高级版本号也未尝不可。
JDBC主要在操作上、友好性上做了一定的改进。