`
李梓钺
  • 浏览: 28975 次
  • 性别: 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+servlet+javaBean访问mysql数据库

    jsp+servlet+javaBean访问数据库的简单例子,但是类设置非常巧妙,大家注意。

    jsp网上选课系统(jsp+servlet+mysql)

    学生综合素质管理系统作为高校教务管理工作的一部分,即方便了学生选课和查看分数、教师的教学管理,更加方便了学校的教务管理,本系统主要用的的技术包括:MVC三层架构开发模式,即JSP+JavaBean+servlet三层结构,...

    高校学生身体素质管理系统(JSP+Servlet+JavaBean+Dao)

    JavaBean用于数据的封装,方便将查询结果在servlet与jsp页面之间进行传递等 servlet过滤器能够在一个request到达servlet之前预处理request,也可以在离开servlet时处理response servlet监听器 监听Web的各种操作,当...

    网上购物系统(JavaBean+Servlet+jsp) 2.zip

    网上购物系统 - JavaBean + Servlet + JSP 网站描述 内容概要: 本网上购物系统是一款基于JavaBean、Servlet和JSP技术的电子商务平台,提供丰富的商品信息和便捷的购物体验。系统支持在线浏览、搜索、购买、支付和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    学生信息管理系统jsp+servlet

    用到的技术:jsp、javabean、servlet、mysql 用到的开发工具:eclipse 登陆用户分为:普通用户和管理员 普通用户 具有按学号学好查询学生资料功能,普通用户必须先注册,然后登陆、查询。 管理员 可以对学生进行添加...

    JSP+JavaBean+DAO+面向接口编程+工厂模式实现对数据增删改查

    数据层(dao):封装了对数据库的访问细节,数据操作类; 注意三层的关系:web层依赖业务层,业务层依赖数据层 二、不说多少,直接上代码,注意我标了一些注意点,是我容易犯错的地方,大家也要多注意。 连接数据库 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    基于jsp的图书管理系统

    编程模式:JSP+JavaBean+JavaServlet 后台数据库:MS-Access\MySql\SQLServer\Oracle 系统特点: 1.基于免费环境开发 JDK+Tomcat 2.客户端基于浏览器访问,产品模块化设计 3.代码全开放,易于二次开发 4.信息集中...

    JSP 程序设计从入门到精通 PDF 教程

     4.6 JSP/Servlet 中的汉字编码问题 80  4.7 图解Eclipse+Tomcat集成开发Servlet 84  4.8 Servlets/JSP开发技术问答 93  4.9 Servlet小实例 97  4.5.1实例1(输出) 98  4.5.2实例2(获取表单参数) 99 ...

    JavaProject:简单的Java练习项目

    涉及知识包含类与接口,继承与多态,集合类,JavaFx图形界面,文件IO操作,多线程,Socket流编程,正则表达式等。 完成于:2017-06-04 2.store 基于jsp/servlet+javabean+c3p0开发的简单商城管理系统。采用视图层...

    JavaWeb教材管理系统 课程设计 计算机课设 权限管理 html css jsp jdbc Java web servlet

    使用JSP技术,通过动作、指令、内置对象等在文件中使用类Java代码实现数据传输、判断等操作。 使用JavaBean,简化JSP代码。 灵活使用CSS,美化界面。 使用JDBC技术,实现与数据库的读写操作。 Java web tomcat ...

    bookDBMS:我的Java Web项目

    这是一个小项目,基于JSP+Servlet+JavaBean+JDBC+DAO的web架构设计,数据库用的是MySQL。其中注册账号部分用到了Ajax异步检验和正则表达式验证,项目中设计了3个javabean,对应mysql数据库中的3个表,包括图书表(图书...

    LyBBS『凌云论坛』系统

    采用基于JSP/AJAX+Servlet+Action的MVC架构,采用Struts1.3标准,兼容于Java 2 Standard Edition 1.4和1.5(5.0),兼容Windows/Linux/Unix多种操作系统平台,兼容于Tomcat/Resin/WebLogic/WebSphere等多种JSP服务器...

    JSP高级编程

    JSP是一种如日中天的新型Internet/Intranet开发语言,可以在多种操作系统平台和多种Web服务器下使用。本书从最基础的JSP开发开始,循序渐进地介绍了JSP 开发技术,并涵盖了许多高级主题,如需要在企业级Web应用中...

    基于java在线图书销售系统的毕业设计,使用MySQL数据库进行数据存储,通过Tomcat服务器实现系统部署

    系统采用MVC三层架构,通过Servlet技术实现Controller层,通过JSP技术实现View层,通过JavaBean和DAO实现Model层。采用前后端分离技术,前端使用Vue.js框架开发,后端使用SpringBoot框架开发。实现用户管理、商品管理

    课程设计-基于Java web的网上书店管理系统(源码+数据库+报告+截图).zip

    本系统使用采用JSP进行网页界面的设计,JavaBean实现数据的固化,Servlet实现逻辑处理。后端的数据库采用Mysql,通过JDBC驱动和数据库进行无缝连接。使用Tomcat服务器,实现系统的在线发布。 系统分前台和后台:前台...

Global site tag (gtag.js) - Google Analytics