`
roruby
  • 浏览: 335259 次
  • 来自: ...
社区版块
存档分类
最新评论

javaBean操作数据库

阅读更多
你平时是如何使用JSP操作数据库呢?对于jsp+javaBean模式,想必大家都已经很熟悉了,我们可以将获取数据库连接,查询,更新甚至将其它的功能都封装进javaBean----

好了--下面让我们来好好弄清楚一个问题:**你如何在JSP页中取得DB中的数据?从javaBean中返回ResultSet,然后在JSP中枚举吗?如果是这样的话,那我强烈建议你把这篇文章读完。*^_^*

用javaBean封装数据库操作谁不会?--对啊,大家都会,但是--如果构建一个高扩展性的“结构”?这就要用到java的相关知识了。废话少说,我们先在Tomcat中创建一个DataSource- jdbc/Panabia,然后再创建一个java“基类”,这个类封装了数据库连接和连接的释放:[程式中有相应的注解]

CODE:
--------------------------------------------------------------------------------

package Panabia.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();}
 }
}


--------------------------------------------------------------------------------


大家都应该注意到了,这个类的所有的方法全部是static的,之所以这样,主要是为了方便其它“扩展类”的调用,当然,还有其它好处--- :)

好了,这个类就封装完毕了,现在我们就可以针对不同的应用要求单独写javaBean了,比如一个简单的:在JSP中列出verify表中的所有用户名与密码列表-

该怎么做?--使用SQLFactory生成Connection,再生成Statement,再生成ResultSet--然后枚举吗?好象不错,哦,等等......这样做你难道没有一种“非常亲切”的感觉吗?---对了,ASP,PHP中就是如此-Faint~我们怎么又回到“原始社会”了....

有没有更好的方式?答案是肯定的,JAVA的能力是“通天”的强大,只要你能想得到,仔细看看它的API Document,就不难找出解决办法。
答案出来了:
我们在查询类中返回Iterator到JSP枚举,而不是ResultSet。
好了,我们的UserQuery类就产生了:

CODE:
--------------------------------------------------------------------------------

package Panabia.operate;

import Panabia.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();
     }
}


--------------------------------------------------------------------------------



然后,就是在JSP页中进行数据的枚举:因为发现cnjbb不支持html标签的显示,所以,只贴出了JSP中的全部java代码片--

........
Iterator it=UserQuery.getResult();
 while(it.hasNext()){
  out.print((String)it.next());
  }
..........

就是这么简单,一个循环就搞定了。


我承认,就这样把数据“裸列”出来实是“不雅”,想美化?---如果你会,那就开始做;如果觉得自己水平不行,你就需要找一个网页美工来帮你了;和网页美工配合并不是难事儿,只要将html标签简单的插入Java scriptlet中就OK了--很明显,这个比在JSP中枚举ResultSet的情况好多了,不会“牵一发而动全身”。

尚不完善的地方:虽然情况好了一些,但当使用ArrayList取出体积很大的数据时,会相当耗费系统资源[系统会在内存单独开一块空间存放结果]---相关的优化方法是有的,我在这里就不作陈述了,大家可以参考一下其它的相关资料。
分享到:
评论

相关推荐

    《使用JDBC和JavaBean操作数据库》学习资料.part01.rar

    《使用JDBC和JavaBean操作数据库》学习资料.part01.rar

    使用JavaBean连接数据库

    使用JavaBean连接数据库,可以将数据库操作封装在JavaBean中,从而简化数据库操作和数据访问。 JavaBean连接数据库的步骤: 1. 导入数据库驱动包:在JavaBean中,需要导入数据库驱动包,以便连接数据库。在本例中...

    Java Web开发 JavaBean封装数据库操作实例

    Java Web开发 JavaBean封装数据库操作实例

    jsp+javabean对数据库表的操作

    本篇将深入探讨如何利用JSP和JavaBean来对数据库表进行操作。 一、JSP简介 JSP是Java平台上的服务器端脚本语言,它允许开发人员在HTML页面中嵌入Java代码,从而实现动态网页的生成。JSP文件在服务器上被编译为...

    一个JAVABEAN连接数据库的小例子

    JavaBean是一种Java编程中的设计模式,它主要用于封装数据和提供数据操作的方法,是Java对象的一种规范。在本示例中,我们关注的是如何利用JavaBean连接到MySQL数据库,这是一个非常基础且重要的技能,尤其对于Java...

    使用javabean封装数据库操作1.rar_bean_javabean_javabean 数据库_planet7r1

    这个名为"使用javabean封装数据库操作1.rar_bean_javabean_javabean 数据库_planet7r1"的压缩包,显然包含了关于如何使用JavaBean来处理与数据库交互的知识点。下面我们将深入探讨这一主题。 首先,JavaBean的基本...

    用JavaBean连接数据库实现简单的用户登录操作

    本项目是基于java的,在jsp中通过访问数据库里的数据实现实现用户登录操作。里面有部分js代码,希望对新手学web有帮助

    对数据库操作的javabean

    总结来说,"对数据库操作的javabean"是一种通过JavaBean进行数据库交互的方式,它利用JDBC API连接数据库,执行SQL语句,并封装这些操作以提供给其他组件使用。通过这种方式,我们可以创建更健壮、可维护的Java应用...

    javabean的数据库增删改查

    在数据库操作中,JavaBean扮演着数据载体的角色,将数据库中的记录映射为Java对象,实现对数据库的增删改查(CRUD)操作。下面将详细解释如何使用JavaBean进行数据库的CRUD操作。 1. **创建JavaBean**: 在开始...

    JAVA100例之实例88JavaBean连接数据库

    总结起来,"JAVA100例之实例88JavaBean连接数据库"是一个关于如何在Java程序中利用JavaBean和JDBC进行数据库操作的示例。通过这个例子,你可以学习到JavaBean的设计原则,以及如何使用JDBC API来执行数据库查询和...

    javabean连接数据库SQL2000

    JavaBean是一种特殊的Java类,常用于封装数据和业务逻辑,便于在Java应用程序中重用和交换...通过这种方式,JavaBean可以作为数据访问层的一部分,帮助我们更方便地管理和操作数据库,实现数据的存取和业务逻辑的处理。

    JavaBean结合数据库综合举例.rar

    JavaBean在IT行业中扮演着重要角色,特别是在Java Web开发中,它是实现业务逻辑和视图层解耦的关键组件...通过理解这些概念并结合提供的示例,开发者可以更好地掌握如何在实际项目中有效地使用JavaBean进行数据库操作。

    一个javabean轻松实现对数据库的各种操作.rar_javabean_javabean 数据库_jsp

    本教程将探讨如何利用JavaBean实现对数据库的各种操作,让开发者能够更轻松地处理数据存储和检索。 首先,JavaBean是一种符合特定规范的Java类,它封装了业务逻辑并提供了公共方法供其他组件调用。在JSP中,...

    javabean数据库添加数据

    现在,我们可以编写一个DAO(Data Access Object)类来处理数据库操作。例如,创建一个`UserDAO`类,包含一个`insertUser`方法用于向`User`表插入数据: ```java public class UserDAO { public void insertUser...

    JSP+javaBean+数据库 无限级动态树状菜单

    数据库操作可能通过JavaBean完成,如查询所有顶级节点,然后递归获取其子节点。 4. **树状菜单的实现**: - **递归**:在Java或JavaBean中,无限级树状菜单的构建通常采用递归方法,通过获取当前节点的所有子节点...

    数据库实体对象转换JavaBean_数据库对象转Javabean_

    在Java开发中,数据库操作是不可或缺的一部分,而数据库对象与Java Bean之间的转换是数据层与业务层交互的关键。本文将详细讲解如何将数据库实体对象转换为Java Bean对象,以实现数据的有效封装和处理。 首先,我们...

    javaBean存入数据库

    这个过程中,JavaBean起到了数据载体的作用,它将来自外部的数据结构化,使得我们可以方便地进行数据操作,同时通过持久化框架简化了与数据库的交互。在实际开发中,JavaBean广泛应用于MVC架构、Web应用以及服务端的...

    jdbc javabean 连接数据库

    总结来说,使用JDBC和JavaBean连接数据库是一种常见的做法,它结合了JDBC的数据库操作能力与JavaBean的面向对象特性,提高了代码的可读性和可维护性。在实际开发中,还可以考虑使用连接池来管理数据库连接,进一步...

    javabean 数据库的增删改查

    数据库MySQL。五个字段, s_no(primary key,vachar(50) not null )s_name(vachar(50) nul) ,s_sex(vachar(50) nul),s_major(vachar(50) nul),s_grade(int null)

    MVC 利用servlet ,javabean,数据库技术

    在登录系统中,可能有一个用户表来存储用户名和密码,JavaBean通过JDBC(Java Database Connectivity)与数据库进行交互,执行CRUD(Create, Read, Update, Delete)操作。 4. **MVC工作流程**: - 用户通过浏览器...

Global site tag (gtag.js) - Google Analytics