增删改属于一类操作,都是不返回结果集的,而查找是要返回结果集的
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());
}
//这样三句话就可以写完一个数据库的查询操作了
}
相关推荐
【标题】"jsp+JavaBean+Servlet+MySQL宿舍管理系统(初学者)"是一个针对初学者设计的项目,旨在帮助他们理解并...通过实际操作这个系统,学习者可以更好地理解JSP、JavaBean、Servlet和MySQL在Web开发中的协同工作方式。
在本文中,我们将深入探讨如何使用JavaEE技术栈,包括JSP、Servlet和JavaBean,来构建一个简单的在线留言板系统。这个系统的核心功能是允许用户提交留言并展示其他用户的留言。我们将从整体架构、关键组件和技术原理...
**JSP+Servlet+Javabean+Mysql学生成绩管理系统详解** 在现代Web开发中,构建一个高效、易维护的学生成绩管理系统是教育信息化的重要组成部分。本系统采用经典的MVC(Model-View-Controller)架构模式,结合了JSP、...
《JSP+Servlet+Javabean+Mysql网上书店管理系统》 网上书店管理系统是基于Web的典型应用,它利用了Java技术栈中的关键组件,包括JSP(JavaServer Pages)、Servlet、Javabean以及MySQL数据库。这些技术共同构建了一...
在IT行业中,构建一个在线购物系统是常见的任务,而JSP、Servlet和JavaBean是JavaEE平台下开发Web应用的三大核心组件,常用于构建动态网站。本项目以"JSP+servlet+javabean实现购物车"为主题,旨在演示如何使用这些...
标题 "java网上商城项目源码(jsp.servlet+javabean+mysql+jdbc)" 提供了一个基于Java技术的网上商城项目的完整源代码实现。这个项目利用了JSP(Java Server Pages)、Servlet、JavaBean以及MySQL数据库和JDBC(Java...
《基于JavaBean、Servlet、JSP与MySQL的网上书店管理系统详解》 在互联网技术日新月异的今天,网上书店管理系统已经成为许多实体书店扩展业务、提高服务效率的重要工具。本项目"javaBean+servlet+jsp+mysql网上书店...
在图书管理系统中,Servlet主要负责接收用户的请求,执行相应的业务逻辑,如登录验证、图书查询、借阅操作等,并将结果返回给JSP进行显示。Servlet通过`doGet()`和`doPost()`方法响应HTTP请求,并通过`request`和`...
总的来说,这个项目展示了如何利用JSP、Servlet和JavaBean的协同工作来实现对MySQL数据库的访问。这种分层架构使得代码更易于维护和扩展,同时也遵循了MVC(Model-View-Controller)设计模式的思想,即模型处理数据...
本项目“jsp+Servlet+javaBean实现登录注册”采用经典的Web开发技术栈,包括JavaServer Pages (JSP)、Servlet以及JavaBeans,结合MySQL数据库,利用集成开发环境myEclipse进行开发。下面将详细阐述这些知识点。 1. ...
在本项目中,“基于JSP+JavaBean+Mysql+JDBC+Servlet实现javaWeb登录注册”是一个典型的Java Web应用程序,它使用了多种核心技术来构建一个完整的用户管理系统,包括用户登录和注册。以下是对这些技术及其在项目中的...
MySQL分页JSP实现Servlet+JavaBean+JSP三级架构 本文档对MySQL分页技术进行了总结,讨论了在JSP实现中使用Servlet+JavaBean+JSP三级架构的分页技术的实现方式。文章首先讨论了分页技术的重要性,并且提出了一个基本...
在这个"用jsp+servlet+javabean做的博客系统"中,我们可以学习到三个关键的技术栈:JavaServer Pages (JSP)、Servlet以及JavaBeans。下面将详细阐述这三个技术在构建博客系统中的作用和知识点。 1. **JavaServer ...
通过JSP实现用户界面,Servlet处理业务逻辑,JavaBean封装数据,MySQL存储数据,MyEclipse提供开发支持,共同协作实现了库存的增删改查、统计分析等多种功能,满足了企业对库存管理的需求。该系统在公司的试用表明其...
总的来说,基于JSP+JavaBean+Servlet的图书管理系统是一个典型的Web应用案例,涵盖了前端展示、后端处理和数据库操作等关键环节,对于理解和掌握Web开发技术,特别是Java Web技术,具有很高的参考价值。通过深入研究...
在本项目中,我们采用的是基于JSP+Servlet+JavaBean+DAO的经典Web开发模式,用于...通过这个案例,开发者可以深入理解JSP、Servlet、JavaBean和DAO模式在实际项目中的应用,以及如何使用IDEA、MySQL和Tomcat协同工作。
这个系统利用了JavaServer Pages(JSP)、Servlet和JavaBeans组件来完成动态网页的开发,实现了新闻的发布、浏览、查询等功能。 【描述】"Java Web 新闻网页制作源代码,自己做的网页"表明这是一个实践项目,可能由...
在线购物系统是一个典型的Web应用程序,它使用了Java技术栈中的JSP(JavaServer Pages)、Servlet和JavaBean来实现。这三种技术是Java Web开发的核心组件,它们各自扮演着不同的角色,共同构建了一个功能完备、可...
**JSP+Servlet+Javabean+Mysql网上书店管理系统** 这个系统是基于MVC(Model-View-Controller)架构设计的,这是一种常见的Web应用开发模式,它将业务逻辑、用户界面和数据访问分离,提高了代码的可维护性和可重用...
在IT领域,构建Web应用程序是常见的任务之一,而本示例提供了一个基于JSP、JavaBean、Servlet、Ajax以及Mysql的完整应用实例,主要涵盖了数据的增删查改(CRUD)操作,并且利用Ajax实现了异步的验证码验证功能。...