你如何使用javaBean操作数据库(摘自www.CnJsp.com)
来源:互联网 发布:中国金融服务贸易数据 编辑:程序博客网 时间:2024/04/27 20:33
用javaBean封装数据库操作谁不会?--对啊,大家都会,但是--如果构建一个高扩展性的“结构”?这就要用到java的相关知识了。废话少说,我们先在Tomcat中创建一个DataSource- jdbc/Panabia,然后再创建一个java“基类”,这个类封装了数据库连接和连接的释放:[程式中有相应的注解]
package DB;
import javax.sql.DataSource;
import javax.naming.*;
import java.sql.*;
public class SQLFactory
{
private static DataSource ds=null;
private static Object Lock=new Object();
//生成DataSource**
public static DataSource gainDataSource(){
try{
if(ds==null){
synchronized(Lock){
if(ds==null){
Context ctx=new InitialContext();
ds=(DataSource)ctx.lookup(/"java:comp/env/jdbc/Panabia/");
}
}
}
}
catch(NamingException e){e.printStackTrace();}
return ds;
}
//生成SQL连接**
public static synchronized Connection gainConnection(){
Connection con=null;
try{
if(ds==null){
gainDataSource();
}
con=ds.getConnection();
}
catch(SQLException e){e.printStackTrace();}
return con;
}
//释放SQL连接**
public static void releaseConnection(ResultSet rs,PreparedStatement ps,Statement sql,Connection con){
try{
if(rs!=null)
rs.close();
}
catch(SQLException e){e.printStackTrace();}
try{
if(ps!=null)
ps.close();
}
catch(SQLException e){e.printStackTrace();}
try{
if(sql!=null)
sql.close();
}
catch(SQLException e){e.printStackTrace();}
try{
if(con!=null&&!con.isClosed())
con.close();
}
catch(SQLException e){e.printStackTrace();}
}
}
使用SQLFactory生成Connection,再生成Statement,再生成ResultSet--然后枚举吗?好象不错,哦,等等......这样做你难道没有一种“非常亲切”的感觉吗?---对了,ASP,PHP中就是如此-Faint~我们怎么又回到“原始社会”了....
有没有更好的方式?答案是肯定的,JAVA的能力是“通天”的强大,只要你能想得到,仔细看看它的API Document,就不难找出解决办法。
答案出来了:
我们在查询类中返回Iterator到JSP枚举,而不是ResultSet。
好了,我们的UserQuery类就产生了
import DB.SQLFactory;
import java.util.*;
import java.sql.*;
public class UserQuery{
private ArrayList list=null;
private Connection con=null;
private Statement sql=null;
private ResultSet rs=null;
public Iterator getResult(){
try{
con=SQLFactory.gainConnection();
sql=con.createStatement();
rs=sql.executeQuery(/"select * from verify/");
//verify表只有两个字段:username,password;
list=new ArrayList();
while(rs.next()){
list.add(rs.getString(1));
list.add(rs.getString(2));
}
}
catch(SQLException e){e.printStackTrace();}
finally{SQLFactory.releaseConnection(rs,null,sql,con);}
return list.iterator();
}
}
- 你如何使用javaBean操作数据库(摘自www.CnJsp.com)
- CNJSP.COM
- JSP操作技巧(摘自www.java-cn.com)
- 使用JavaBean封装数据库操作
- 数据库连接大全(摘自: http://www.connectionstrings.com/)
- Splay相关(摘自www.notonlysuccess.com)
- Splay题库(摘自www.notonlysuccess.com)
- 使用jdbc和javabean操作数据库
- 使用JDBC和JavaBean操作数据库
- Google如何让WWW.GOOGLE.COM作为你的首页
- 使用SQL Server代理设置SQL Server数据库定时操作http://www.xjcncn.com/school/data/mssql/200706/1359.html
- 使用JavaScript连接SqlServer数据库。执行CRUD操作。(http://www.ej38.com/showinfo/sqlserver-javascript-212187.html)
- 一个linux发行版列表,摘自www.beautifullinux.com
- JavaBean操作Oracle数据库
- JavaBean操作Oracle数据库
- javaBean操作数据库
- JavaBean操作Oracle数据库
- JavaBean操作Oracle数据库
- JSP操作技巧(摘自www.java-cn.com)
- 变更管理介绍CMII
- 关于linux图形界面的基本知识
- C++小问题
- 我可怜的幼教
- 你如何使用javaBean操作数据库(摘自www.CnJsp.com)
- 网络经典命令集
- [学习笔记][ASP.NET2.0][点击asp:Button出现两次提交数据的问题][解决:去掉OnClick或者OnCommand属性]
- window.showModalDialog以及window.open用法简介
- 数据库的分析
- sample code
- JAVA学习日记-类加载
- javascript小技巧
- 用C#+XMI技术进行UML模型捕获