`
李梓钺
  • 浏览: 29352 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Mysql通用查询操作类(Jsp+servlet+javaBean+Mysql)

阅读更多

增删改属于一类操作,都是不返回结果集的,而查找是要返回结果集的

1)先说增删改的操作

public int buildConn(String sql)throws Exception{
  Connection conn=null;
  Statement stmt=null;
   int result=0;
  boolean flag;
   try{
   conn=sqlconn.conn();
   stmt=conn.createStatement();
      result=stmt.executeUpdate(sql);
   System.out.println("恭喜你执行成功"+result+"条记录!");
   flag=true;
  }catch(Exception e){
   System.out.println("抱歉!执行失败!"+e.getMessage());
   flag=false;
  }finally{
  
   stmt.close();
   conn.close();
  }
  return result;
 }

2)而对于查询操作的就比较麻烦一点,通常我们都将查询的结果集打包到一个javabean组合中,例如我有一个登陆的javabean里面只有name和password,对应的表中user_list的两列name,password.现在要将user_list中的所有数据读出来,读出一条,就放到一个javabean中,多条数据就放到List<javabean>中。首先我们可以讲数据库中的所有数据都用读取字符串的形式getString的方法读出来,当然如果数据库中表的列的属性不是varchar类型,就不可以用此类方法。

本通用查询只针对都是String类型的表。

 /**
  * 通用查询,传入要查询的sql语句
  * 返回一个List<String[]>
  */
 public List<String[]> query(String sql) throws Exception{
  this.queryList=new ArrayList<String[]>();
  Statement stmt = null;
  ResultSet rs = null;
     Connection conn=null;
     conn=this.sqlconn.conn();
  stmt = conn.createStatement();
  rs = stmt.executeQuery(sql);
  ResultSetMetaData rsmd = rs.getMetaData();
  int columnCount = rsmd.getColumnCount();
     //2、取得表体信息,要对表体进行判断是否存在,如果不存在则退出
  while(true){
   if(false == rs.next()){
    break;
   }
   String dataList[] = new String[columnCount];
   for(int body = 1; body <= columnCount; body ++){
    String columnValue = rs.getString(body);
    dataList[body - 1] = columnValue;
    }
      this.queryList.add(dataList);
   }
  rs.close();
  stmt.close();
  conn.close();
     return queryList;
 }

这个方法是将表中的内容读取出来,然后存放到一个List<String[]>中,但这样有个坏处,就是读出来的数据还没有打包成javabean,要自己打包,很是繁琐。所以在这个方法的基础上,我再写了一个将List<String[]>打包成javabean的方法。在这里要注意一点,就是,这个数据库通用操作类必须是一个泛型,class SqlOperDao<T>,要不然,Object类型是无法转化为你想要的javabean类型

/**
  * 传入一个javabean,sql查询语句
  * 查询返回的结果集,放到一个集合中List<javaBean>
  * 这是一个赋值的操作,只对String类型进行复制,如果javabean中的set方法不是传String类型的
  * 可以改写为
  * public void setAttribute(String str){
  *    this.attribute=Integer.parseInt(str);
  *   }
  * T可以传入一个JavaBean
  */
 public List<Object> query(Object t,String sql)throws Exception{
     List<Object> resultlist=new ArrayList<Object>();
     Class mycl=t.getClass();
     Field[] fields=mycl.getDeclaredFields();
     List<String[]> querylist=this.query(sql);     
     for(String[] results:queryList){
       Object instance=mycl.newInstance();
        int i=0;
       for(Field field:fields){

         //采用java反射机制,获取javabean中set方法的方法名称,由于set方法都是由set+属性名称(String)构成的,所以用拼凑字符串
         String setMethod="set"+String.valueOf(field.getName().charAt(0)).toUpperCase()+""+field.getName().substring(1);
         Method set=mycl.getMethod(setMethod,String.class);
         set.invoke(instance,results[i]);     
         i++;
        }
       resultlist.add(instance);
     }
    return resultlist;
 }

在此通用数据查询就完成了,再来,看下如何使用?

javabean:   class UserList{  private String name;

                                            private String password;  //get和set方法由myeclipse自动生成}

Dao层:要读取数据库中user_list中的所有数据

public static void main(String[] args0) throws Exception{

     SqlOperDao sod=new SqlOperDao();
     UserList  t=new UserList();
     String sql="SELECT * FROM user_list";
     List<UserList> list=sod.query(t, sql);
  for(Eatery e:list){
   System.out.println(e.getEateryName());
  }

//这样三句话就可以写完一个数据库的查询操作了

}

0
0
分享到:
评论

相关推荐

    jsp+JavaBean+Servlet+MySQL宿舍管理系统(初学者)

    【标题】"jsp+JavaBean+Servlet+MySQL宿舍管理系统(初学者)"是一个针对初学者设计的项目,旨在帮助他们理解并...通过实际操作这个系统,学习者可以更好地理解JSP、JavaBean、Servlet和MySQL在Web开发中的协同工作方式。

    JSP+Servlet+JavaBean制作简单留言板

    在本文中,我们将深入探讨如何使用JavaEE技术栈,包括JSP、Servlet和JavaBean,来构建一个简单的在线留言板系统。这个系统的核心功能是允许用户提交留言并展示其他用户的留言。我们将从整体架构、关键组件和技术原理...

    JSP+Servlet+Javabean+Mysql学生成绩管理系统

    **JSP+Servlet+Javabean+Mysql学生成绩管理系统详解** 在现代Web开发中,构建一个高效、易维护的学生成绩管理系统是教育信息化的重要组成部分。本系统采用经典的MVC(Model-View-Controller)架构模式,结合了JSP、...

    JSP+Servlet+Javabean+Mysql 网上书店管理系统.zip

    《JSP+Servlet+Javabean+Mysql网上书店管理系统》 网上书店管理系统是基于Web的典型应用,它利用了Java技术栈中的关键组件,包括JSP(JavaServer Pages)、Servlet、Javabean以及MySQL数据库。这些技术共同构建了一...

    JSP+servlet+javabean实现购物车

    在IT行业中,构建一个在线购物系统是常见的任务,而JSP、Servlet和JavaBean是JavaEE平台下开发Web应用的三大核心组件,常用于构建动态网站。本项目以"JSP+servlet+javabean实现购物车"为主题,旨在演示如何使用这些...

    java网上商城项目源码(jsp.servlet+javabean+mysql+jdbc)

    标题 "java网上商城项目源码(jsp.servlet+javabean+mysql+jdbc)" 提供了一个基于Java技术的网上商城项目的完整源代码实现。这个项目利用了JSP(Java Server Pages)、Servlet、JavaBean以及MySQL数据库和JDBC(Java...

    javaBean+servlet+jsp+mysql网上书店管理系统及网上销售系统

    《基于JavaBean、Servlet、JSP与MySQL的网上书店管理系统详解》 在互联网技术日新月异的今天,网上书店管理系统已经成为许多实体书店扩展业务、提高服务效率的重要工具。本项目"javaBean+servlet+jsp+mysql网上书店...

    基于JSP+Servlet+JavaBean实现的图书管理系统

    在图书管理系统中,Servlet主要负责接收用户的请求,执行相应的业务逻辑,如登录验证、图书查询、借阅操作等,并将结果返回给JSP进行显示。Servlet通过`doGet()`和`doPost()`方法响应HTTP请求,并通过`request`和`...

    简单的jsp+servlet+javaBean访问mysql数据库

    总的来说,这个项目展示了如何利用JSP、Servlet和JavaBean的协同工作来实现对MySQL数据库的访问。这种分层架构使得代码更易于维护和扩展,同时也遵循了MVC(Model-View-Controller)设计模式的思想,即模型处理数据...

    jsp+Servlet+javaBean实现登录注册

    本项目“jsp+Servlet+javaBean实现登录注册”采用经典的Web开发技术栈,包括JavaServer Pages (JSP)、Servlet以及JavaBeans,结合MySQL数据库,利用集成开发环境myEclipse进行开发。下面将详细阐述这些知识点。 1. ...

    基于JSP+JavaBean+Mysql+JDBC+Servlet实现javaWeb登录注册

    在本项目中,“基于JSP+JavaBean+Mysql+JDBC+Servlet实现javaWeb登录注册”是一个典型的Java Web应用程序,它使用了多种核心技术来构建一个完整的用户管理系统,包括用户登录和注册。以下是对这些技术及其在项目中的...

    mysql分页 jsp实现 servlet+javabean+jsp三级架构

    MySQL分页JSP实现Servlet+JavaBean+JSP三级架构 本文档对MySQL分页技术进行了总结,讨论了在JSP实现中使用Servlet+JavaBean+JSP三级架构的分页技术的实现方式。文章首先讨论了分页技术的重要性,并且提出了一个基本...

    用jsp+servlet+javabean做的博客系统

    在这个"用jsp+servlet+javabean做的博客系统"中,我们可以学习到三个关键的技术栈:JavaServer Pages (JSP)、Servlet以及JavaBeans。下面将详细阐述这三个技术在构建博客系统中的作用和知识点。 1. **JavaServer ...

    jsp+javabean+servlet库存管理系统

    通过JSP实现用户界面,Servlet处理业务逻辑,JavaBean封装数据,MySQL存储数据,MyEclipse提供开发支持,共同协作实现了库存的增删改查、统计分析等多种功能,满足了企业对库存管理的需求。该系统在公司的试用表明其...

    基于JSP+JavaBean+Servlet模式的图书管理系统的研究和实现

    总的来说,基于JSP+JavaBean+Servlet的图书管理系统是一个典型的Web应用案例,涵盖了前端展示、后端处理和数据库操作等关键环节,对于理解和掌握Web开发技术,特别是Java Web技术,具有很高的参考价值。通过深入研究...

    基于JSP+Servlet+JavaBean+Dao开发模式——学生体质管理系统{2018.2的IDEA加8.0的MySQL和9.0.11的Tomcat实现}

    在本项目中,我们采用的是基于JSP+Servlet+JavaBean+DAO的经典Web开发模式,用于...通过这个案例,开发者可以深入理解JSP、Servlet、JavaBean和DAO模式在实际项目中的应用,以及如何使用IDEA、MySQL和Tomcat协同工作。

    jsp+servlet+javabean实现的新闻发布系统

    这个系统利用了JavaServer Pages(JSP)、Servlet和JavaBeans组件来完成动态网页的开发,实现了新闻的发布、浏览、查询等功能。 【描述】"Java Web 新闻网页制作源代码,自己做的网页"表明这是一个实践项目,可能由...

    在线购物系统(JSP+Servlet+JavaBean)

    在线购物系统是一个典型的Web应用程序,它使用了Java技术栈中的JSP(JavaServer Pages)、Servlet和JavaBean来实现。这三种技术是Java Web开发的核心组件,它们各自扮演着不同的角色,共同构建了一个功能完备、可...

    JSP+Servlet+Javabean+Mysql 网上书店管理系统

    **JSP+Servlet+Javabean+Mysql网上书店管理系统** 这个系统是基于MVC(Model-View-Controller)架构设计的,这是一种常见的Web应用开发模式,它将业务逻辑、用户界面和数据访问分离,提高了代码的可维护性和可重用...

    基于JSP+JavaBean+Servlet+Ajax+Mysql的验证码 增删查改完整例子

    在IT领域,构建Web应用程序是常见的任务之一,而本示例提供了一个基于JSP、JavaBean、Servlet、Ajax以及Mysql的完整应用实例,主要涵盖了数据的增删查改(CRUD)操作,并且利用Ajax实现了异步的验证码验证功能。...

Global site tag (gtag.js) - Google Analytics