servlet的增删改查

这是一个简单的servlet增删改查界面

t3.sql数据库:

/*
SQLyog 企业版 - MySQL GUI v8.14
MySQL - 5.5.25a : Database - test
*********************************************************************
*/

/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `test`;

/*Table structure for table `t3` */

DROP TABLE IF EXISTS `t3`;

CREATE TABLE `t3` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `password` varchar(32) DEFAULT NULL,
  `userName` varchar(32) DEFAULT NULL,
  `sex` varchar(5) DEFAULT NULL,
  `age` int(2) DEFAULT NULL,
  `address` varchar(1024) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8;

/*Data for the table `t3` */

insert  into `t3`(`id`,`password`,`userName`,`sex`,`age`,`address`) values (1,'23','123','女',12,' '),(36,'5345423','李四','男',12,'沙河'),(37,'654321','admin','男',30,'中国北京'),(38,'123456','admin2','女',28,'中国北京'),(39,'654321','admin','男',29,'中国河北'),(40,'123456','admin3','男',29,'中国河北'),(41,'12345678','admin4','男',29,'中国河北'),(42,'123','张三','男',22,'中国'),(43,'12345','王五','男',32,'山东济南'),(44,'123456','老刘','男',33,'中国河南'),(45,'654321','老刘','男',33,'中国河南'),(46,'123','老王','男',33,'中国河南'),(48,'12345678','老八','男',21,'234'),(49,'456123','admin','女',21,'123456');

/*!40101 SET [email protected]_SQL_MODE */;
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
/*!40014 SET [email protected]_UNIQUE_CHECKS */;
/*!40111 SET [email protected]_SQL_NOTES */;

servletAction.java源代码:

package com.action;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.service.stuInfoService;

@SuppressWarnings("serial")
public class servletAction extends HttpServlet {

	//导入service服务包
	stuInfoService stuinfoService=new stuInfoService();

	//影响行数默认为-1,因为数据操作后的返回结果不为-1
	private int i=-1;

	//创建list数组
	private List list=null;

	//设定初始状态
	private boolean state=false;

	/*
	 * servlet action
	 * */
	public servletAction() {
		super();
	}

