您的位置:首页 > 其它

servlet的增删改查

2015-05-28 20:31 281 查看
这是一个简单的servlet增删改查界面

t3.sql数据库:

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

/*!40101 SET NAMES utf8 */;

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

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@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 SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_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>


运行界面:



查询结果界面:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: