JAVA操作数据库方式与设计模式应用

JAVA操作数据库方式与设计模式应用

ID:41010562

大小:41.50 KB

页数:6页

时间:2019-08-13

JAVA操作数据库方式与设计模式应用_第1页
JAVA操作数据库方式与设计模式应用_第2页
JAVA操作数据库方式与设计模式应用_第3页
JAVA操作数据库方式与设计模式应用_第4页
JAVA操作数据库方式与设计模式应用_第5页
资源描述:

《JAVA操作数据库方式与设计模式应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JAVA操作数据库方式与设计模式应用1.在业务层使用JDBC直接操作数据库-最简单,最直接的操作1)数据库url,username,password写死在代码中Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();Stringurl="jdbc:oracle:thin:@localhost:1521:orcl";Stringuser="scott";Stringpassword="tiger";Connectionconn=DriverManager.getConnection(url

2、,user,password);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);Stringsql="select*fromtest";ResultSetrs=stmt.executeQuery(sql);2)采用Facade和Command模式,使用DBUtil类封装JDBC操作;数据库url,username,password可以放在配置文件中(如xml,properties,ini等)。这种方法在小程序中应用较

3、多。2.DAO(DataAccessorObject)模式-松耦合的开始DAO=data+accessor+domainobject例如User类-domainobject(javabean)UserDAO类-accessor,提供的方法getUser(intid),save(Useruser)内包含了JDBC操作在业务逻辑中使用这两个类来完成数据操作。使用Factory模式可以方便不同数据库连接之间的移植。3.数据库资源管理模式3.1数据库连接池技术资源重用,避免频繁创建,释放连接引起大大量性能开销;更快的系统响应速度;通过实现JDBC的部分资源对象接口

4、(Connection,Statement,ResultSet),可以使用Decorator设计模式分别产生三种逻辑资源对象:PooledConnection,PooledStatement和PooledResultSet。一个最简单地数据库连接池实现:publicclassConnectionPool{privatestaticVectorpools;privatefinalintPOOL_MAXSIZE=25;/***获取数据库连接*如果当前池中有可用连接,则将池中最后一个返回;若没有,则创建一个新的返回*/publicsynchronizedConn

5、ectiongetConnection(){Connectionconn=null;if(pools==null){pools=newVector();}if(pools.isEmpty()){conn=createConnection();}else{intlast_idx=pools.size()-1;conn=(Connection)pools.get(last_idx);pools.remove(last_idx);}returnconn;}/***将使用完毕的数据库连接放回池中*若池中连接已经超过阈值,则关闭该连接;否则放回池中下次再使用*/pu

6、blicsynchronizedvoidreleaseConnection(Connectionconn){if(pools.size()>=POOL_MAXSIZE)try{conn.close();}catch(SQLExceptione){//TODO自动生成catch块e.printStackTrace();}elsepools.add(conn);}publicstaticConnectioncreateConnection(){Connectionconn=null;try{Class.forName("oracle.jdbc.driver.O

7、racleDriver").newInstance();Stringurl="jdbc:oracle:thin:@localhost:1521:orcl";Stringuser="scott";Stringpassword="tiger";conn=DriverManager.getConnection(url,user,password);}catch(InstantiationExceptione){//TODO自动生成catch块e.printStackTrace();}catch(IllegalAccessExceptione){//TODO自动生

8、成catch块e.printStackTrace();}catch

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。