`

【数据表格】-005-增删改查

阅读更多

1、表格增删该查界面



 

 

 

 

 

 

 

 

2、WebContent/jsp/datagrid_005.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%
	String root = request.getContextPath();
%>	
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>数据表格--增删改查</title>
<!-- 引入外部样式 -->
<link rel="stylesheet" type="text/css" href="<%=root %>/css/common.css" />
<!-- 引入easyui依赖库 -->
<script type="text/javascript" src="<%=root %>/js/jquery-easyui-1.2.6/jquery-1.7.2.min.js"></script>
<link rel="stylesheet" type="text/css" href="<%=root %>/js/jquery-easyui-1.2.6/themes/default/easyui.css" />
<link rel="stylesheet" type="text/css" href="<%=root %>/js/jquery-easyui-1.2.6/themes/icon.css" />
<script type="text/javascript" src="<%=root %>/js/jquery-easyui-1.2.6/jquery.easyui.min.js"></script>
<script type="text/javascript" src="<%=root %>/js/jquery-easyui-1.2.6/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript">
	$(function() {
		
		//自定义验证规则
		$.extend($.fn.validatebox.defaults.rules, {   
		    midLength: {   
		        validator: function(value, param){   
		            return value.length >= param[0] && value.length <= param[1];   
		        },   
		        message: ''  
		    },
		    equalLength: {   
		        validator: function(value, param){   
		            return value.length == param[0];   
		        },   
		        message: '密码必须为{0}个字符'  
		    }   
		}); 
		
		/*
			2. numberbox数字框组件
			   A、min:允许的最小值,若小于最小值,则值自动设置为最小值。
			   B、max:允许的最大值,若大于最大值,则值自动设置为最大值。
			   C、该组件继承了validatebox验证框组件,故可以使用其的属性。
			   D、precision:显示在小数点后面的最大精度。
		*/
		$('#age').numberbox({
			min:0,
			max:150,
			required:true, 
			missingMessage:'年龄必填',
			precision:0
		});
		
		/*
			3. datebox日期框组件
			  A、该组件继承了combo组件,可以使用其的editable属性
			  B、editable:定义是否用户可以往文本域中直接输入文字
			  C、combo组件继承了validatebox验证框组件,故可以使用其的required和missingMessage属性
		*/
		$('#birthday').datebox({
			required:true,
			missingMessage:'生日必填',
			editable:false
		});
		
		/*
			4. combobox下拉框组件
			 A、url:从远程加载列表数据的url。
			 B、valueField:绑定到 ComboBox的 value上的基础数据的名称,与json的key一致。
			 C、textField:绑定到combobox的text上的基础数据的名称,与json的value一致。
			 D、panelHeight:值为auto表示下拉框的高度自适应。
		*/
		$('#city').combobox({
			url:'<%=root%>/UserServlet?method=getCity',
			valueField:'id',
			textField:'name',
			required:true, 
			missingMessage:'所属城市必填',
			editable:false,
			panelHeight:'auto'
		});
		
		//numberbox数字框组件
		$('#salary').numberbox({
			min:1000,
			max:20000,
			required:true, 
			missingMessage:'薪水必填',
			precision:2
		});
		
		/*
			5. datetimebox日期时间框组件
		*/
		$('#starttime,#endtime').datetimebox({
			required:true, 
			missingMessage:'时间必填',
			editable:false
		});
		
		var flag; //判断新增或修改方法
		$('#t_user').datagrid({
			idField:'id', //标识字段,只要创建数据表格,就必须要加 idField
			url:'<%=root %>/UserServlet?method=getList', //后台访问地址
			title:'用户列表', //表格标题
			//width:1000, //表格宽度
			fit:true,
			height:400, //表格高度
			fitColumns:true, //自动扩展或收缩列的大小以适应网格宽度和防止水平滚动条
			/*
			frozenColumns:[[ //冻结列特点,会将列冻结在左边,不能与fitColumns特性一起使用
				{field:'username',title:'用户名',width:100}
			]],*/
			striped:true, //隔行换色,默认值为false
			//nowrap:true, //当true时,把数据显示在一行;当false时,数据会被换行;默认值为true
			loadMsg:'数据正在加载,请耐心等待...',
			rownumbers:true, //显示行号,默认为false
			//singleSelect:true, //当true时,只允许单选,默认为false
			//remoteSort:false, //定义是否从服务器给数据排序,默认值为true,当为false时,sortName和sortOrder设置才有效
			//sortName:'salary', //定义可以排序的列
			//sortOrder:'desc', //定义列的排序顺序,只能用'asc'或'desc'
			pagination:true, //在表格底部显示分页栏,默认为false不显示
			pageSize:5, //当设置了pagination特性时,初始化每页显示的记录数
			pageList:[5,10,15,20,50], //当设置了pagination特性时,初始化页面尺寸的选择列表,默认值[10,20,30,40,50]
			rowStyler:function(rowIndex,rowData) { //行样式设置
				if(rowData.age>25) {
					return "background:red";
				}
			},
			columns:[[ //定义对应后台传过来的列名(field),表格列的名字(title),表格宽度(width),表格列的对齐方式(align)
			    {
					field:'ck',
					width:50,
					checkbox:true
				},
			    {
			    	field:'username',
			    	title:'用户名',
			    	width:100,
			    	styler:function(value,rowData,rowIndex){ //单元格的样式函数
			    		if(value == 'admin') {
			    			return 'background:blue;';
			    		}
			    	}
			    },
				{
			    	field:'password',
			    	title:'密码',
			    	width:100,
			    	hidden:true
			    },
				{
			    	field:'age',
			    	title:'年龄',
			    	width:100,
			    	align:'right',
			    	sortable:true
			    },
				{
					field:'sex',
					title:'性别',
					width:50,
					formatter:function(value,rowData,rowIndex){ //单元格的格式化函数
						if(value == 1) {
							return '男';
						} else if(value == 2) {
							return '女';
						}
					}
				},
				{
					field:'birthday',
					title:'生日',
					width:100
				},
				{
					field:'city',
					title:'所属城市',
					width:100,
					formatter:function(value,rowData,rowIndex){ //单元格的格式化函数
						var str = '';
						$.ajax({
							type:'post',
							url:'<%=root %>/UserServlet?method=getCityName',
							cache:false,
							async:false, //同步请求
							data:{id:value},
							dataType:'json',
							success:function(result) {
								str = result.name;
							}
						});
						return str;
					}
				},
				{
					field:'salary',
					title:'薪水',
					width:100
				},
				{
					field:'starttime',
					title:'开始时间',
					width:180
				},
				{
					field:'endtime',
					title:'结束时间',
					width:180
				},
				{
					field:'description',
					title:'个人描述',
					width:150,
					formatter:function(value,rowData,rowIndex){ //单元格的格式化函数
						return '<span title='+value+'>'+value+'</span>';
					}
				}
			]],
			toolbar:[
				{
					text:'新增用户',
					iconCls:'icon-add',
					handler:function(){
						//设置新增标志,用于ajax提交时标志后台的调用方法
						flag = 'add'; 
						//设置对话框的标题为【新增用户】
						$('#mydialog').dialog({
							title:'新增用户'
						});
						//新增用户界面打开之前先清空form表单中的数据
						$('#myform').get(0).reset();
						//打开新增用户界面
						$('#mydialog').dialog('open');
					}
				},'-',{
					text:'修改用户',
					iconCls:'icon-edit',
					handler:function(){
						//设置修改标志,用于ajax提交时标志后台的调用方法
						flag = 'edit';
						var arr = $('#t_user').datagrid('getSelections');
						var len = arr.length;
						if(len == 0) {
							$.messager.alert('提示信息','至少要选择一条记录进行修改');
						} else if(len > 1){
							$.messager.alert('提示信息','只能选择一条记录进行修改');
						} else {
							//设置对话框的标题为【修改用户】
							$('#mydialog').dialog({
								title:'修改用户'
							});
							//打开修改用户界面
							$('#mydialog').dialog('open');
							//修改用户界面打开之前先清空form表单中的数据
							$('#myform').get(0).reset();
							//调用load方法把所选中的数据load到表单中
							$('#myform').form('load',{	   
								id:arr[0].id ,
								username:arr[0].username ,
								password:arr[0].password ,
								sex:arr[0].sex ,
								age:arr[0].age ,
								birthday:arr[0].birthday ,
								city:arr[0].city ,
								salary:arr[0].salary ,
								starttime:arr[0].starttime,
								endtime:arr[0].endtime ,
								description:arr[0].description
							});
						}
					}
				},'-',{
					text:'删除用户',
					iconCls:'icon-remove',
					handler:function(){
						var arr = $('#t_user').datagrid('getSelections');
						if(arr.length == 0) {
							$.messager.alert('提示信息','至少要选择一条记录进行删除');
						} else {
							$.messager.confirm('提示信息','您确定要删除吗?',function(r){
								if(r) {
									var ids = '';
									for(var i=0; i<arr.length; i++) {
										ids += arr[i].id + ",";
									}
									ids = ids.substring(0,ids.length-1);
									$.post(
										'<%=root %>/UserServlet?method=delete', //请求地址
										{ids:ids}, //向后台传入的参数
										function(result) {
											//1 刷新数据表格 
											$('#t_user').datagrid('reload');
											//2 清空idField   
											$('#t_user').datagrid('unselectAll');
											//3 给提示信息 
											$.messager.show({
												title:'提示信息' , 
												msg:'删除成功'
											});		
										}							
									);
								} else {
									return;
								}
							});
						}
					}
				},'-',{
					text:'查询用户',
					iconCls:'icon-search',
					handler:function(){
						
					}
				}
			]
		});
		
		//点击取消按钮,关闭窗口
		$('#btn2').click(function(){
			$('#mydialog').dialog('close');
		});
		
		//提交表单,新增或修改用户
		$('#btn1').click(function() {
			if($('#myform').form('validate')) {
				var method = flag=='add'?'save':'update';
				$.ajax({
					type:'post',	//请求方式
					url:'<%=root%>/UserServlet?method='+method, //请求地址
					cache:false, //是否清空缓存
					data:$('#myform').serialize(), //向后台发送的数据
					dataType:'json', //服务器返回的数据类型
					success:function(result) {
						//1.关闭窗口
						$('#mydialog').dialog('close');
						//2.刷新datagrid 
						$('#t_user').datagrid('reload');
						//3.提示信息
						$.messager.show({
							title:result.status , 
							msg :result.message
						});
					}
				});
			} else {
				$.messager.show({
					title:'提示信息',
					msg:'数据校验不通过,请先检查数据'
				});
			}
		});
		
		//查询
		$('#searchbtn').click(function(){
			$('#t_user').datagrid('load' ,serializeForm($('#mysearch')));
		});
		
		//清空
		$('#clearbtn').click(function(){
			$('#mysearch').form('clear');
			$('#t_user').datagrid('load' ,{});
		});
		
	});
	
	//js方法:序列化表单 			
	function serializeForm(form){
		var obj = {};
		$.each(form.serializeArray(),function(index){
			if(obj[this['name']]){
				obj[this['name']] = obj[this['name']] + ','+this['value'];
			} else {
				obj[this['name']] =this['value'];
			}
		});
		return obj;
	}
</script>
</head>
<body class="easyui-layout">
	<div region="north" title="用户查询" style="height:100px;padding:15px;" >
		<form id="mysearch" action="" method="post">
			用户名:<input type="text" name="username"/>
			开始时间:<input type="text" name="starttime" class="easyui-datetimebox">
			结束时间:<input type="text" name="starttime" class="easyui-datetimebox">
			<a id="searchbtn" class="easyui-linkbutton">查询</a>
			<a id="clearbtn" class="easyui-linkbutton">清空</a>
		</form>
	</div>
	<div region="center">
		<table id="t_user"></table>
	</div>
	<div id="mydialog" class="easyui-dialog" modal=true draggable=false closed=true style="width:300px;">
		<form id="myform" action="" method="post">
			<input type="hidden" name="id" value=""/>
			<table>
				<tr>
					<td>用户名:</td>
					<td><input type="text" name="username" class="easyui-validatebox" required="true" missingMessage="用户名必填" validType="midLength[2,5]" invalidMessage="用户名必须在2到5个字符之间"/></td>
				</tr>
				<tr>
					<td>密码:</td>
					<td><input type="password" name="password" class="easyui-validatebox" required="true" missingMessage="密码必填" validType="equalLength[4]" /></td>
				</tr>
				<tr>
					<td>性别:</td>
					<td>
						男<input type="radio" name="sex" checked="checked" value="1">
						女<input type="radio" name="sex" value="2">
					</td>
				</tr>
				<tr>
					<td>年龄:</td>
					<td><input id="age" type="text" name="age"></td>
				</tr>
				<tr>
					<td>出生日期:</td>
					<td><input id="birthday" type="text" name="birthday" style="width:146px;"/></td>
				</tr>
				<tr>
					<td>所属城市:</td>
					<td><input id="city" type="text" name="city" style="width:146px;"></td>
				</tr>
				<tr>
					<td>薪水:</td>
					<td><input id="salary" type="text" name="salary" /></td>
				</tr>
				<tr>
					<td>开始时间:</td>
					<td><input id="starttime" type="text" name="starttime" style="width:160px;"/></td>
				</tr>
				<tr>
					<td>结束时间:</td>
					<td><input id="endtime" type="text" name="endtime" style="width:160px;"/></td>
				</tr>
				<tr>
					<td>个人描述:</td>
					<td><input type="text" name="description" class="easyui-validatebox" required="true" missingMessage="个人描述必填" validType="midLength[5,50]" invalidMessage="个人描述必须在5到50个字符之间"/></td>
				</tr>
				<tr align="center">
					<td colspan="2">
						<a id="btn1" class="easyui-linkbutton">确认</a>
						<a id="btn2" class="easyui-linkbutton">取消</a>
					</td>
				</tr>   
			</table>
		</form>
	</div>
</body>
</html>

 

3、com.easyui.servlet.UserServlet.java

 

package com.easyui.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import com.easyui.bean.CityBean;
import com.easyui.bean.TUserBean;
import com.easyui.dao.UserDao;

/**
 * 用户控制器类
 * 
 * @author LiPiaoShui
 */
public class UserServlet extends HttpServlet {

	private static final long serialVersionUID = 9140830946116659042L;
	private UserDao uDao = new UserDao();

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String method = request.getParameter("method");
		if ("getList".equals(method)) {
			getList(request, response);
		} else if("getCityName".equals(method)) {
			getCityName(request, response);
		} else if("getCity".equals(method)) {
			getCity(request, response);
		} else if("save".equals(method)) {
			save(request, response);
		} else if("update".equals(method)) {
			update(request, response);
		} else if("delete".equals(method)) {
			delete(request, response);
		}    
	}
	
	/**
	 * 删除用户信息
	 * @param request
	 * @param response
	 */
	private void delete(HttpServletRequest request, HttpServletResponse response) {
		try {
			String[] ids = request.getParameter("ids").split(",");
			int count = 0;
			for(String id:ids) {
				count += this.uDao.deleteByUserId(Integer.parseInt(id));
			}
			String json = "{\"status\":\"提示信息\",\"message\":\"删除成功,总共删除"+count+"条记录\"}";
			if(count <= 0) {
				json = "{\"status\":\"提示信息\",\"message\":\"删除失败\"}";
			}
			response.setContentType("text/html;charset=utf-8");
			response.getWriter().write(json);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 修改用户信息
	 * @param request
	 * @param response
	 */
	private void update(HttpServletRequest request, HttpServletResponse response) {
		int id = Integer.parseInt(request.getParameter("id"));
		TUserBean user = new TUserBean();
		user = this.uDao.queryUserById(id);
		//获取前台传入的信息
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String sex = request.getParameter("sex");
		int age = Integer.parseInt(request.getParameter("age"));
		String birthday = request.getParameter("birthday");
		int city = Integer.parseInt(request.getParameter("city"));
		String salary = request.getParameter("salary");
		String starttime = request.getParameter("starttime");
		String endtime = request.getParameter("endtime");
		String description = request.getParameter("description");
		//设置用户信息
		user.setUsername(username);
		user.setPassword(password);
		user.setSex(sex);
		user.setAge(age);
		user.setBirthday(birthday);
		user.setCity(city);
		user.setSalary(salary);
		user.setStarttime(starttime);
		user.setEndtime(endtime);
		user.setDescription(description);
		try {
			//更新用户信息
			int count = uDao.update(user);
			String json = "{\"status\":\"提示信息\",\"message\":\"更新成功\"}";
			if(count != 1) {
				json = "{\"status\":\"提示信息\",\"message\":\"更新失败\"}";
			}
			response.setContentType("text/html;charset=utf-8");
			response.getWriter().write(json);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 保存用户信息
	 * @param request
	 * @param response
	 */
	private void save(HttpServletRequest request, HttpServletResponse response) {
		//获取前台传入的信息
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String sex = request.getParameter("sex");
		int age = Integer.parseInt(request.getParameter("age"));
		String birthday = request.getParameter("birthday");
		int city = Integer.parseInt(request.getParameter("city"));
		String salary = request.getParameter("salary");
		String starttime = request.getParameter("starttime");
		String endtime = request.getParameter("endtime");
		String description = request.getParameter("description");
		//设置用户信息
		TUserBean user = new TUserBean();
		user.setUsername(username);
		user.setPassword(password);
		user.setSex(sex);
		user.setAge(age);
		user.setBirthday(birthday);
		user.setCity(city);
		user.setSalary(salary);
		user.setStarttime(starttime);
		user.setEndtime(endtime);
		user.setDescription(description);
		try {
			//保存用户信息
			int count = uDao.save(user);
			String json = "{\"status\":\"提示信息\",\"message\":\"保存成功\"}";
			if(count != 1) {
				json = "{\"status\":\"提示信息\",\"message\":\"保存失败\"}";
			}
			response.setContentType("text/html;charset=utf-8");
			response.getWriter().write(json);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 获取全部城市信息
	 * @param request
	 * @param response
	 */
	private void getCity(HttpServletRequest request,
			HttpServletResponse response) {
		try {
			List<CityBean> cList = new ArrayList<CityBean>();
			cList.add(new CityBean(1,"北京"));
			cList.add(new CityBean(2,"上海"));
			cList.add(new CityBean(3,"深圳"));
			cList.add(new CityBean(4,"长春"));
			response.setContentType("text/html;charset=utf-8");
			//[{"id":1,"name":"北京"},{"id":2,"name":"上海"},{"id":3,"name":"深圳"},{"id":4,"name":"长春"}]
			response.getWriter().write(JSONArray.fromObject(cList).toString());
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 获取城市信息
	 * @param request
	 * @param response
	 */
	private void getCityName(HttpServletRequest request,
			HttpServletResponse response) {
		try {
			List<CityBean> cList = new ArrayList<CityBean>();
			cList.add(new CityBean(1,"北京"));
			cList.add(new CityBean(2,"上海"));
			cList.add(new CityBean(3,"深圳"));
			cList.add(new CityBean(4,"长春"));
			int id = Integer.parseInt(request.getParameter("id"));
			for(CityBean city:cList) {
				if(id == city.getId()) {
					response.setContentType("text/html;charset=utf-8");
					response.getWriter().write(JSONObject.fromObject(city).toString());
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 获取全部用户信息
	 * 
	 * @param request
	 * @param response
	 */
	private void getList(HttpServletRequest request,
			HttpServletResponse response) {
		try {
			//当前页码
			int currentPage = Integer.parseInt(request.getParameter("page"));
			//每页显示的大小
			int pageSize = Integer.parseInt(request.getParameter("rows"));
			//前台查询条件
			String username = request.getParameter("username") == null ? "" : request.getParameter("username");
			String starttime = request.getParameter("starttime") == null ? "" : request.getParameter("starttime");
			String endtime = request.getParameter("endtime") == null ? "" : request.getParameter("endtime");
			TUserBean user = new TUserBean();
			user.setUsername(username);
			user.setStarttime(starttime);
			user.setEndtime(endtime);
			// 获取分页显示的用户信息
			List<TUserBean> uList = uDao.queryByPagination(currentPage, pageSize, user);
			//获取总用户数
			int total = uDao.getTotal(user);
			// json格式 --> {"total":10,"rows":[{},{}]}
			String json = "{\"total\":" + total + ",\"rows\":"
					+ JSONArray.fromObject(uList).toString() + "}";
			response.setContentType("text/html;charset=utf-8");
			response.getWriter().write(json);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

4、com.easyui.dao.UserDao.java

 

package com.easyui.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 com.easyui.bean.TUserBean;
import com.easyui.util.DBUtil;

/**
 * 用户数据库操作类 
 * @author LiPiaoShui
 */
public class UserDao {

	/**
	 * 获取全部用户信息
	 * @return
	 */
	public List<TUserBean> getList() {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		List<TUserBean> uList = new ArrayList<TUserBean>();
		try {
			String sql = "select * from t_user";
			conn = DBUtil.getConnection();
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			while(rs.next()) {
				TUserBean user = new TUserBean();
				user.setId(rs.getInt("id"));
				user.setUsername(rs.getString("username"));
				user.setPassword(rs.getString("password"));
				user.setSex(rs.getString("sex"));
				user.setAge(rs.getInt("age"));
				user.setBirthday(rs.getString("birthday"));
				user.setCity(rs.getInt("city"));
				user.setSalary(rs.getString("salary"));
				user.setStarttime(rs.getString("starttime"));
				user.setEndtime(rs.getString("endtime"));
				user.setDescription(rs.getString("description"));
				uList.add(user);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBUtil.close(rs, pstmt, conn);
		}
		return uList;
	}
	
	/**
	 * 分页显示用户信息
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	public List<TUserBean> queryByPagination(int currentPage,int pageSize, TUserBean userBean) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		List<TUserBean> uList = new ArrayList<TUserBean>();
		try {
			String sql = "select * from t_user where 1=1";
			if(!"".equals(userBean.getUsername().trim())) {
				sql += " and username like '%" + userBean.getUsername() + "%'";
			}
			if(!"".equals(userBean.getStarttime().trim())) {
				sql += " and starttime >= '" + userBean.getStarttime() + "'";
			}
			if(!"".equals(userBean.getEndtime().trim())) {
				sql += " and endtime >= '" + userBean.getEndtime() + "'";
			}
			sql += " limit ?,?";
			conn = DBUtil.getConnection();
			pstmt = conn.prepareStatement(sql);
			pstmt.setInt(1, (currentPage-1)*pageSize);
			pstmt.setInt(2, pageSize);
			rs = pstmt.executeQuery();
			while(rs.next()) {
				TUserBean user = new TUserBean();
				user.setId(rs.getInt("id"));
				user.setUsername(rs.getString("username"));
				user.setPassword(rs.getString("password"));
				user.setSex(rs.getString("sex"));
				user.setAge(rs.getInt("age"));
				user.setBirthday(rs.getString("birthday"));
				user.setCity(rs.getInt("city"));
				user.setSalary(rs.getString("salary"));
				user.setStarttime(rs.getString("starttime"));
				user.setEndtime(rs.getString("endtime"));
				user.setDescription(rs.getString("description"));
				uList.add(user);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBUtil.close(rs, pstmt, conn);
		}
		return uList;
	}
	
	/**
	 * 获取总用户数
	 * @return
	 */
	public int getTotal(TUserBean userBean) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		int total = 0;
		try {
			String sql = "select count(1) from t_user where 1=1";
			if(!"".equals(userBean.getUsername().trim())) {
				sql += " and username like '%" + userBean.getUsername() + "%'";
			}
			if(!"".equals(userBean.getStarttime().trim())) {
				sql += " and starttime >= '" + userBean.getStarttime() + "'";
			}
			if(!"".equals(userBean.getEndtime().trim())) {
				sql += " and endtime >= '" + userBean.getEndtime() + "'";
			}
			conn = DBUtil.getConnection();
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			if(rs.next()) {
				total = rs.getInt(1);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBUtil.close(rs, pstmt, conn);
		}
		return total;
	}
	
	/**
	 * 保存用户信息
	 * @param user
	 * @return
	 */
	public int save(TUserBean user) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		int count = 0;
		try {
			String sql = "insert into t_user(username,password,sex,age,birthday,city,"
					+ "salary,starttime,endtime,description) value(?,?,?,?,?,?,?,?,?,?)";
			conn = DBUtil.getConnection();
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, user.getUsername());
			pstmt.setString(2, user.getPassword());
			pstmt.setString(3, user.getSex());
			pstmt.setInt(4, user.getAge());
			pstmt.setString(5, user.getBirthday());
			pstmt.setInt(6, user.getCity());
			pstmt.setString(7, user.getSalary());
			pstmt.setString(8, user.getStarttime());
			pstmt.setString(9, user.getEndtime());
			pstmt.setString(10, user.getDescription());
			count = pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBUtil.close(null, pstmt, conn);
		}
		return count;
	}

	/**
	 * 根据用户ID查询用户信息
	 * @param id
	 * @return
	 */
	public TUserBean queryUserById(int id) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		TUserBean user = new TUserBean();
		try {
			String sql = "select * from t_user where id=?";
			conn = DBUtil.getConnection();
			pstmt = conn.prepareStatement(sql);
			pstmt.setInt(1, id);
			rs = pstmt.executeQuery();
			if(rs.next()) {
				user.setId(rs.getInt("id"));
				user.setUsername(rs.getString("username"));
				user.setPassword(rs.getString("password"));
				user.setSex(rs.getString("sex"));
				user.setAge(rs.getInt("age"));
				user.setBirthday(rs.getString("birthday"));
				user.setCity(rs.getInt("city"));
				user.setSalary(rs.getString("salary"));
				user.setStarttime(rs.getString("starttime"));
				user.setEndtime(rs.getString("endtime"));
				user.setDescription(rs.getString("description"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBUtil.close(rs, pstmt, conn);
		}
		return user;
	}
	
	/**
	 * 更新用户信息
	 * @param user
	 * @return
	 */
	public int update(TUserBean user) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		int count = 0;
		try {
			String sql = "update t_user set username=?,password=?,sex=?,age=?,birthday=?,city=?,"
					+ "salary=?,starttime=?,endtime=?,description=? where id=?";
			conn = DBUtil.getConnection();
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, user.getUsername());
			pstmt.setString(2, user.getPassword());
			pstmt.setString(3, user.getSex());
			pstmt.setInt(4, user.getAge());
			pstmt.setString(5, user.getBirthday());
			pstmt.setInt(6, user.getCity());
			pstmt.setString(7, user.getSalary());
			pstmt.setString(8, user.getStarttime());
			pstmt.setString(9, user.getEndtime());
			pstmt.setString(10, user.getDescription());
			pstmt.setInt(11, user.getId());
			count = pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBUtil.close(null, pstmt, conn);
		}
		return count;
	}
	
	/**
	 * 根据用户ID删除用户信息
	 * @param id
	 * @return
	 */
	public int deleteByUserId(int id) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		int count = 0;
		try {
			String sql = "delete from t_user where id=?";
			conn = DBUtil.getConnection();
			pstmt = conn.prepareStatement(sql);
			pstmt.setInt(1, id);
			count = pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBUtil.close(null, pstmt, conn);
		}
		return count;
	}
}

 

 

  • 大小: 62.3 KB
  • 大小: 86.7 KB
  • 大小: 77.5 KB
  • 大小: 77.5 KB
  • 大小: 86.9 KB
  • 大小: 77.9 KB
  • 大小: 80.3 KB
  • 大小: 64.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics