增删改属于一类操作,都是不返回结果集的,而查找是要返回结果集的
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+servlet+javaBean访问数据库的简单例子,但是类设置非常巧妙,大家注意。
学生综合素质管理系统作为高校教务管理工作的一部分,即方便了学生选课和查看分数、教师的教学管理,更加方便了学校的教务管理,本系统主要用的的技术包括:MVC三层架构开发模式,即JSP+JavaBean+servlet三层结构,...
JavaBean用于数据的封装,方便将查询结果在servlet与jsp页面之间进行传递等 servlet过滤器能够在一个request到达servlet之前预处理request,也可以在离开servlet时处理response servlet监听器 监听Web的各种操作,当...
网上购物系统 - JavaBean + Servlet + JSP 网站描述 内容概要: 本网上购物系统是一款基于JavaBean、Servlet和JSP技术的电子商务平台,提供丰富的商品信息和便捷的购物体验。系统支持在线浏览、搜索、购买、支付和...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
用到的技术:jsp、javabean、servlet、mysql 用到的开发工具:eclipse 登陆用户分为:普通用户和管理员 普通用户 具有按学号学好查询学生资料功能,普通用户必须先注册,然后登陆、查询。 管理员 可以对学生进行添加...
数据层(dao):封装了对数据库的访问细节,数据操作类; 注意三层的关系:web层依赖业务层,业务层依赖数据层 二、不说多少,直接上代码,注意我标了一些注意点,是我容易犯错的地方,大家也要多注意。 连接数据库 ...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
编程模式:JSP+JavaBean+JavaServlet 后台数据库:MS-Access\MySql\SQLServer\Oracle 系统特点: 1.基于免费环境开发 JDK+Tomcat 2.客户端基于浏览器访问,产品模块化设计 3.代码全开放,易于二次开发 4.信息集中...
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 ...
涉及知识包含类与接口,继承与多态,集合类,JavaFx图形界面,文件IO操作,多线程,Socket流编程,正则表达式等。 完成于:2017-06-04 2.store 基于jsp/servlet+javabean+c3p0开发的简单商城管理系统。采用视图层...
使用JSP技术,通过动作、指令、内置对象等在文件中使用类Java代码实现数据传输、判断等操作。 使用JavaBean,简化JSP代码。 灵活使用CSS,美化界面。 使用JDBC技术,实现与数据库的读写操作。 Java web tomcat ...
这是一个小项目,基于JSP+Servlet+JavaBean+JDBC+DAO的web架构设计,数据库用的是MySQL。其中注册账号部分用到了Ajax异步检验和正则表达式验证,项目中设计了3个javabean,对应mysql数据库中的3个表,包括图书表(图书...
采用基于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是一种如日中天的新型Internet/Intranet开发语言,可以在多种操作系统平台和多种Web服务器下使用。本书从最基础的JSP开发开始,循序渐进地介绍了JSP 开发技术,并涵盖了许多高级主题,如需要在企业级Web应用中...
系统采用MVC三层架构,通过Servlet技术实现Controller层,通过JSP技术实现View层,通过JavaBean和DAO实现Model层。采用前后端分离技术,前端使用Vue.js框架开发,后端使用SpringBoot框架开发。实现用户管理、商品管理
本系统使用采用JSP进行网页界面的设计,JavaBean实现数据的固化,Servlet实现逻辑处理。后端的数据库采用Mysql,通过JDBC驱动和数据库进行无缝连接。使用Tomcat服务器,实现系统的在线发布。 系统分前台和后台:前台...