	/*
	 * servlet销毁方法
	 * */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/*
	 * doGet方法
	 * */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		//如果是get方法,自动带参数跳转到post()方法
		doPost(request, response);

	}

	/*
	 * doPost()方法
	 * */
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		//设置页面编码格式为utf-8
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");

		//获取页面路径请求参数action
		String action=request.getParameter("action");

		//根据页面路径请求参数判断应该跳转的页面
		if(action.equals("insert")){

			//跳转到插入页面
			insert(request,response);

		}else if(action.equals("delete")){

			//跳转到删除页面
			delete(request,response);

		}else if(action.equals("update")){

			//跳转到修改页面
			update(request,response);

		}else if(action.equals("select")){

			//跳转到查询页面
			select(request,response);

		}

	}

	/*
	 * 查询方法
	 * */
	private void select(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException,ServletException, IOException {
		// TODO Auto-generated method stub

		//设置页面编码格式为utf-8
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		System.out.println("这里是查询方法!");

		//获取页面请求参数
		String userName=request.getParameter("userName");
		String password=request.getParameter("password");
		String sex=request.getParameter("sex");
		String age=request.getParameter("age");
		String address=request.getParameter("address");

		//判断性别是否则”请选择“,如果是则置空,因为性别中只有”男“,”女“,没有”请选择“
		if("请选择".equals(sex)){

			sex="";
			System.out.println("sex:"+sex);

		}

		//在控制台打印出来页面传递过来的参数
		System.out.println("userName:"+userName+"   password:"+password+"   sex:"+sex+"   age:"+age+"   address:"+address);

		//穿点String数组,方便参数调用
		String[] keyOption=new String[]{"userName","password","sex","age","address"};
		String[] valOption=new String[]{userName,password,sex,age,address};

		//循环遍历页面参数
		for(int i=0;i<valOption.length;i++){

			//判断页面传递来的参数是否存在,如果不存在则置空
			if(null==valOption[i]){
				valOption[i]="";
			}

		}

		//查询方法,获取mysql数据库的返回结果数组
		list=stuinfoService.select(keyOption,valOption);

		//将servlet获取的查询结果打印到控制台
		System.out.println("姓名"+"     密码"+"     性别"+"     年龄"+"     地址");

		//判断获取的来自mysql数据库的数组是否存在
		if(list!=null){

			//判断list数组是否为空
			if(list.size()>0){

				//循环遍历list数组
				for(int i=0;i<list.size();i++){

					//创建Map数组接受list传递来的每一行参数
					Map<String,String> map=(Map<String, String>) list.get(i);

					//在控制台打印出每一行数组
					System.out.println(map.get("userName")+"  "+map.get("password")+"  "+map.get("sex")+"  "+map.get("age")+"  "+map.get("address"));

				}

			}else{

				System.out.println("这里是select()方法,list数组为空!");

			}

		}else{

			System.out.println("这里是select()方法,list数组不存在!");

		}

		//将查询结果打印到前台界面
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out
				.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
		out.println("<HTML>");
		out.println("  <HEAD><TITLE>Select Servlet</TITLE></HEAD>");
		out.println("  <BODY>");
		out.println("<table>");

		//在servlet页面打印出每一行的航标题
		out.println("<tr>  <th>姓名</th>  <th>密码</th>  <th>性别</th>  <th>年龄</th>   <th>地址</th>  </tr>");

		//判断list数组是否存在
		if(list!=null){

			//判断list数组是否为空
			if(list.size()>0){

				//循环遍历list数组
				for(int i=0;i<list.size();i++){

					//创建Map容器接收list传递来的每一行参数
					Map<String,String> map=(Map<String, String>) list.get(i);

					//打印出每一行的结果

					out.println("<tr>");

					out.println("<th>");
					out.println(map.get("userName"));
					out.println("</th>");

					out.println("<th>");
					out.println(map.get("password"));
					out.println("</th>");

					out.println("<th>");
					out.println(map.get("sex"));
					out.println("</th>");

					out.println("<th>");
					out.println(map.get("age"));
					out.println("</th>");

					out.println("<th>");
					out.println(map.get("address"));
					out.println("</th>");

					out.println("</tr>");

				}

			}else{

				System.out.println("这里是select()方法,list数组为空!");

			}

		}else{

			System.out.println("这里是select()方法,list数组不存在!");

		}

		out.println("</table>");

		out.println("  </BODY>");
		out.println("</HTML>");
		out.flush();
		out.close();

	}

	/*
	 * 修改方法
	 * */
	private void update(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException,ServletException, IOException {
		// TODO Auto-generated method stub

		//设置页面编码格式为utf-8
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");

		System.out.println("这里是update方法");

		//获取页面请求参数
		String userName=request.getParameter("userName");
		String upOption=request.getParameter("upOption");
		String upValue=request.getParameter("upValue");

		//在控制台打印出获取的页面参数
		System.out.println("userName:"+userName+"   upOption:"+upOption+"   upValue:"+upValue);

		//判断upOption是否为”请选择“
		if("请选择".equals(upOption)){

			//如果参数是”请选择“,则认为没有任何参数,所以说不进行任何操作,自动返回原始页面
			response.sendRedirect("index.jsp");

		}else{

			//判断upValue参数是否存在
			if(upValue!=null){

				//判断upValue参数是否为空
				if("".equals(upValue)){

					//如果为空,不进行任何操作,直接返回原始页面
					response.sendRedirect("index.jsp");

					System.out.println("upValue参数为空!");

				}else{

					//将获取的下拉列表汉语信息转换成对应的字符串
					if("姓名".equals(upOption)){
						upOption="userName";
					}else if("密码".equals(upOption)){
						upOption="password";
					}else if("性别".equals(upOption)){
						upOption="sex";
					}else if("年龄".equals(upOption)){
						upOption="age";
					}else if("地址".equals(upOption)){
						upOption="address";
					}

					//在控制台打印出转换参数后的结果
					System.out.println("userName:"+userName+"   upOption:"+upOption+"   upValue:"+upValue);

					//执行修改数据库操作,返回影响行数
					i=stuinfoService.update(userName,upOption,upValue);

					//根据返回的影响行数判断数据是否插入成功
					if(i!=-1){
						System.out.println("这里是update()方法,数据修改成功!");
					}else{
						System.out.println("这里是update()方法,数据修改失败!");
					}

					//修改后自动跳转到查询方法,方便自己查看修改的参数结果
					response.sendRedirect("servletAction?action=select");

				}

			}else{

				//如果不存在,不进行任何操作,直接返回原始页面
				response.sendRedirect("index.jsp");

				System.out.println("upValue参数并不存在!");

			}

		}

	}

	/*
	 * 数据删除方法
	 * */
	private void delete(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException,ServletException, IOException {
		// TODO Auto-generated method stub

		System.out.println("这里是删除方法!");

		//这只页面编码格式
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");

		//获取页面请求参数
		String delOption=request.getParameter("delOption");
		String delValue=request.getParameter("delValue");

		//打印获取的页面请求参数
		System.out.println("delOption:"+delOption+"      delValue:"+delValue);

		//将jsp页面传来的参数转换成与数据库对应的参数
		if("id".equals(delOption)){
			delOption="id";
		}else if("姓名".equals(delOption)){
			delOption="userName";
		}else if("密码".equals(delOption)){
			delOption="password";
		}else if("性别".equals(delOption)){
			delOption="sex";
		}else if("年龄".equals(delOption)){
			delOption="age";
		}else if("地址".equals(delOption)){
			delOption="address";
		}

		//其实以前我创建的是Object,但是后来为了方便对sql语句的拼接,所以就改成了String类型,所以说这里用哪种都是一样能用的
		String deleteOption=delOption;
		String deleteValue=delValue;

		//打印对应的Object或者是String
		System.out.println("deleteOption:"+deleteOption+"   deleteValue:"+deleteValue);

		//执行删除方法,获取影响行数
		i=stuinfoService.delete(deleteOption,deleteValue);

		//判断数据是否删除成功
		if(i!=-1){
			System.out.println("这里是delete()方法,数据删除成功!");
		}else{
			System.out.println("这里是delete()方法,数据删除失败!");
		}

		//删除后自动跳转到查询方法,方便对于删除结果的查看
		response.sendRedirect("servletAction?action=select");

	}

	/*
	 * 插入方法
	 * */
	private void insert(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException,ServletException, IOException,NullPointerException {
		// TODO Auto-generated method stub

		//设置页面编码格式为utf-8
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");

		System.out.println("这里是插入界面!");

		//获取页面请求参数
		String userName=request.getParameter("userName");
		String password=request.getParameter("password");
		String sex=request.getParameter("sex");
		String age=request.getParameter("age");
		String address=request.getParameter("address");

		//判断userName是否存在
		if(userName!=null){

			//判断userName是否为空
			if("".equals(userName)){
				state=true;
			}

		}else{
			state=true;
		}

		//判断password是否存在
        if(password!=null){

        	//判断password是否为空
			if("".equals(password)){
				state=true;
			}

		}else{
			state=true;
		}

        //判断sex是否存在
        if(sex!=null){

        	//判断sex是否为空
			if("".equals(sex)){
				state=true;
			}

		}else{
			state=true;
		}

        //判断age是否存在
        if(age!=null){

        	//判断age是否为空
			if("".equals(age)){
				state=true;
			}

		}else{
			state=true;
		}

        //判断address是否存在
        if(address!=null){

        	//判断address是否为空
			if("".equals(address)){
				state=true;
			}

		}else{
			state=true;
		}

		/*//判断插入的数据是否存在
		if((userName!=null)&&(password!=null)&&(sex!=null)&&(age!=null)&&(address!=null)){

			//判断插入的数据是否为空
			if(("".equals(userName))&&("".equals(password))&&("".equals(sex))&&("".equals(age))&&("".equals(address))){

				//改变状态
				state=true;

			}

		}else{

			//改变状态
			state=true;

		}*/

        if("true".equals(state)){

        	response.sendRedirect("index.jsp");

        }else{

        	//在控制台打印页面请求参数
    		System.out.println("userName:"+userName+"   password:"+password+"   sex:"+sex+"   age:"+age+"   address:"+address);

        }

		//在控制台打印页面请求参数
		System.out.println("userName:"+userName+"   password:"+password+"   sex:"+sex+"   age:"+age+"   address:"+address);

		//创建String[]数组,接受页面传递的参数
		String[] object=new String[]{userName,password,sex,age,address};

		//判断参数是否存在
		if(object!=null){

			//判断参数是否为空
			if(object.length>0){

				/*//循环遍历object中的每一个元素
				//目的就是将插入的不完善信息筛选出来
				for(int i=0;i<object.length;i++){

					//判断每一个元素是否存在
					if(object[i]!=null){

						//判断每一个元素是否为空
						if("".equals(object[i])){

							//改变state状态为true
							state=true;

						}

					}else{

						//改变state状态为true
						state=true;

					}

				}*/

				if("true".equals(state)){

					//说明插入信息不全,不进行任何操作,直接返回原始页面
					response.sendRedirect("index.jsp");

				}else{

					//执行插入方法,返回影响行数
					i=stuinfoService.insert(object);

					//根据影响行数判断数据是否插入成功
					if(i!=-1){
						System.out.println("这里是insert()方法,数据插入成功!");
					}else{
						System.out.println("这里是insert()方法,数据插入失败!");
					}

					//删除后自动跳转到查询方法,方便查看删除结果
					response.sendRedirect("servletAction?action=select");

				}

			}else{

				//不进行任何操作,直接返回原始页面
				response.sendRedirect("index.jsp");

				System.out.println("这里是insert()方法,object为空数组!");

			}

		}else{

			//不进行任何操作,直接返回原始页面
			response.sendRedirect("index.jsp");

			System.out.println("这里是insert()方法,object数组不存在!");

		}

	}

	//servlet的初始化
	public void init() throws ServletException {
		// Put your code here
	}

}

mySqlConnection.java源代码:

package com.dbdao.mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.junit.Test;

public class mySqlConnection {

	//创建数据库驱动名称
	private static String Driver_class="com.mysql.jdbc.Driver";

	//数据库链接地址
	private String url="jdbc:mysql://localhost:3306/test";

	//数据库用户名
	private String user="root";

	//数据库密码
	private String password="11";

	//数据库链接
	private Connection con=null;

	//准备声明sql语句
	private PreparedStatement pstmt=null;

	//结果集
	private ResultSet rs=null;

	//影响行数
	private int i;

	/*
	 * 创建驱动
	 * */
	static{

		try {
			Class.forName(Driver_class);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	/*
	 * 加载驱动
	 * */
	@Test
	public void getConnect() {
		// TODO Auto-generated method stub
		try {
			con=DriverManager.getConnection(url, user, password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		//判断数据库是否加载成功
		if(con!=null){

			System.out.println("数据库加载成功!");

		}else{

			System.out.println("数据库加载失败!");

		}

	}

	/*
	 * 执行sql语句
	 * */
	public void doSql(String sql,Object[] object) {
		// TODO Auto-generated method stub

		//判断sql语句是否存在
		if(sql!=null){

			//加载驱动
			getConnect();

			//判断object数组是否存在
			if(object==null){

				//如果不存在,创建一个,防止出现空指针异常
				object=new Object[0];

			}

			try {

				//声明一条准备的sql语句
				pstmt=con.prepareStatement(sql);

				//为Object对象一一赋值
				for(int i=0;i<object.length;i++){

					pstmt.setObject(i+1, object[i]);

				}

				//执行声明的sql语句
				pstmt.execute();

			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}else{

			System.out.println("sql语句并不存在!");

		}

	}

	/*
	 * 获取结果集
	 * */
	public ResultSet getRS(){

		try {

			//获取结果集方法
			rs=pstmt.getResultSet();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		//返回结果集
		return rs;

	}

	/*
	 * 获取影响行数
	 * */
	public int getUpdateCount() {
		// TODO Auto-generated method stub

		try {

			//获取影响行数方法
			i=pstmt.getUpdateCount();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		//返回影响行数
		return i;

	}

	/*
	 * 关闭方法
	 * */
	public void getClose() {
		// TODO Auto-generated method stub

		//关闭结果集
		try {

			//结果集关闭方法
			if(rs!=null){

				rs.close();

			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{

			//关闭声明的sql语句
			try {

				//关闭声明的sql语句方法
				if(pstmt!=null){

					pstmt.close();

				}

			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{

				//卸载驱动
				try {

					//驱动卸载方法
					if(con!=null){

						con.close();

					}

				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			}
		}

	}

}

stuInfoService.java源代码:

package com.service;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.junit.Test;

import com.dbdao.mysql.mySqlConnection;

public class stuInfoService {

	//导入mySqlConnection类
	mySqlConnection mysqlCon=new mySqlConnection();

	//准备sql语句
	private String sql;

	//影响行数(数据变更后,影响行数都是大于0,等于0时没变更,所以说如果变更失败,那么影响行数必定为负)
	private int i=-1;

	//结果集
	private ResultSet rs;

	//创建list数组
	private List list=null;

	//判断状态
	private boolean state=false;

	/*
	 * 插入方法
	 * */
	@Test
	public int insert(String[] object) {
		// TODO Auto-generated method stub

		//创建sql语句
		sql="insert into t3 (userName,password,sex,age,address) values(?,?,?,?,?) ";

		//判断Object数组是否存在
		if(object!=null){

			//判断Object数组是否为空
			if(object.length>0){

				//执行插入方法
				mysqlCon.doSql(sql, object);

			}else{

				System.out.println("object是空数组!");

			}

		}else{

			System.out.println("object数组不存在!");

		}

		//获取影响行数
		i=mysqlCon.getUpdateCount();

		//判断是否插入成功
		if(i!=-1){
			System.out.println("数据插入成功!");
		}else{
			System.out.println("数据插入失败!");
		}

		//关闭链接
		mysqlCon.getClose();

		//返回影响行数
		return i;

	}

	/*
	 * 删除数据
	 * */
	public int delete(String deleteOption, String deleteValue) {
		// TODO Auto-generated method stub

		//创建sql语句
		sql="delete from t3 where "+deleteOption+"="+"'"+deleteValue+"' ";

		//在控制台打印拼接的sql语句
		System.out.println("sql语句为:"+sql);

		//执行sql语句
		mysqlCon.doSql(sql, null);

		//获取影响行数
		i=mysqlCon.getUpdateCount();

		//判断数据是否插入成功
		if(i!=-1){
			System.out.println("数据删除成功!");
		}else{
			System.out.println("数据删除失败!");
		}

		//关闭链接
		mysqlCon.getClose();

		//返回影响行数
		return i;

	}

	/*
	 * 更新数据
	 * */
	@Test
	public int update(String userName, String upOption, String upValue) {
		// TODO Auto-generated method stub

		//创建sql语句
		sql="update t3 set "+upOption+"="+"'"+upValue+"'"+" where userName="+"'"+userName+"'";

		//在控制台打印拼接的sql语句
		System.out.println("sql语句为:"+sql);

		//执行sql语句
		mysqlCon.doSql(sql, null);

		//获取影响行数
		i=mysqlCon.getUpdateCount();

		//判断数据是否更新成功
		if(i!=-1){
			System.out.println("数据更新成功!");
		}else{
			System.out.println("数据更新失败!");
		}

		//关闭链接
		mysqlCon.getClose();

		//返回影响行数
		return i;

	}

	/*
	 * 遍历数据
	 * */
	@SuppressWarnings("unchecked")
	@Test
	public List select(String[] keyOption, String[] valOption) {
		// TODO Auto-generated method stub

		//创建String字符串,用于拼接sql的条件语句
        String condition="";

        //循环遍历keyOption数组
		for(int i=0;i<keyOption.length;i++){

			//判断valOption[i]是否存在
            if(valOption[i].length()>0){

            	//拼接sql的条件语句
				condition=condition+keyOption[i]+"="+"'"+valOption[i]+"'"+" and ";

				//在控制台逐条打印sql的条件语句
				System.out.println(condition);

			}

		}

		//拼接完成的sql条件语句
		System.out.println("语句的拼接结果:"+condition);

		//判断condition是否为空
		if(condition.length()>0){

			//剪切拼接的sql条件语句
			condition=condition.substring(0,condition.length()-4);

		}

		//在控制台打印出来剪切后的sql的条件拼接语句
		System.out.println("剪切后的condition语句为:"+condition);

		//继续拼接成完整的sql语句
        sql="select * from t3 where "+condition;

        //在控制台打印出来拼接的完整语句
		System.out.println("完整的sql语句为:"+sql);

		//循环遍历valOption数组
		for(int i=0;i<valOption.length;i++){

			//判断valOption[i]元素是否为空
			if(valOption[i].length()>0){

				//如果不为空则将状态置为true
				state=true;

			}

		}

		//判断状态
		if(true==state){

			//如果为TRUE则不进行任何操作
			sql=sql;

		}else{

			//如果为false则将sql语句置换成新语句
			sql="select * from t3";

		}

		//在控制台打印出最适合的sql语句
		System.out.println("适合的sql语句为:"+sql);

		//执行sql语句
		mysqlCon.doSql(sql, null);

		//获取结果集
		rs=mysqlCon.getRS();

		//判断结果集是否为空
		if(rs!=null){

			try {

				//将光标移动到结果集末端,注意此处不能使用rs.afterLast();否则为空值。
				rs.last();

				//获取结果集行数
				i=rs.getRow();

				//判断结果集是否存在
				if(i>0){

					//将光标移动到结果集前端
					rs.beforeFirst();

					//创建list队列
					list=new ArrayList();

					//循环遍历所有行数
					while(rs.next()){

						//创建Map容器
						Map<String,String> map=new HashMap<String,String >();

						//遍历每行元素的内容
						String userName=rs.getString("userName");
						String password=rs.getString("password");
						String sex=rs.getString("sex");
						String age=rs.getString("age");
						String address=rs.getString("address");

						//将获取的参数放到Map容器中
						map.put("userName", userName);
						map.put("password", password);
						map.put("sex", sex);
						map.put("age", age);
						map.put("address", address);

						//将Map容器添加到list队列中
						list.add(map);

						//在控制台打印出每一行的结果
						System.out.println("userName:"+userName+"   password:"+password+"   sex:"+sex+"   age:"+age+"   address:"+address);

					}

				}else{

					System.out.println("结果集为空!");

				}

			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}else{

			System.out.println("结果集不存在!");

		}

		//关闭链接
		mysqlCon.getClose();

		//返回list队列
		return list;

	}

}

web.xml源代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>

    <servlet-name>servletAction</servlet-name>
    <servlet-class>com.action.servletAction</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>servletAction</servlet-name>
    <url-pattern>/servletAction</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

index.jsp源代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>

  <body>

   插入新的学生<br>
  <form action="servletAction?action=insert" method="post">
  姓名:<input type="text" name="userName">
  密码:<input type="password" name="password">
  性别:<select name="sex">
  <option>男</option>
  <option>女</option>
  </select>
  年龄:<input type="text" name="age" size="5">
  地址:<input type="text" name="address">
  <input type="submit" value="确定"><input type="reset" value="重置">
  </form>
 修改学生信息<br>
  <form action="servletAction?action=update" method="post">
  姓名:<input type="text" name="userName">
  <select name="upOption">
  <option>请选择</option>
  <option>姓名</option>
   <option>密码</option>
    <option>性别</option>
     <option>年龄</option>
      <option>地址</option>
  </select>
<input type="text" name="upValue" >
  <input type="submit" value="确定"><input type="reset" value="重置">
  </form>
  删除学生信息<br>
  <form action="servletAction?action=delete" method="post">
  <select name="delOption">
  <option>id</option>
  <option>姓名</option>
   <option>密码</option>
    <option>性别</option>
     <option>年龄</option>
      <option>地址</option>
  </select>
<input type="text" name="delValue" >
  <input type="submit" value="确定"><input type="reset" value="重置">
  </form>

  查询学生信息<br>
  <form action="servletAction?action=select" method="post">
  姓名:<input type="text" name="userName">
  密码:<input type="password" name="password">
  性别:<select name="sex">
  <option>请选择</option>
  <option>男</option>
  <option>女</option>
  </select>
  年龄:<input type="text" name="age" size="5">
  地址:<input type="text" name="address">
  <input type="submit" value="确定"><input type="reset" value="重置">
  </form>

  </body>
</html>

运行界面:

查询结果界面:

时间: 2025-01-02 14:23:37

servlet的增删改查的相关文章

最简单的jsp+servlet的增删改查代码

package ceet.ac.cn.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import ceet.ac.cn.model.Admin; public class AdminDao {

servlet+jsp 增删改查

个人觉得这种模式是MVC模式 先写一个类,类里面有几个属性. 写一个接口.里面有增删改查的方法.                   (写在service里) 写一个类实现这个接口(实现里面的增删改查等操作)     (写在service里) 连接数据库 写 servlet操作,  处理增删改查的信息. Jsp页面  (写页面显示或者上传,添加的页面布局等)与servlet实现交互,从而实现以上功能. 增删改查具体实例如下————  具体代码: XinxManager.java package

一个Servlet处理增删改查的方法

处理的思路是在servlet中定义不同的增删改查方法,页面请求 的时候携带请求的参数,根据参数判断调用不同的方法. package cn.xm.small.Servlet; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import javax.servlet.ServletException; import javax.servlet.annotation.

利用Servlet的增删改查

真的,稳住,考上研,利用两年逆袭.一步一步来,实在不行,最后最差也不过就是就回家种地,想想也不错. 前期准备配置 建一个动态web项目 新建Dynamic Web ProjectFile->New->Other->Web->Dynamic Web Project 新建web.xml文件并新建几个包 开始写代码 在entity在新建两个类,User(用来登录)和Hero(用来增删改查) user表和用户表,代建. 数据库连接放util中包中 package util; import

Servlet简单增删改查

前台页面是别人给的. 例子: package cn.itcast.cus.dao; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultSetHandler; import org.apache.commons.db

富文本内容简单的的增删改查

由于html本身的textarea标签的文本编辑功能较为简单,不能设置文字的样式,因此需要富文本控件来增强textarea的功能.       一些常见的富文本控件有:UEditor.kindeditor.simditor.bootstrap-wysiwyg.wangEditor.CKEditor.tinymce,各有优缺点,网上也有对不介绍,不再赘述. 此处选用tinymce,因其兼容性较好,插入页面也较为简单,此外还有丰富的插件可以扩展功能. 首先,在页面上使用tinymce:1.引入js文

Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作

此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面进行描述.参考前文: Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门 Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交 Java+MyEclipse+Tomcat (三)配置MySQL及查询数据显示在JSP网页中 Java+MyE

JavaWeb程序利用Servlet的对SQLserver增删改查操作

声明:学了几天终于将增删改查的操作掌握了,也发现了一些问题,所以总结一下. 重点:操作数据库主要用的是SQL语句跟其他无关. 一:前提知识:PreparedStatement PreperedStatement是Statement的子类,它的实例对象可以通过调用Connection.preparedStatement()方法获得,相对于Statement对象而言:PreperedStatement可以避免SQL注入的问题. Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出.P

jsp-2 简单的servlet连接mysql数据库 增删改查

连接mysql数据库的操作 有增删改查 用的包有 commons-lang3-3.5 mysql-connector-java-5.1.40-bin 但是实际上也就是 数据查询和数据处理两种 所以对数据库的操作DAO只有两种方法 package com.javaweb.dao; import java.lang.reflect.Field;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.Re