• Layui数据表格的使用及其ajax异步请求


    目录

    一、数据表格table 通过id来获取,动态获取

    二、通过js动态获取数据表格数据,包括数据单元格的查看、编辑、删除

    三、通过ajax实现局部刷新刷新(ajax异步请求)重点解决无法获取输入框的问题

    四、Servlet+分页查询

    五、封装json数据,不然 layui框架那边无法获取数据

    六、底层数据逻辑以及实体类


    一、数据表格table 通过id来获取,动态获取

    <table  class="layui-hide" id="demo" lay-filter="test" >

    二、通过js动态获取数据表格数据,包括数据单元格的查看、编辑、删除

    1. <script type="text/html" id="barDemo">
    2. <%-- <div class="layui-btn-container">--%>
    3. <%-- <button type="button" class="layui-btn layui-btn-primary layui-btn-radius">原始按钮</button>--%>
    4. <%-- <button type="button" class="layui-btn layui-btn-radius">默认按钮</button>--%>
    5. <%-- <button type="button" class="layui-btn layui-btn-normal layui-btn-radius">百搭按钮</button>--%>
    6. <%-- <button type="button" class="layui-btn layui-btn-warm layui-btn-radius">暖色按钮</button>--%>
    7. <%-- <button type="button" class="layui-btn layui-btn-danger layui-btn-radius">警告按钮</button>--%>
    8. <%-- <button type="button" class="layui-btn layui-btn-disabled layui-btn-radius">禁用按钮</button>--%>
    9. <%-- </div>--%>
    10. <%--layui-btn layui-btn-xs layui-btn-normal--%>
    11. <a class="layui-btn layui-btn-xs layui-btn-normal layui-btn-radius" lay-event="detail">查看</a>
    12. <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    13. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    14. </script>

    动态获取表格

    1. <script src="/layui/layui.js"></script>
    2. <script src="/layui/layui.all.js"></script>
    3. <script src="/assets/js/jquery.js" type="text/javascript"></script>
    4. <script src="/assets/js/jquery.form.js" type="text/javascript"></script>
    5. <script src="/layuiadmin/layui/layui.all.js"></script>
    6. <script src="/layuiadmin/layui/layui.js"></script>
    7. <script type="text/javascript"></script>
    8. layui.use('table', function(){
    9. var table = layui.table;
    10. var dropdown = layui.dropdown;
    11. //第一个实例sousuo
    12. table.render({
    13. elem: '#demo'
    14. // ,toolbar: '#toolbarDemo'
    15. ,height: 'full-160'
    16. // ,height: 'full-200' // 最大高度减去其他容器已占有的高度差
    17. ,cellMinWidth: 100
    18. ,url: '/ceshi?action=query' //数据接口//直接调用不需要跳转
    19. ,page: true //开启分页
    20. // ,totalRow: true // 开启合计行得在前端传输数据:count//下面会多出空格//totalRowText: "合计"
    21. ,cols: [[ //表头
    22. {type: 'checkbox', fixed: 'left',width: 80,align: 'center',totalRowText: "合计"}
    23. ,{field: 'eId', title: '编号', width:80, sort: true, fixed: 'left'}
    24. ,{field: 'eAccount', title: '账户', width:80}
    25. ,{field: 'ePassword', title: '密码', width:80, sort: true}
    26. ,{field: 'eName', title: '姓名', width:80, sort: true}
    27. ,{field: 'eSex', title: '性别', width:80, sort: true}
    28. ,{field: 'eEducation', title: '学历', width:80, sort: true}
    29. ,{field: 'dName', title: '部门', width:120, sort: true}
    30. ,{field: 'ePosition', title: '职称', width:80, sort: true}
    31. ,{field: 'eIdcard', title: '身份证号码', width:180, sort: true}
    32. ,{field: 'ePhone', title: '手机号码', width:120, sort: true}
    33. ,{field: 'eAddress', title: '家庭地址', width:120, sort: true}
    34. ,{field: 'eEntrytime', title: '入职时间', width:120, sort: true}
    35. ,{fixed: 'right', title:'操作', width: 200, minWidth: 125, toolbar: '#barDemo'}
    36. ]]
    37. // , page:true
    38. ,limit:10
    39. ,limits:[5,10,20,30,40,50]
    40. , parseData: function (res) { //res 即为原始返回的数据
    41. console.log("成功"+res.status+";=="+res.message+";"+res.total);
    42. return {
    43. "code": res.status, //解析接口状态
    44. "msg": res.message, //解析提示文本
    45. "count": res.total, //解析数据长度
    46. "data": res.data //解析数据列表
    47. };
    48. }
    49. ,done: function(){
    50. var id = this.id;
    51. }
    52. ,error: function(res, msg){
    53. console.log(res, msg)
    54. }
    55. });
    56. // 工具栏事件
    57. table.on('toolbar(test)', function(obj){
    58. var id = obj.config.id;
    59. var checkStatus = table.checkStatus(id);
    60. var othis = lay(this);
    61. switch(obj.event){
    62. case 'getCheckData':
    63. var data = checkStatus.data;
    64. layer.alert(layui.util.escape(JSON.stringify(data)));
    65. break;
    66. case 'getData':
    67. var getData = table.getData(id);
    68. console.log(getData);
    69. layer.alert(layui.util.escape(JSON.stringify(getData)));
    70. break;
    71. case 'isAll':
    72. layer.msg(checkStatus.isAll ? '全选': '未全选')
    73. break;
    74. case 'multi-row':
    75. table.reload('test', {
    76. // 设置行样式,此处以设置多行高度为例。若为单行,则没必要设置改参数 - 注:v2.7.0 新增
    77. lineStyle: 'height: 95px;'
    78. });
    79. layer.msg('即通过设置 lineStyle 参数可开启多行');
    80. break;
    81. case 'default-row':
    82. table.reload('test', {
    83. lineStyle: null // 恢复单行
    84. });
    85. layer.msg('已设为单行');
    86. break;
    87. case 'LAYTABLE_TIPS':
    88. layer.alert('Table for layui-v'+ layui.v);
    89. break;
    90. };
    91. });
    92. //触发单元格工具事件
    93. table.on('tool(test)', function(obj){ // 双击 toolDouble
    94. var data = obj.data;//获取当前的行的数据
    95. //obj.data :获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
    96. console.log(obj.data)
    97. //console.log(obj)
    98. if(obj.event === 'detail'){ //查看
    99. layer.alert('编号:'+ data.eId +"<br/>"+'账户:'+data.eAccount+"<br/>"+'密码:'+data.ePassword+"<br/>"+
    100. '姓名:' +data.eName+"<br/>"+'性别:' +data.eSex +"<br/>"+'学历:'+data.eEducation +"<br/>"+'部门:'
    101. +data.dName +"<br/>"+'职称:'+data.ePosition +"<br/>"+'身份证号码:'+data.eIdcard +"<br/>"+'手机号码:'
    102. +data.ePhone +"<br/>"+'家庭地址:'+data.eAddress +"<br/>"+'入职时间:'+data.eEntrytime);
    103. }else if(obj.event === 'del'){
    104. layer.confirm('真的删除员工吗?', function(index){
    105. console.log(index)
    106. console.log(data.eId)
    107. obj.del();
    108. // location.href="updatebyid?flag=all&eId="+eid;
    109. // location.href="updatebyid?flag=all&eId="+eid+"&xxx"+xxx;
    110. // location.href="updatetongyi?eId="+userId;
    111. location.href = "/newsWork?action=delwork&eId="+data.eId;
    112. layer.close(index);
    113. });
    114. } else if(obj.event === 'edit'){
    115. layer.open({
    116. title: '编辑',
    117. type: 1,
    118. area: ['80%','80%'],
    119. content: '<div class="site-text" style="margin: 5px; display: none" id="window" target="test123">' +
    120. '<form action="/newsWork?action=add" method="post" class="layui-form" id="book" lay-filter="example" style="margin: 25px;width: 500px"> ' +
    121. '<div class="layui-form-item"> ' +
    122. '<div class="layui-col-md6">' +
    123. '<label class="layui-form-label" >账号</label> ' +
    124. '<div class="layui-input-block"> ' +
    125. '<input type="text" id="bid" name="eAccount" lay-verify="title" autocomplete="off" placeholder="请输入账号" class="layui-input"> ' +
    126. '</div> </div>' +
    127. '<div class="layui-col-md6">' +
    128. '<div class="layui-form-item"> ' +
    129. '<label class="layui-form-label">姓名</label> ' +
    130. '<div class="layui-input-block"> ' +
    131. '<input type="text" id="name" name="eName" lay-verify="title" autocomplete="off" placeholder="请输入姓名" class="layui-input"> ' +
    132. '</div> </div> </div> </div> ' +
    133. '<div class="layui-form-item"> ' +
    134. '<div class="layui-col-md6"> ' +
    135. '<label class="layui-form-label" >性别</label> ' +
    136. '<div class="layui-input-block"> ' +
    137. '<select id="select" class="form-control" name="eSex" style="width:212px;height:38px;" > ' +
    138. '<option value="">请选择</option> ' +
    139. '<option value="男">男</option> ' +
    140. '<option value="女">女</option> ' +
    141. '</select> </div> </div> ' +
    142. '<div class="layui-col-md6"> ' +
    143. '<div class="layui-form-item"> ' +
    144. '<label class="layui-form-label">学历</label> ' +
    145. '<div class="layui-input-block"> ' +
    146. '<select id="select2" name="eEducation" class="form-control" style="width:212px;height:38px;" > ' +
    147. '<option value="">请选择</option> ' +
    148. '<option value="硕士">硕士</option> ' +
    149. '<option value="本科">本科</option> ' +
    150. '<option value="大专">大专</option> ' +
    151. '<option value="高中">高中</option> ' +
    152. '<option value="小学">小学</option> </select> </div> </div> </div> </div> ' +
    153. '<div class="layui-form-item"> <div class="layui-col-md6"> ' +
    154. '<label class="layui-form-label" >部门</label> ' +
    155. '<div class="layui-input-block"> ' +
    156. '<select id="select" class="form-control" name="dDid" style="width:212px;height:38px;" > ' +
    157. '<option value="">请选择</option> ' +
    158. '<option value="1">新闻审核部</option> ' +
    159. '<option value="2">人力资源部</option> ' +
    160. '<option value="后勤管理部">后勤管理部</option> ' +
    161. '<option value="技术研发部">技术研发部</option> ' +
    162. '<option value="市场营销部">市场营销部</option> ' +
    163. '</select> </div></div>' +
    164. ' <div class="layui-col-md6"> <div class="layui-form-item"> ' +
    165. '<label class="layui-form-label">职位</label> ' +
    166. '<div class="layui-input-block"> ' +
    167. '<select id="select2" name="ePosition" class="form-control" style="width:212px;height:38px;" > ' +
    168. '<option value="">请选择</option> ' +
    169. '<option value="经理">经理</option> ' +
    170. '<option value="副经理">副经理</option> ' +
    171. '<option value="总监">总监</option> ' +
    172. '<option value="副总监">副总监</option> ' +
    173. '<option value="普通员工">普通员工</option> </select> </div></div></div> </div> ' +
    174. '<div class="layui-form-item"> ' +
    175. '<div class="layui-col-md6"> ' +
    176. '<label style="float:left;display:block;padding-top: 9px;padding-bottom:9px; padding-right:-25px;width:100px;font-weight:400;line-height:20px;text-align:right">身份证号码</label> ' +
    177. '<div class="layui-input-block"> ' +
    178. '<input type="text" id="id" name="eIdcard" lay-verify="title" autocomplete="off" placeholder="请输入身份证号码" class="layui-input"> ' +
    179. '</div> ' +
    180. '</div> ' +
    181. '<div class="layui-col-md6">' +
    182. ' <div class="layui-form-item"> ' +
    183. '<label class="layui-form-label">入职时间</label> ' +
    184. '<div class="layui-input-block"> ' +
    185. '<input id="test2" type="text" name="eEntrytime" lay-verify="title" autocomplete="off" placeholder="请选择入职时间" class="layui-input"> ' +
    186. '</div> ' +
    187. '</div></div> </div> ' +
    188. '<div class="layui-form-item"> <div class="layui-col-md6"> ' +
    189. '<label class="layui-form-label" >手机号码</label> ' +
    190. '<div class="layui-input-block"> ' +
    191. '<input type="text" id="ePhone" name="ePhone" lay-verify="title" autocomplete="off" placeholder="请输入手机号码" class="layui-input"> ' +
    192. '</div> </div> ' +
    193. '<div class="layui-col-md6"> ' +
    194. '<div class="layui-form-item"> ' +
    195. '<label class="layui-form-label">家庭地址</label> ' +
    196. '<div class="layui-input-block"> ' +
    197. '<input type="text" id="eAddress" name="eAddress" lay-verify="title" autocomplete="off" placeholder="请输入家庭地址" class="layui-input"> ' +
    198. '</div> </div> </div> </div> ' +
    199. '<div class="layui-form-item" style="float: left;margin-left: 250px"> ' +
    200. '<div class="layui-input-block"> ' +
    201. '<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="demo1">确认</button> ' +
    202. '</div> ' +
    203. '</div> ' +
    204. '<button href="/queryStaff" type="button" class="layui-btn layui-btn-primary" style="float: left;margin-left: 10px">返回</button> ' +
    205. '</form> </div>'
    206. });
    207. }
    208. });
    209. //触发表格复选框选择
    210. table.on('checkbox(test)', function(obj){
    211. console.log(obj)
    212. });
    213. //触发表格单选框选择
    214. table.on('radio(test)', function(obj){
    215. console.log(obj)
    216. });
    217. // 行单击事件
    218. table.on('row(test)', function(obj){
    219. //console.log(obj);
    220. //layer.closeAll('tips');
    221. });
    222. // 行双击事件
    223. table.on('rowDouble(test)', function(obj){
    224. console.log(obj);
    225. });
    226. // 单元格编辑事件
    227. table.on('edit(test)', function(obj){
    228. var field = obj.field //得到字段
    229. ,value = obj.value //得到修改后的值
    230. ,data = obj.data; //得到所在行所有键值
    231. var update = {};
    232. update[field] = value;
    233. obj.update(update);
    234. });
    235. });

    三、通过ajax实现局部刷新刷新(ajax异步请求)重点解决无法获取输入框的问题

    1. <div style="float:left;margin-left:600px;margin-bottom: 20px;margin-top: 20px">
    2. <%--<textarea name="comment" id="message" placeholder="请注意评论礼仪!"></textarea>--%>
    3. <input id="serch" type="text" name="eName" required lay-verify="required" placeholder="请输入员工姓名" autocomplete="off" class="layui-input">
    4. </div>
    5. <button type="submit" id="123" class="layui-btn layui-btn-normal layui-btn-radius" style="float:left;margin-left:15px;margin-top: 20px">搜索</button>
    1. layui.use(['form', 'jquery', 'layer'], function () {
    2. var form = layui.form;
    3. var $ = layui.$;
    4. var layer = layui.layer;
    5. let serch = $("#serch").val();
    6. //通过点击事件获取。不然获取不了input里面的值
    7. $(function () {
    8. $("#123").click(function () {
    9. // alert($("textarea[name='comment']").val());
    10. // console.log($("textarea[name='comment']").val())
    11. alert($("input[name='eName']").val());
    12. console.log($("input[name='eName']").val())
    13. let action = $("input[name='eName']").val()
    14. console.log(action)
    15. $.ajax( {
    16. url : "/ceshi?action=mohu&eName="+action, // 要提交的URL路径
    17. type : "post", // 发送请求的方式
    18. // 要发送到服务器的数据
    19. dataType: "JSON", // 指定传输的数据格式
    20. beforeSend: function() { //请求之前的方法
    21. },
    22. success : function(result) {
    23. let d = result;
    24. console.log(result)
    25. console.log(d)
    26. console.log(d.data.eId)
    27. console.log(result.data.eId)
    28. layui.use(['form','jquery','table','layer'],function(){
    29. var form = layui.form;
    30. var $ = layui.jquery;
    31. var table = layui.table;
    32. var layer = layui.layer;
    33. table.render({
    34. elem:"#demo",
    35. data:d
    36. ,height: 'full-160'
    37. // ,height: 'full-200' // 最大高度减去其他容器已占有的高度差
    38. ,cellMinWidth: 100
    39. ,page: true, //开启分页c
    40. url : "/ceshi?action=mohu&eName="+action,//调用接
    41. cols: [[ //表头
    42. {
    43. type: 'checkbox', fixed: 'left',width: 80,align: 'center',totalRowText: "合计"}
    44. ,{field: "eId", title: '编号', width:80, sort: true, fixed: 'left'}
    45. ,{field: 'eAccount', title: '账户', width:80}
    46. ,{field: 'ePassword', title: '密码', width:80, sort: true}
    47. ,{field: 'eName', title: '姓名', width:80, sort: true}
    48. ,{field: 'eSex', title: '性别', width:80, sort: true}
    49. ,{field: 'eEducation', title: '学历', width:80, sort: true}
    50. ,{field: 'dName', title: '部门', width:120, sort: true}
    51. ,{field: 'ePosition', title: '职称', width:80, sort: true}
    52. ,{field: 'eIdcard', title: '身份证号码', width:180, sort: true}
    53. ,{field: 'ePhone', title: '手机号码', width:120, sort: true}
    54. ,{field: 'eAddress', title: '家庭地址', width:120, sort: true}
    55. ,{field: 'eEntrytime', title: '入职时间', width:120, sort: true}
    56. ,{fixed: 'right', title:'操作', width: 200, minWidth: 125, toolbar: '#barDemo'}
    57. ]],
    58. parseData: function(d) { //res 即为原始返回的数据
    59. return {
    60. "code": 0, //解析接口状态
    61. "msg": "ok", //解析提示文本
    62. "count": 100, //解析数据长度
    63. "data": d //解析数据列表
    64. }
    65. }
    66. });
    67. });
    68. // 请求成功后要执行的代码
    69. console.log("成功")
    70. },
    71. error : function() { // 请求失败后要执行的代码
    72. console.log("失败")
    73. }
    74. } );
    75. })
    76. })
    77. // let aaa =$("textarea[name='comment']").val()
    78. // console.log($("textarea[name='comment']").val())
    79. // console.log("=="+aaa)
    80. // console.log(serch)
    81. // console.log(form)
    82. // console.log(form)
    83. // console.log(form)
    84. // console.log($("[name='eName']").val())
    85. // var a= document.getElementById("chaxun").innerText
    86. // var a= document.getElementById("chaxun").innerHTML
    87. // alert(a);
    88. // console.log("xx")
    89. // console.log(a)
    90. // console.log("xx")
    91. // console.log("xx")
    92. });

    四、Servlet+分页查询

    1. package com.lingnan.servlet;
    2. import com.alibaba.fastjson.JSON;
    3. import com.lingnan.dao.impl.NewsWorkersDaoImpl;
    4. import com.lingnan.pojo.DataJson;
    5. import com.lingnan.pojo.NewsWorker;
    6. import com.lingnan.pojo.TableJson;
    7. import javax.servlet.ServletException;
    8. import javax.servlet.annotation.WebServlet;
    9. import javax.servlet.http.HttpServlet;
    10. import javax.servlet.http.HttpServletRequest;
    11. import javax.servlet.http.HttpServletResponse;
    12. import java.io.IOException;
    13. import java.io.PrintWriter;
    14. import java.util.ArrayList;
    15. import java.util.HashMap;
    16. import java.util.List;
    17. /**
    18. * @author :小邓
    19. * @date :Created in 2022/7/4 14:58
    20. * @description:单单
    21. * @modified By:
    22. * @version: 1.0
    23. */
    24. @WebServlet("/ceshi")
    25. public class ceshiServlet extends HttpServlet {
    26. @Override
    27. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    28. String action = req.getParameter("action");
    29. System.out.println(action);
    30. String page = req.getParameter("page");
    31. String limit = req.getParameter("limit");
    32. System.out.println("第几页"+page+"几条"+limit);
    33. if ( action.equals("mohu") ){
    34. req.setCharacterEncoding("UTF8");
    35. req.setCharacterEncoding("utf-8");//设置请求的编码格式为gb2312
    36. resp.setContentType("text/html;charset=utf-8");//解决插入乱码问题顺序要放好
    37. String eName = req.getParameter("eName");
    38. System.out.println(eName);
    39. List<NewsWorker> newsWorkers = new NewsWorkersDaoImpl().queryWorkByName(eName);
    40. List<NewsWorker> workers = new ArrayList<>();
    41. for ( int j = 0;j<newsWorkers.size();j++ ){
    42. if ( newsWorkers.get(j).getFlag()==0 ){
    43. System.out.println(newsWorkers.get(j).getFlag()==0);
    44. workers.add(newsWorkers.get(j));
    45. }
    46. }
    47. TableJson<NewsWorker> objectTableJson = new TableJson<>();
    48. //封装json
    49. objectTableJson.setCode(0);
    50. objectTableJson.setMsg("OK");
    51. // objectTableJson.setData(newsWorkers);
    52. objectTableJson.setData(workers);
    53. objectTableJson.setCount(workers.size());
    54. System.out.println(objectTableJson);
    55. String s = JSON.toJSONString(objectTableJson);//转换为json数据
    56. PrintWriter writer = resp.getWriter();
    57. writer.println(s);
    58. // TableJson<NewsWorker> objectTableJson = new TableJson<>();
    59. // //封装json
    60. // objectTableJson.setCode(0);
    61. // objectTableJson.setMsg("OK");
    62. // objectTableJson.setData(newsWorkers);
    63. // objectTableJson.setCount(newsWorkers.size());
    64. // System.out.println(objectTableJson);
    65. // String s = JSON.toJSONString(objectTableJson);//转换为json数据
    66. // PrintWriter writer = resp.getWriter();
    67. // writer.println(s);
    68. }else {
    69. req.setCharacterEncoding("UTF8");
    70. req.setCharacterEncoding("utf-8");//设置请求的编码格式为gb2312
    71. resp.setContentType("text/html;charset=utf-8");//解决插入乱码问题顺序要放好
    72. //解决网页乱码的问题
    73. List<NewsWorker> newsWorkers = new NewsWorkersDaoImpl().queryWork();
    74. int size = newsWorkers.size();
    75. System.out.println("数据:"+size);
    76. List<NewsWorker> workers = new ArrayList<>();//新建一个数组来存放分页查询的数据
    77. int x = Integer.parseInt(page) * Integer.parseInt(limit)-Integer.parseInt(limit);
    78. System.out.println(x);
    79. for(int i = x;(i<size) && ((i-x)<Integer.parseInt(limit));i++){
    80. //按在也是获取数据把它加入新建的数组里面
    81. // System.out.println(i);
    82. // System.out.println(newsWorkers.get(i));
    83. if ( newsWorkers.get(i).getFlag()==0 ){
    84. System.out.println(newsWorkers.get(i).getFlag()==0);
    85. workers.add(newsWorkers.get(i));
    86. }
    87. }
    88. TableJson<NewsWorker> objectTableJson = new TableJson<>();
    89. //封装json
    90. objectTableJson.setCode(0);
    91. objectTableJson.setMsg("OK");
    92. // objectTableJson.setData(newsWorkers);
    93. objectTableJson.setData(workers);
    94. objectTableJson.setCount(workers.size());
    95. System.out.println(objectTableJson);
    96. String s = JSON.toJSONString(objectTableJson);//转换为json数据
    97. PrintWriter writer = resp.getWriter();
    98. writer.println(s);//把json数据传输到网页中
    99. }
    100. }
    101. @Override
    102. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    103. this.doGet(req,resp);
    104. }
    105. }

    五、封装json数据,不然 layui框架那边无法获取数据

    1. package com.lingnan.pojo;
    2. import lombok.Data;
    3. import java.util.List;
    4. import java.util.Map;
    5. /**
    6. * @author :小邓
    7. * @date :Created in 2022/7/2 12:38
    8. * @description:11
    9. * @modified By:
    10. * @version: 1.0
    11. */
    12. @Data
    13. public class TableJson<T> {
    14. private Integer code ;
    15. private String msg ;
    16. private List<T> data;
    17. private int count;
    18. }

    六、底层数据逻辑以及实体类

    1. package com.lingnan.dao.impl;
    2. import com.lingnan.dao.NewsWorkersDao;
    3. import com.lingnan.pojo.NewsWorker;
    4. import com.lingnan.util.DataBase;
    5. import javax.servlet.http.HttpServlet;
    6. import java.sql.ResultSet;
    7. import java.sql.SQLException;
    8. import java.util.ArrayList;
    9. import java.util.List;
    10. /**
    11. * @author :小邓
    12. * @date :Created in 2022/7/3 14:07
    13. * @description:shitilei
    14. * @modified By:
    15. * @version: 1.0
    16. */
    17. public class NewsWorkersDaoImpl implements NewsWorkersDao {
    18. @Override
    19. public List<NewsWorker> queryWork() {
    20. List<NewsWorker> list = new ArrayList<NewsWorker>();
    21. String sql = "select e_id, e_account, e_password, e_name, e_sex, e_education,d_name, e_position, e_idcard, " +
    22. " e_phone, e_address, e_entrytion, e_role,flag" +
    23. " from news_worker inner join news_department on news_worker.d_id = news_department.d_id";
    24. // String sql="select * from news_worker";
    25. ResultSet rs= DataBase.myQuery(sql, null);
    26. try {
    27. while (rs.next()){
    28. //必须得放在里面,不然只是存储最后一条
    29. NewsWorker allwork = new NewsWorker();
    30. allwork.setEId(rs.getInt("e_id"));
    31. // System.out.println(rs.getInt("e_id"));
    32. allwork.setEAccount(rs.getString("e_account"));
    33. allwork.setEPassword(rs.getString("e_password"));
    34. allwork.setEName(rs.getString("e_name"));
    35. allwork.setESex(rs.getString("e_sex"));
    36. allwork.setEEducation(rs.getString("e_education"));
    37. allwork.setDName(rs.getString("d_name"));
    38. allwork.setEPosition(rs.getString("e_position"));
    39. allwork.setEIdcard(rs.getString("e_idcard"));
    40. allwork.setEPhone(rs.getString("e_phone"));
    41. allwork.setEAddress(rs.getString("e_address"));
    42. allwork.setEEntrytime(rs.getString("e_entrytion"));
    43. allwork.setERole(rs.getInt("e_role"));
    44. allwork.setFlag(rs.getInt("flag"));
    45. list.add(allwork);
    46. // System.out.println(allwork);
    47. }
    48. }
    49. catch (SQLException e) {
    50. e.printStackTrace();
    51. }
    52. return list;
    53. }
    54. @Override
    55. public int insertWork(NewsWorker newsWorker) {
    56. String sql = "insert into news_worker\n" +
    57. " (e_id,e_account, e_password, e_name, e_sex,\n" +
    58. " e_education, d_id, e_position, e_idcard,\n" +
    59. " e_phone, e_address, e_entrytion) values (?,?,?,?,?,?,?,?,?,?,?,?)";
    60. Object [] parms ={ newsWorker.getEId(),newsWorker.getEAccount(),newsWorker.getEPassword(),newsWorker.getEName(),
    61. newsWorker.getESex(),newsWorker.getEEducation(),newsWorker.getDDid(),
    62. newsWorker.getEPosition(),newsWorker.getEIdcard(),newsWorker.getEPhone(),
    63. newsWorker.getEAddress(),newsWorker.getEEntrytime()};
    64. return DataBase.executeUpdateAll(sql,parms);
    65. }
    66. @Override
    67. public int deleteWork(String eId) {
    68. String sql = "delete from news_worker where e_id=?";
    69. Object [] parms = {eId};
    70. return DataBase.executeUpdateAll(sql,parms);
    71. }
    72. @Override
    73. public int deleteHuishouWork(int flag,String eId) {
    74. String sql = "update news_worker set flag = ? where e_id = ?";
    75. Object [] parms = {flag,eId};
    76. return DataBase.executeUpdateAll(sql,parms);
    77. }
    78. @Override
    79. public List<NewsWorker> queryWorkByName(String eName) {
    80. List<NewsWorker> list = new ArrayList<NewsWorker>();
    81. String sql = "select e_id, e_account, e_password, e_name, e_sex, e_education,d_name, e_position, e_idcard,e_phone, e_address, e_entrytion, e_role,flag from news_worker inner join news_department on news_worker.d_id = news_department.d_id where e_name like '%" + eName+ "%'";
    82. // String sql = "select e_id, e_account, e_password, e_name, e_sex, e_education,d_name, e_position, e_idcard,e_phone, e_address, e_entrytion, e_role,flag from news_worker inner join news_department on news_worker.d_id = news_department.d_id where e_name like %?%";
    83. System.out.println(sql);
    84. // String sql = "select * from staff where sname like '%" + sname+ "%'";
    85. // Object[] parms = {eName};
    86. ResultSet rs= DataBase.myQuery(sql, null);
    87. // ResultSet rs= DataBase.myQuery(sql, eName);
    88. try {
    89. while (rs.next()){
    90. //必须得放在里面,不然只是存储最后一条
    91. NewsWorker allwork = new NewsWorker();
    92. allwork.setEId(rs.getInt("e_id"));
    93. // System.out.println(rs.getInt("e_id"));
    94. allwork.setEAccount(rs.getString("e_account"));
    95. allwork.setEPassword(rs.getString("e_password"));
    96. allwork.setEName(rs.getString("e_name"));
    97. allwork.setESex(rs.getString("e_sex"));
    98. allwork.setEEducation(rs.getString("e_education"));
    99. allwork.setDName(rs.getString("d_name"));
    100. allwork.setEPosition(rs.getString("e_position"));
    101. allwork.setEIdcard(rs.getString("e_idcard"));
    102. allwork.setEPhone(rs.getString("e_phone"));
    103. allwork.setEAddress(rs.getString("e_address"));
    104. allwork.setEEntrytime(rs.getString("e_entrytion"));
    105. allwork.setERole(rs.getInt("e_role"));
    106. allwork.setFlag(rs.getInt("flag"));
    107. list.add(allwork);
    108. // System.out.println(allwork);
    109. }
    110. }
    111. catch (SQLException e) {
    112. e.printStackTrace();
    113. }
    114. return list;
    115. }
    116. }
    1. package com.lingnan.pojo;
    2. import lombok.Data;
    3. /**
    4. * @author :小邓
    5. * @date :Created in 2022/7/3 12:47
    6. * @description:员工表实体类
    7. * @modified By:
    8. * @version: 1.0
    9. */
    10. @Data
    11. public class NewsWorker {
    12. private int eId;//员工编号
    13. //使用小辣椒会把首字母变成大写
    14. private String eAccount;//员工账号
    15. private String ePassword;//员工密码
    16. private String eName;//员工姓名
    17. private String eSex;//性别
    18. private String eEducation;//学历
    19. private int dDid;//部门id
    20. private String dName;//部门名称
    21. private String ePosition;//职称
    22. private String eIdcard;//身份证号码
    23. private String ePhone;//手机号码
    24. private String eAddress;//家庭地址
    25. private String eEntrytime;//入职时间
    26. private int eRole;//权限
    27. private int flag;//删除字段判断
    28. }

  • 相关阅读:
    数字时代,商业智能BI的落地意味着什么
    SoftwareTest6 - 用 Selenium 怎么点点点
    专利申请原则 专利申请后有什么好处 怎么保护专利的权益?
    内存管理【C++】
    92-Java的缓冲流概述、体系、字节缓冲流使用
    前端启动项目将http协议改为https协议
    [附源码]JAVA毕业设计货币博物馆展品管理系统(系统+LW)
    请求转发和动态包含/生成响应信息/响应头/重定向/输出流
    第十天:基于Ubuntu和gec6818开发板的QT图书管理系统完整项目设计
    一文带你彻底弄懂ZGC
  • 原文地址:https://blog.csdn.net/weixin_53669566/article/details/125631873