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; } }
相关推荐
在这个“利用高级表格演示易语言数据库增删改查”的主题中,我们将深入探讨如何在易语言中使用高级表格控件来实现对数据库的基本操作。 首先,我们需要理解数据库的基础概念。数据库是一种有组织地存储和检索数据的...
"vue表格增删改查"这个主题,是Vue.js应用中的一个常见场景,通常涉及到数据展示、用户交互以及后端通信等多个方面。在这个项目中,我们将深入探讨Vue.js如何实现表格的动态渲染、数据操作和用户界面的实时更新。 ...
BootstrapTable是一种...总结,BootstrapTable结合C# MVC框架,能够构建出功能完善的Web应用,提供用户交互式的表格界面,实现数据的增删改查功能。通过合理的前后端交互和数据处理,可以大大提高开发效率和用户体验。
在Bootstrap中,表格设计简洁,适应性强,尤其适合在网页上实现数据的增删改查功能。Bootstrap表格通常结合JavaScript库如jQuery和相关的插件(如jqGrid)来增强交互性,提供分页、搜索、排序等高级功能。 ...
在本项目中,我们将看到如何利用AngularJS的这些特性来实现数据的增删改查功能。 然后,RequireJS是AMD(Asynchronous Module Definition)规范的一个实现,用于解决JavaScript代码的异步加载和模块化问题。在大型...
html 增删改该例子演示了利用微软.Net框架的Web服务与天气预报站点的硬件进行数据交换来实现Web天气预报的服务。
在"jAVAfx的增删改查demo文件"中,我们可以深入学习如何利用JavaFX实现数据管理的基本操作:增加(Add)、删除(Delete)、修改(Modify)和查询(Query)。 1. **JavaFX基础** - JavaFX是Oracle JDK的一部分,...
servlet-jsp01-实现登录-增删改查"中,我们将探讨如何使用Java的JDBC(Java Database Connectivity),Servlet和JSP(JavaServer Pages)技术来构建一个完整的Web应用程序,主要功能包括用户登录以及对数据进行增、...
在项目开发中,我们经常会对某张表进行增删改查。我们根据条件刷选表中的数据放到gridview中以列表形式展现,同时给gridview添加各种样式,比如一般必用的鼠标经过,鼠标离开颜色变化,行选中等颜色加深,同时给列表...
"增删改查"是任何数据管理系统的基石。在React中,我们可以使用事件处理函数来触发这些操作。例如,当用户点击“添加”按钮时,一个handleAdd函数会被调用,负责收集表单数据并将其添加到数据列表中。同样,对于删除...
4. **创建Vue组件**:为增删改查功能,我们需要创建几个组件,如`List.vue`(展示数据列表)、`Form.vue`(添加和编辑表单)、`Dialog.vue`(确认对话框)。每个组件都有自己的模板、脚本和样式。 5. **数据绑定**...
综上所述,"bootstrap增删改查页面"的实现涵盖了Bootstrap的响应式布局、组件库、表单和表格设计、用户交互以及性能优化等多个方面,通过熟练运用这些知识点,可以构建出功能齐全、美观且易用的数据管理界面。
在IT行业中,"增删改查"(CRUD)是数据库操作的基础,代表着创建(Create)、读取(Read)、更新(Update)和删除(Delete)四种基本功能。这些操作广泛应用于各种应用程序,从简单的数据管理工具到复杂的业务系统。...
在这个“简单html增删改查”的主题中,我们主要关注如何使用HTML来实现基本的数据操作,这对于初学者来说是非常实用的入门知识。 在HTML中,增删改查通常指的是对网页上动态数据的管理,虽然HTML本身不具备动态功能...
这是通过ssm+layui 实现的简单的对数据表格的增删改查,所有页面纯由layui实现。如果你是新手学习layui,那这个绝对会对你有很大的帮助; 如果你之前已经学过甚至已经使用过,那这个可以当做一个参考
本文将深入探讨如何使用这两者来实现表格的动态增删改查以及表单验证,这对于前端开发人员来说是必备技能。 首先,HTML(HyperText Markup Language)是网页内容的基础结构,而JavaScript则负责赋予这些内容动态...
DataTable+Jquery+Bootstrap实现表格增删改查 使用DataTable+Jquery+Bootstrap实现表格增删改查
用js实现的一个增删改查,给学校javascript的同学用
为了实现增删改查功能,我们需要定义相应的JavaScript函数。例如,`addRow()`用于添加新数据,`deleteRow(index)`用于删除指定索引的数据,`editRow(index)`用于编辑指定索引的数据。在编辑操作中,我们可以弹出一个...
这个项目结合了jQuery和Bootstrap,旨在为开发者提供一个完整的Web应用解决方案,实现表格数据的增删改查功能。下面将详细阐述这些技术在实际应用中的作用和整合方式。 1. **Spring框架**:Spring是Java企业级应用...