什么是JDBC?
Java语言访问数据库的一种规范,是一套API
JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的存取操作。
JDBC规范采用接口和实现分离的思想设计了Java数据库编程的框架。接口包含在java.sql及javax.sql包中,其中java.sql属于JavaSE,javax.sql属于JavaEE。这些接口的实现类叫做数据库驱动程序,由数据库的厂商或其它的厂商或个人提供。
为了使客户端程序独立于特定的数据库驱动程序,JDBC规范建议开发者使用基于接口的编程方式,即尽量使应用仅依赖java.sql及javax.sql中的接口和类。
JAVA使用JDBC访问数据库的步骤:
1. 得到数据库驱动程序
2. 创建数据库连接
3. 执行SQL语句
4. 得到结果集
5. 对结果集做相应的处理(增,删,改,查)
6. 关闭资源:这里释放的是DB中的资源
使用oracle数据库为例子
一、下载oracle jdbc驱动(jar包),在工程中创立lib文件夹,把jar包放到lib文件夹中。如下图:
二、右键工程名,选择build poth->configurg build poth 打开properties for '项目录'窗口。单击add jars..打开jars selectino窗口。选择下载的oracle驱动jar包。点OK。
三、驱动已经配置完成,写代码测试吧。
数据库名:orcl
表名:testresult
1 import java.sql.Connection; 2 import java.sql.DriverManager; 3 import java.sql.PreparedStatement; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 7 8 public class Test { 9 public static void main(String[] args) { 10 try { 11 //一、载入JDBC驱动: 12 Class.forName("oracle.jdbc.OracleDriver"); 13 /* 14 * 二、得到数据库连接对象 15 * DriverManager:这个是一个实现类,它是一个工厂类,DriverManager.getConnection()方法用来生产Connection对象的 16 * DriverManager.getConnection()方法三个参数分别为:1.连接字符串 2.登录数据库用户名 3.登录数据库的密码 17 * 连接字符串格式为:jdbc:oracle:thin:@[ip地址]:[端口号]:[数据库名] 18 */ 19 Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "wladmin", "lan2711"); 20 System.out.println("连接成功"); 21 22 23 24 /* 25 * 三、对数据库进行增删改查操作 26 * PreparedStatement:预编译的sql语句对象 27 * 作用: 解决了书写sql语句时一些特殊的字符与sql保留字符冲突的问题,非常方便 28 * 使用conn.prepareStatement()方法得到PreparedStatement对象,参数为要执行的sql语句。 29 */ 30 PreparedStatement pStat = conn.prepareStatement("insert into testresult values(003,'JDBC')"); 31 //执行增删改操作 32 pStat.executeUpdate(); 33 System.out.println("插入成功"); 34 35 //执行查询操作 36 pStat = conn.prepareStatement("select * from testresult"); 37 //executeQuery()将返回一个用于指向结果集对象的接口--ResultSet 38 ResultSet rs = pStat.executeQuery(); 39 //遍历rs并输出结果 40 while(rs.next()){ 41 System.out.println(rs.getInt(1)+" "+rs.getString(2)); 42 } 43 44 //关闭连接对象:连接对象关闭时会把相关的PreparedStatement对象、ResultSet对象一起关闭 45 conn.close(); 46 47 } catch (ClassNotFoundException e) { 48 e.printStackTrace(); 49 } catch (SQLException e) { 50 e.printStackTrace(); 51 } 52 } 53 }