JDBC学习1-整体框架
2011-02-23 16:01
218 查看
Java Database Connectivity 一组抽象于各个数据库的接口规范,用统一的接口方式消除数据库之间的差异。虽然JDBC统一了调用方式,但是各个数据库厂商需要根据自己的数据库实现这组接口,所以在进行开发前需要获得各个数据库厂商提供JDBC驱动类。
进行JDBC开发的流程大致如下:
注册Driver类--获取数据库链接(Connection)--创建SQL环境(Statement)--执行获取结果集(ResultSet)--操作结果集--关闭连接
一. 注册Driver类
注册Driver类有以下3种方法,效果相同,都会在DriveManager类中记录Drive信息。
1. Class.forName(DriverClassName); 此加载方式会执行Driver的静态代码块。也可
Class.forName(DriverClassName).newInstance();保证完整的初始化
2. new Driver();如new com.mysql.jdbc.Driver();相当于Class.forName(DriverClassName).newInstance();
3. DriverManager.registerDriver(new Driver())
二. 获取连接
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "111111");
1. DriverManager.getConnection()实际上调用的是Driver.getConnection();
2. url的格式各个数据库不一样 大致为: jdbc:subprotocol:locate.
Mysql: jdbc:mysql://ip:port/sid
Oracle: jdbc:oracle:thin:@ip:port:sid
三. 获取结果信息
ResultSet 只能获取结果集里面的结果,无法获取结果集的基本信息,如有多少列,列名等。所以需要使用ResultSetMetaData,需要注意的是在ResultSetMetaData里面列的编号从1开始。
四. 释放连接
关闭连接最好在finally块里执行,这样就是操作抛出异常也能关闭连接。理论上关闭了Connection,Statement和ResultSet会自动关闭。
JDBC的大致类图如下:
没有用图权限,日他哥的。。
进行JDBC开发的流程大致如下:
注册Driver类--获取数据库链接(Connection)--创建SQL环境(Statement)--执行获取结果集(ResultSet)--操作结果集--关闭连接
Connection conn = null; try { //加载驱动类 Class.forName("com.mysql.jdbc.Driver"); //获取连接 conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "111111"); //创建SQL环境 Statement st = conn.createStatement(); //执行查询获取结果集 ResultSet rs = st.executeQuery("select * from user"); //获取结果集相关信息 ResultSetMetaData rsMetaData = rs.getMetaData(); int colNum = rsMetaData.getColumnCount(); //操作结果集 while(rs.next()){ System.out.print("/nRecode# "); for(int i = 1; i <= colNum; i++){ System.out.print(rsMetaData.getColumnName(i)+":" + rs.getObject(i) + "/t"); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //关闭连接 try { if(conn != null){ conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
一. 注册Driver类
注册Driver类有以下3种方法,效果相同,都会在DriveManager类中记录Drive信息。
1. Class.forName(DriverClassName); 此加载方式会执行Driver的静态代码块。也可
Class.forName(DriverClassName).newInstance();保证完整的初始化
2. new Driver();如new com.mysql.jdbc.Driver();相当于Class.forName(DriverClassName).newInstance();
3. DriverManager.registerDriver(new Driver())
二. 获取连接
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "111111");
1. DriverManager.getConnection()实际上调用的是Driver.getConnection();
2. url的格式各个数据库不一样 大致为: jdbc:subprotocol:locate.
Mysql: jdbc:mysql://ip:port/sid
Oracle: jdbc:oracle:thin:@ip:port:sid
三. 获取结果信息
ResultSet 只能获取结果集里面的结果,无法获取结果集的基本信息,如有多少列,列名等。所以需要使用ResultSetMetaData,需要注意的是在ResultSetMetaData里面列的编号从1开始。
四. 释放连接
关闭连接最好在finally块里执行,这样就是操作抛出异常也能关闭连接。理论上关闭了Connection,Statement和ResultSet会自动关闭。
JDBC的大致类图如下:
没有用图权限,日他哥的。。
相关文章推荐
- iOS 学习的整体框架
- JDBC 学习笔记(四)—— 自定义JDBC框架+Apache—DBUtils框架+事务管理+操作多表 - 解无邪
- asp.net 学习之路 项目整体框架简单的搭建
- 框架学习之Spring 第四节 Spring集成JDBC组件开发
- JDBC 学习笔记(十)—— 使用 JDBC 搭建一个简易的 ORM 框架
- Cocos2d-x学习之 整体框架描述
- (转载)Cocos2d-x学习之 整体框架描述
- 深入浅出学习Hibernate框架(二):JDBC基础操作
- 框架学习之Spring 第四节 Spring集成JDBC组件开发
- (转)Cocos2d-x学习之 整体框架描述
- iOS学习——iOS 整体框架及类继承框架图
- Cocos2d-x学习之 整体框架描述
- JDBC 学习笔记(四)—— 自定义JDBC框架+Apache—DBUtils框架+事务管理+操作多表
- iOS学习——iOS 整体微信H5牛牛房卡代理框架及类继承框架图
- iOS学习——iOS 整体微信H5牛牛房卡代理框架及类继承框架图
- 学习Jeasyframe第一讲-框架整体的架构说明
- 学习之路--项目整体框架简单的搭建
- Cocos2d-x学习之 整体框架描述
- IOS学习之整体框架类图
- Mybatis源码学习(一)-整体框架理解