javabean封装mysql
我们可以将获取数据库连接,查询,更新甚至将其它的功能都封装进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取出体积很大的数据时,会相当耗费系统资源[系统会在内存单独开一块空间存放结果]---相关的优化方法是有的,我在这里就不作陈述了,大家可以参考一下其它的相关资料。

转载于:https://www.cnblogs.com/laiyifeng77/archive/2012/04/04/2431752.html

javabean封装mysql相关推荐

  1. java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码

    jsp与javabean链接mysql数据库并查询数据表的简单实例源码.这个简单的实例是给新手学习的,或者一些高手临时忘记怎么使用jsp操作mysql数据库时候查找的,包括了建立mysql数据库连接的 ...

  2. PHP中封装mysql数据库链接(简单版)

    为什么80%的码农都做不了架构师?>>>    1,封装mysql数据链接需要哪些属性 主机地址,数据库名,数据库密码,数据库名,字符集 2,利用构造方法在实例化类时,php底层会自 ...

  3. docker 封装sql_docker封装mysql镜像

    docker封装mysql镜像 发布时间:2020-03-13 12:18:07编辑:admin阅读(967) 一.概述 直接使用官方的镜像docker pull mysql:5.7 但是mysqld ...

  4. php打包mysql_PHP封装MySQL的单例

    //封装MySQL单例 class MySQLDB { private $host;//主机地址 private $port;//端口号 private $user;//用户名 private $pw ...

  5. golang封装mysql涉及到的包以及sqlx和gorm的区别

    一.前言 本篇是搬运之前的笔记,刚用golang的时候,看到mysql的封装部分,总是很好奇为什么会用到那么多的包,例如: "database/sql" "github. ...

  6. servlet+javabean+jdbc+mysql基于MVC模式的课件管理系统,有三个表的增删改查和课件搜索、课件上传、课件下载功能, 具体功能请看界面上的导航条

    源码支持在idea.eclipse.myeclipse运行,数据库采用MySQL数据库,项目采用mvc设计模式开发,页面采用jsp+html+css+js完成. servlet+javabean+jd ...

  7. JavaBean封装,在线人数

    哈喽,大家好,我是你们可爱的小编,今天给大家带来了javabean的封装! 目录 一,Javabean 概念 如何引用Javabean封装的代码 javabean封装应该注意什么? Javabean的 ...

  8. JavaBean封装

    一. Javabean 是什么?  javaBean封装就是把java代码和jsp代码分离 理解: 使用 javabean 和不用 javabean 的区别: 一个 javabean就是为 jsp 页 ...

  9. Python封装MySQL数据库操作(pymysql)

    Python封装MySQL数据库操作(pymysql) # 连接MySQL class DbManager(object):# 构造函数def __init__(self):self.conn = N ...

  10. java链接mysql mvc_MVC jsp+servlet+javabean 连接Mysql数据库測试demo

    首先我们应该了解什么是MVC: MVC包含三个部分 : ①View:由各种JSP页面组成. ②Controller:由各种Servlet组成,Controller就是将View和Model来进行匹配, ...

最新文章

  1. LeetCode简单题之将句子排序
  2. gRPC:Google开源的基于HTTP/2和ProtoBuf的通用RPC框架
  3. 2019年上海市数学建模讲座(3)微分方程建模方法
  4. 服务器微信了早上好,微信问候语早上好 微信早上好经典问候语
  5. java 获取sqlsession_获取Java的MyBatis框架项目中的SqlSession的方法
  6. boost::throw_exception简单的测试程序
  7. iOS6新特征:UICollectionView介绍
  8. HDLBits答案(6)_硬件模块设计的思考方式
  9. 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python文件)
  10. OpenStack精华问答 | OpenStack的网络类型有哪些?
  11. 解决VM 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VM 的方法
  12. leecode-11盛最多水的容器C版-双指针的使用
  13. SQL语句学习指南 - 教程书籍
  14. pdf 转图片 php,php如何实现pdf转换成图片
  15. 10个好用的免费图片网站,绝对能在2021年设计上好帮手
  16. Pluralistic Image Completion—多元图像补全—摘要翻译—测试教程(附源码)——CVPR 2019
  17. Torch not compiled with CUDA enabled 解决办法
  18. Spring系列教程六: Spring jdbcTemplate在Dao中的使用
  19. 金仓数据库字段_金仓数据库认证工程师(KCE)考试试题_含答案_
  20. 华为路由器接口如何区分_华为路由器接口管理命令有哪些

热门文章

  1. 利用Java-JACOB操作WORD文档2
  2. Web 设计师的 50 个超便利工具[下]
  3. 使用redis作为缓存,数据还需要存入数据库中吗?
  4. 闲鱼面试官:Thread.sleep(0) 到底有什么用?我:有点懵~
  5. GitHub 打钱了,10 万美元!
  6. 你在 Docker 中跑 MySQL?恭喜你,可以滚了!
  7. 你还在 Docker 中跑 MySQL?恭喜你,好下岗了!
  8. 收藏啦~ Github上 10 个开源免费且优秀的后台控制面板
  9. 程序员中的老司机们,30 后的路该开向哪里?
  10. 百度以侵犯商业秘密起诉前高管王劲 索赔5000万 内附王劲离职承诺函