JDBC开发
JDBC简介
ODBC(Open Database Connectivity)
-一个以C语言为基础去访问SQL为基础数据库引擎的接口,提供一致的接口用于和数据库沟通及访问数据
JDBC:Java Database Connectivity
-Java版的ODBC
-1996年由SUN公司提出
JDBC API[两部分]:
-应用程序开发接口:提供给应用开发人员使用
-驱动程序开发接口:提供给数据库驱动开发人员使用
使用JDBC的目的:
-与数据库连接
-发送SQL语句到数据库端并执行
-处理返回的执行结果
JDBC开发流程 :
【导入jar包:ojdbc6.jar】怎么导入jar包,博客中有,请查看
第一步:注册驱动并实例化
-使用类装载器
Class.forName(driverName);
-直接实例化驱动
Driver driver = new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver(driver);
常见驱动
Oracle:oracle.jdbc.driver.OracleDriver
Mysql:com.mysql.jdbc.Driver
第二步:建立和数据库的连接
-DriverManager.getConnection()方法
getConnection(String url,String user,String passwd);
-常见数据库URL
Oracle jdbc:oracle:thin:@host:1521:SID
Mysql jdbc:mysql://host:3306/SID
[host:主机IP地址; 1521:监听端口号; SID::数据库]
eg:
Connection conn = DriverManager.getConnection("jdbc:oraacle:thin:@127.0.0.1:1521:XE","user","123");
第三步:创建Statement对象
-Statement对象用于将sql语句发送到数据库,分三种情况:
1>Statement stmt = Connection.createStatement();
执行不带参数的简单sql语句 [常用]
2>PreparedStatement pstmt = Connection.prepareStatement(sql);
执行带参数或不带参数的sql语句 [常用]
3>CallableStatement cstmt = Connection.prepareCall(sql);
执行对数据库以存储的PL/SQL程序的调用
第四步:执行sql语句
ResultSet rs = executeQuery(sqlString);
//执行查询语句,返回查询结果集ResultSet
int rows = executeUpdata(sqlString);
//执行DML和DDL语句,返回受影响的记录数
boolean flag = execute(sqlString);
//执行任何SQL语句,返回boolean类型,指示是否有ResuleSet返回
第五步:处理结果集
-查询语句返回结果集ResultSet
-结果集中的内置游标指向第一条记录前面
-通过ResuleSet相关方法遍历结果集
eg:
ResuleSet rs = executeQuery(sql);
while(rs.next()){
System.out.print(rs.getString(1));
System.out.print(rs.getInt(2));
System.out.print(rs.getDouble(3));
System.out.print(rs.getDate(4));
...
}
第六步:释放资源
-关闭ResultSet、相应的Statement和Connection
eg:
finally{
if(rs!=null)
try{
rs.close();
}catch(Exception e){
}
//或者
try{
if(rs!=null)rs.close();
if(pstmt!=null)pstmt.close();
if(stmt!=null)stmt.close();
if(conn!=null)conn.close();
}catch(Exception){
}
}
JDBC优化
ConnectionFactory
-利用工厂模式可以提升代码的重用性
-封装注册数据库的驱动和获得数据库的连接
-利用配置文件减少硬编码,便于维护
ConnectionFactory的开发:
1-配置文件jdbcinfo.properties文件中写入数据库驱动的接口的jar包路径地址,数据库的URL,用户名密码
eg:
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:XE
jdbc.username=mahone
jdbc.password=123
2-配置文件的获取
ConnectionFactory.class.getResourceAsStream("jdbcinfo.properties");
//这里只获取到配置文件properties,并没有得到文件中的信息,所以需要用IO流解析文件中的信息并赋值到Driver、URL等静态常量上
怎么解析properties,博客中有,这里不再详细讲,望谅解
3-写个数据库连接方法,获得数据库连接Connection
eg:
public static Connection getConnection(){
//注册驱动
//建立连接
//返回一个Connection连接
}