JavaWeb 应用访问数据库的方法
来源:互联网 发布:手机淘宝没有投诉卖家 编辑:程序博客网 时间:2024/06/08 08:12
一、通过JDBC API来访问数据库
Java程序通过JDBC API访问数据库
1、JDBC的实现包括3个部分。
- JDBC驱动管理器:java.sql.DriverManager类,由SUN公司实现,负责注册特定JDBC驱动器,以及根据特定驱动器建立与数据库的连接。
- JDBC驱动器API:由SUN公司制定,其中最主要的接口是java.sql.Driver接口
- JDBC驱动器:由数据库供应商或者其他第三方工具提供商创建,也陈伟JDBC驱动程序。JDBC驱动器实现了JDBC驱动器API,负责与特定的数据库连接,以及处理通信细节,它可以注册到JDBC驱动管理器中。
2、SUN公司制定了两套API。
JDBC API:java应用程序通过它来访问各种数据库。
JDBC驱动器API:当数据库供应商或者其他第三方工具提供商为特定数据库创建JDBC驱动器时,该驱动器必须实现JDBC驱动器API.
3、java.sql包中的接口和类
JDBC API主要位于java.sql包中,关键的接口与类包括以下几种:
Driver接口和DriverManager类:前者表示驱动器,后者表示驱动管理器
Connection接口:表示数据库连接
Statement接口:负责执行SQL语句
PreparedStatement接口:负责执行SQL语句
CallableStatement接口:负责执行SQL存储过程
ResultSet接口:表示SQL查询语句返回的结果集
二、从数据源中获得与数据库的连接
1、数据源简介:
在数据源中事先建立了多个数据库连接,这些数据库连接保存在连接池中。java程序通过JNDI技术获得Servlet容器提供的DataSource对象的引用。
在javax.naming包中提供了Context接口
2、配置数据源
在context.xml文件中定义数据源的<Resource>元素,在web.xml中加入<resource-ref>元素,该元素声明Web应用引用了特定数据源。
三、两个版本的具体区别:
1、构造方法的实现不一样
构造方法加载MySQL的JDBC Driver:
public BookDB () throws Exception{//加载 MySQL Driver类Class.forName("com.mysql.jdbc.Driver");//注册MySQL Driver类java.sql.DriverManager.registerDriver("com.mysql.jdbc.Driver");//不是必要的步骤}
构造方法获得JNDI DataSource:
public BookDB () throws Exception{ Context ctx = new InitialContext (); if(ctx == null) throws new Exception("No Context"); ds = (DataSource)ctx.lookup("java:comp/env/jdbc/BookDB");}
2、getConnection()方法的实现不一样
getConnection()方法直接和数据库建立连接,然后返回连接对象
public Connection getConnection() throws Exception { return java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);}
getConnection()方法从DataSource中获得空闲状态的连接
public Connection getConnection() throws Excepion{ return ds.getConnection();}3、closeConnection方法的作用不一样
两个BookDB类的closeConnection()方法的代码相同:
public void closeConnection(){ try{ if(con!=null) con.close(); }catch(Exception e){ e.printStackTrace(); } }
在JDBC API中con.close()方法会真正关闭和数据库的连接,而在DataSource中,con.close()方法仅仅是把数据库的连接对象返回到数据库连接池中,使连接对象恢复到空闲状态。
- JavaWeb 应用访问数据库的方法
- JavaWeb中记录访问终端的方法
- SSH应用--Hibernate 访问数据库的三种方法比较
- JavaWeb体系结构的理解-7.数据库应用
- JavaWeb使用JNDI访问数据库
- JAVAWEB APP访问Derby数据库
- Druid 监控JavaWeb项目的数据库访问性能
- ADO访问数据库的方法
- SilverLight访问数据库的方法
- 访问 HyperSQL 数据库的方法
- ThinkPHP访问数据库的方法
- web应用访问数据库的方式
- JavaWeb应用的生命周期
- javaWeb应用的生命周期
- Javaweb-ServletContext的应用
- 整理 javaweb 连接数据库方法
- javaweb回顾第三篇数据库访问
- javaweb访问数据库进行查找更新
- snmp4j 教程
- dreamweaver快捷键大全
- socket.sendUrgentData判断网络远端是否断开连接
- 坑爹的VS 2010 RibbonBar 编辑器
- objective-c一些需要记住的概念
- JavaWeb 应用访问数据库的方法
- OGITOR 探索打开场景(1)
- JSTL对Map集合的操作
- centos6.0安装libpng时出现configure: error: zlib not installed解决办法
- H.264视频的RTP荷载格式
- IE6和IE7不能识别display:inline-block的解决办法
- Wildcard
- 5个iOS应用开发者海外学习资源站推荐
- JAVA中重写自己的hashCode()方法原因