jsp使用javabean封装对数据库的操作

问题描述

运行一下显示的是空指针异常附上代码control.javapackagejavaBean;importjava.io.InputStream;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.Hashtable;importjava.util.Properties;importjava.util.Vector;publicclasscontrol{privateConnectionconn=null;privateResultSetrs=null;privatePreparedStatementprestmt=null;privateVector<String[]>vec=newVector<String[]>();privateStringdriverName="org.gjt.mm.mysql.Driver";privateStringurl="jdbc:mysql://localhost:3306/ymy";booleanflag1=false;booleanflag2=false;booleanflag3=false;booleanflag4=false;privateStringuser="root";privateStringpassword="root";publiccontrol(){}publicvoidsetDriverName(StringnewDriverName){driverName=newDriverName;}publicStringgetDriverName(){returndriverName;}publicvoidsetUrl(StringnewUrl){url=newUrl;}publicStringgetUrl(){returnurl;}publicvoidsetUser(StringnewUser){user=newUser;}publicStringgetUser(){returnuser;}publicvoidsetPassword(StringnewPassword){password=newPassword;}publicStringgetPassword(){returnpassword;}publicConnectiongetConnection(){try{Class.forName(driverName);returnDriverManager.getConnection(url,user,password);}catch(Exceptione){e.printStackTrace();returnnull;}}/***函数功能:删除数据**@paramtableName*表名*@paramcondition*条件例:deletefrom表wherecondition*/publicvoidsetDeleteData(StringtableName,Stringcondition){Stringsql="";if(condition==null||condition==""){sql="deletefrom"+tableName;}else{sql="deletefrom"+tableName+"where"+condition;}try{prestmt=conn.prepareStatement(sql);intrscount=prestmt.executeUpdate();if(rscount>0){flag1=true;}}catch(SQLExceptione){e.printStackTrace();}}publicbooleanisDeleteData(){returnflag1;}/***函数功能:从表中取出符合条件的数据**@paramtableName*表名*@paramfield*列名*@paramcondition*查询条件*@return一个向量集合,每个向量含String[]field*/publicvoidsetGetData(StringtableName,String[]field,Stringcondition){Vector<String[]>vec=newVector<String[]>();StringstrField="",sql="";for(inti=0;i<field.length;i++){strField+=field[i]+",";}strField=strField.substring(0,strField.lastIndexOf(","));if(condition==null||condition==""){sql="select"+strField+"from"+tableName;}else{sql="select"+strField+"from"+tableName+"where"+condition;}try{prestmt=conn.prepareStatement(sql);rs=prestmt.executeQuery();while(rs.next()){String[]temp=newString[field.length];for(inti=0;i<field.length;i++){temp[i]=rs.getString(field[i]);}vec.add(temp);}}catch(SQLExceptione){e.printStackTrace();}}publicVector<String[]>getGetData(){returnvec;}/***函数功能:用户登陆检查*@paramtable*@paramcondition*@return*/publicvoidsetCheckedLogin(Stringtable,Stringcondition){try{Stringsql="select*from"+table+"where"+condition;prestmt=conn.prepareStatement(sql);rs=prestmt.executeQuery();if(rs.next()){flag2=true;}}catch(SQLExceptione){e.printStackTrace();}}publicbooleanisCheckedLogin(){returnflag2;}/***函数功能说明:插入数据**@paramtableName*@paramfield*@paramvalue*@throwsSQLException*第二个参数和第三个参数个数要相等,若为空或"",则表示该表全部字段*/publicvoidsetInsertData(StringtableName,String[]field,String[]value){if(field==null||value==null||field.length==0||value.length==0||field.length!=value.length)flag3=false;StringstrField="",strValue="";for(inti=0;i<field.length;i++){strField+=field[i]+",";strValue+="'"+value[i]+"',";}strField=strField.substring(0,strField.lastIndexOf(","));strValue=strValue.substring(0,strValue.lastIndexOf(","));try{Stringsql="insertinto"+tableName;sql+="("+strField+")values(";sql+=strValue+")";prestmt=conn.prepareStatement(sql);intrscount=prestmt.executeUpdate();if(rscount>0)flag3=true;}catch(SQLExceptione){e.printStackTrace();}}publicbooleanisInsertData(){returnflag3;}/***函数功能:修改数据**@paramtableName*表名*@paramfield*字段列表*@paramvalue*值列表*@paramcondition*条件例:update表set字段1=值1where条件*/publicvoidsetModifyData(StringtableName,String[]field,String[]value,Stringcondition){if(field==null||value==null||field.length==0||value.length==0||field.length!=value.length)flag4=false;Stringstr="";for(inti=0;i<field.length;i++){str+=field[i]+"='"+value[i]+"',";}str=str.substring(0,str.lastIndexOf(","));//Debug(str);Stringsql="";if(condition==null||condition==""){sql="update"+tableName+"set"+str;}else{sql="update"+tableName+"set"+str+"where"+condition;}//Debug(sql);try{prestmt=conn.prepareStatement(sql);intrscount=prestmt.executeUpdate();if(rscount>0){flag4=true;}}catch(SQLExceptione){e.printStackTrace();}}publicbooleanisModifyData(){returnflag4;}}test.jsp<%@pagelanguage="java"contentType="text/html;charset=utf-8"pageEncoding="utf-8"import="java.io.*,java.sql.*,java.util.*"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"><title>Inserttitlehere</title></head><body><jsp:useBeanid="delete"class="javaBean.control"></jsp:useBean><%StringstudentNumber4=request.getParameter("studentNumber4");delete.getConnection();delete.setDeleteData("student","");if(delete.isDeleteData())out.print("删除成功");else{out.print("删除失败");}%></body>

解决方案

解决方案二:
哪一行报错,贴出来

时间: 2024-10-24 05:43:18

jsp使用javabean封装对数据库的操作的相关文章

初识Jsp,JavaBean,Servlet以及一个简单mvc模式的登录界面

1:JSP JSP的基本语法:指令标识page,include,taglib;page指令标识常用的属性包含Language用来定义要使用的脚本语言:contentType定义JSP字符的编码和页面响应的MIME类型:pageEncoding:jsp页面的字符编码: include指令<%@ include file="path"%>静态包含,先包含,后编译处理: <jsp:include page="要包含的文件">  动态包含,先编译处理

在JSP中用bean封装数据库常用的功能

js|封装|数据|数据库 在JSP中用bean封装数据库常用的功能 1.建立一个Bean package guestbook;import java.sql.*; public class sql_data{    String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";    String sConnStr="jdbc:odbc:guestbook";    Connection conn=null;    ResultSe

servlet-不知道那错了,jsp向数据库插入操作

问题描述 不知道那错了,jsp向数据库插入操作 50C 这样用Demo.java能成功而在demo.jsp用同样的方式,不报错,但是没插入成功.求详解 解决方案 Jsp中没有createConnectio()仔细看看它和java中的区别.另外,用完后最好把连接都关了 解决方案二: 插入字符串(不知道哪里错了)jsp向数据库中插入中文乱码 解决方案三: 能把你的dbBean里的代码贴出来吗

JSP结合JavaBean生成静态页面示例

 JSP结合JavaBean生成静态页面示例1.为什么要做:节省不停操作数据库的开支,减少解析JSP页面的开支2.怎么做:很简单,就是利用文件操作,把需要的内容与现成的模板相合成再写入一个新的静态WEB页面就OK.3.功能扩展:这里只是利用文件写出的方式,将组合的HTML的内容写入到一个WEB页面里去,但是,为了引用,让其的页面知道有该页面的存在,我们还是得在数据库或者是静态页面里加上这个信息.为了简便,你这里就可以采用数据库,当然你要全部采用静态页面也可以,可能操作就复杂一点,不过,如果你能够

javabean连接mysql数据库

问题描述 何如用javabean连接mysql数据库,求解 解决方案 解决方案二: 解决方案三: 解决方案四:javabeanmodel层的东西,不能连接数库,连接mysql数据库用hibernate吧解决方案五:是不是JDBC???我也不懂javaBean额解决方案六:PlsuseGoogle,keywords:jdbcmysql解决方案七:连接数据路都差不多,网上哟好多解决方案八:MySQL数据库Class.forName("com.mysql.jdbc.Driver").newI

将XML结点转换成JAVABEAN并存入数据库

xml|数据|数据库|转换 1.概述 我们要将外部系统给的XML文件进行解析,并存入到数据库. 但是我们并没有DTD或者Schema,只有一个WORD格式的说明文档:更离谱的是,XML结点树的结构(即XML结点与XML结点之间的关系)与业务Bean树的结构(即业务Bean与业务Bean的关系)并不完全一致,比如说,从业务角度讲,一只猪有只猪头,而在XML里,却写成了 pig --content --pighead 的三级关系,无端端多了一个content结点! 没有DTD/Schema,结构又不

使用iOS原生sqlite3框架对sqlite数据库进行操作

使用iOS原生sqlite3框架对sqlite数据库进行操作 一.引言       sqlite数据库是一种小型数据库,由于其小巧与简洁,在移动开发领域应用深广,sqlite数据库有一套完备的sqlite语句进行管理操作,一些常用的语句和可视化的开发工具在上篇博客中有介绍,地址如下: sqlite数据库常用语句及可视化工具介绍:http://my.oschina.net/u/2340880/blog/600820.       在iOS的原生开发框架中可以对sqlite数据库进行很好的支持,这个

c++-C++ 对access数据库进行操作,如果不能用MFC,应该用什么??

问题描述 C++ 对access数据库进行操作,如果不能用MFC,应该用什么?? C++操作access数据库,但框架禁止使用MFC,呢我应该用什么来操作access数据库, 平台:VS2010 解决方案 尝试使用SQL,access很少用了 解决方案二: 可以使用ADO连接ACCESS数据库 解决方案三: https://msdn.microsoft.com/zh-cn/library/office/ff965871%28v=office.14%29.aspx 解决方案四: 用ADO操作数据库

后台-网站如何链接数据库,操作数据库?

问题描述 网站如何链接数据库,操作数据库? 最近准备做一个b/s架构的小东西,但是初次了解前端和后台有点搞不太明白.1.网页如何跟数据库链接起来?2.比如网页中一个文本框,如何让数据库中某条信息显示到这个文本框中3.比如一个调查问卷一样的表单,如何将用户提交的表单信息写入数据库希望大神可以回答一下,解一下心中困惑,不胜感激 解决方案 参考这个微软的教程,一看就会https://msdn.microsoft.com/zh-cn/data/gg685489 解决方案二: 用Java的可以用jdbc连