JDBC学习
目录:
1、JDBC的概念:
2、Java连接数据库时,为什么第一步要加载驱动?
3、三种数据库连接的驱动和url
4、Driver接口
5、JDBC的使用步骤:
6、四个类的API文档说明:
1、JDBC的概念:
答:JDBC(Java DataBase Connectivity,Java数据库连接),是一种用于执行SQL语句的Java API,可以为多种关系数据库提供同一访问,它由一组用Java语言编写的类和接口组成。
将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。
2、Java连接数据库时,为什么第一步要加载驱动?
答:驱动程序就是一组程序,可以形象地把它理解为搭建在计算机硬件设备与操作系统之间的桥梁,它的作用就是使操作系统能够正确的识别、管理、使用相应的硬件设备。
Java连接数据库时加载驱动相当于是二者之间的连接。
3、三种数据库连接的驱动和url
答:(1)MySQL:com.mysql.jdbc.Driver
jdbc:mysql://ip:端口/数据库名?useUnicode=true&characterEncoding=UTF-8
(2)Oracle:oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@ip:端口:sid
(3)SQL Server:net.sourceforge.jtds.jdbc.Driver
jdbc:jtds:sqlserver://ip:端口/数据库名
4、Driver接口
答:每个驱动程序类必须实现的接口。Java SQL框架允许多个数据库驱动程序。每个驱动程序都应该提供一个实现Driver接口的类。
5、JDBC的使用步骤:
答:(1)加载JDBC的驱动程序
加载想要连接的数据库驱动到JVM,通过Class类的静态方法forName(String className)实现,动态引入数据库驱动类
(2)提供JDBC连接的URL
①连接URL定义了连接数据库时的协议、子协议、数据源标识。
②书写形式:协议:子协议:数据源标识
③协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
(3)创建数据库的连接(Connection,代表与数据库间的连接)
连接数据库时,先向java.sql.DriverManager请求并获得Connection对象,该对象就表示一个数据库的连接,该对象使用DriverManager的getConnection(String url, String username, String password)方法传入指定的要连接的数据库的路径,数据库的用户名,数据库的密码来获得。
(4)创建一个声明(Statement,代表要执行的SQL语句)
利用java.sql.Statement实例来执行sql语句
①执行静态(不带参数)sql语句:通常通过Statement实例实现
Statement stmt = con.createStatement();
②执行动态(带参数)sql语句:通常通过PreparedStatement实例实现
PreparedStatement pstmt = con.prepareStatement(sql);
③执行数据库存储过程:通常通过CallableStatement实例实现
CallableStatement cstmt = con.prepareCall(“{Call demoSp(?, ?)}”);
(5)执行sql语句
Statement接口提供了三种执行sql语句的方法:
①ResultSet executeQuery(String sqlString)
执行查询数据库sql语句,返回一个结果集对象
②int executeUpdate(String sqlString)
执行insert,update,delete以及sql数据定义语句(DDL,eg create,drop,alter)
③void excute(String sqlString)
用于执行返回多个结果集、多个更新计数或二者组合的语句。
Eg: boolean flag = stmt.execute(String sql) ;
(6)处理结果
①执行更新返回的是本次操作影响到的记录数。
②执行查询返回的结果是一个ResultSet对象。
ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些 行中数据的访问。
使用结果集(ResultSet)对象的访问方法获取数据:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比较高效
}
(7)关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:
①关闭记录集
②关闭声明
③关闭连接对象
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
6、四个类的API文档说明:
①DriverManager:管理一组JDBC驱动程序的基本服务。
通过驱动,建立与数据库间的连接。
②Connection:与特定数据库的连接会话。在连接上下文中执行SQL语句并返回结果。
代表着与数据库间的连接。
③Statement:Statement对象表示基本语句,其中将单个方法应用于某一目标和一组参数,以返回结果。
代表着要执行的SQL语句。
④ResultSet:表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
代表着数据库查询到的结果集。