• 前后端交互案例分析


    综合练习:
        1. 简单功能
            1. 列表查询
            2. 登录
            3. 添加
            4. 删除
            5. 修改
            
        2. 复杂功能
            1. 删除选中
            2. 分页查询
            3. 复杂条件查询

    添加功能:

     

    删除功能: 

     修改功能:

     

    删除选中功能:

     分页查询功能:

    复杂条件查询功能 

    一些类的实现

    FindUserByPageServlet:
    1. UserService userService = new UserServiceImpl();
    2. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    3. request.setCharacterEncoding("utf-8");
    4. // System.out.println("已进入1");
    5. //1.获取参数
    6. String currentPage = request.getParameter("currentPage");//当前页码
    7. String rows = request.getParameter("rows");//每页显示的条数
    8. if (currentPage ==null || "".equals(currentPage) ){
    9. currentPage = "1";
    10. }
    11. if (rows ==null || "".equals(rows)){
    12. rows = "5";
    13. }
    14. //条件查询参数
    15. Map<String, String[]> condition = request.getParameterMap();
    16. PageBean<User> pb =userService.findUserBypage(currentPage,rows,condition);
    17. //存储转发
    18. request.setAttribute("pb",pb);
    19. request.setAttribute("condition",condition);
    20. request.getRequestDispatcher("/list.jsp").forward(request,response);
    21. }
    22. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    23. this.doPost(request, response);
    24. }
    UserServiceImpl:
    1. public class UserServiceImpl implements UserService {
    2. UserDao userDao = new UserDaoImpl();
    3. @Override
    4. public List<User> findAll() {
    5. return userDao.findAll();
    6. }
    7. @Override
    8. public int addUser(User user) {
    9. return userDao.addUder(user);
    10. }
    11. @Override
    12. public int updateUser(User user) {
    13. return userDao.updateUser(user);
    14. }
    15. @Override
    16. public User queryByid(int id) {
    17. return userDao.queryByid(id);
    18. }
    19. @Override
    20. public void delstlected(String[] uid) {
    21. if (uid != null && uid.length != 0){
    22. for (String u: uid){
    23. // System.out.println("u:"+u);
    24. userDao.deleteUser(Integer.parseInt(u));
    25. }
    26. }
    27. }
    28. @Override
    29. public PageBean<User> findUserBypage(String currentPage1, String rows1, Map<String, String[]> condition) {
    30. int currentPage = Integer.parseInt(currentPage1);
    31. int rows = Integer.parseInt(rows1);
    32. if (currentPage < 1){
    33. currentPage =1;
    34. }
    35. PageBean<User> pb = new PageBean<User>();
    36. pb.setRows(rows);//每页显示的个数
    37. //查询数据库中总条数
    38. int totalCount = userDao.findTetalCount(condition);
    39. pb.setTotalCount(totalCount);//总条数
    40. //开始索引
    41. int start = (currentPage-1) * rows;
    42. //查询list集合
    43. List<User> list = userDao.findByPage(start,rows,condition);
    44. pb.setList(list);//list集合
    45. int totalPage = totalCount%rows == 0 ? totalCount/rows : totalCount/rows +1;
    46. if (currentPage >= totalPage+1){
    47. currentPage = totalPage;
    48. }
    49. pb.setTotalPage(totalPage);//总页码数
    50. pb.setCurrentPage(currentPage);//当前页数
    51. return pb;
    52. }
    53. }
    UserDaoImpl:
    1. public class UserDaoImpl implements UserDao {
    2. private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
    3. @Override
    4. public List<User> findAll() {
    5. List<User> users = null;
    6. try {
    7. String sql = "select * from user";
    8. users = template.query(sql, new BeanPropertyRowMapper<User>(User.class));
    9. return users;
    10. }catch (Exception e){
    11. return users;
    12. }
    13. }
    14. @Override
    15. public User login(User user) {
    16. try {
    17. String sql = "select * from user where username=?&&password=?";
    18. User user1 = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), user.getUsername(), user.getPassword());
    19. return user1;
    20. }catch (Exception e){
    21. return null;
    22. }
    23. }
    24. @Override
    25. public int addUder(User user) {
    26. try{
    27. String sql = "insert into user values(null,?,?,?,?,?,?,null,null)";
    28. int update = template.update(sql, user.getName(), user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail());
    29. return update;
    30. }catch (Exception e){
    31. return 0;
    32. }
    33. }
    34. @Override
    35. public int deleteUser(int id) {
    36. try{
    37. String sql ="delete from user where id=? ";
    38. int update = template.update(sql, id);
    39. return update;
    40. }catch (Exception e){
    41. return 0;
    42. }
    43. }
    44. @Override
    45. public User queryByid(int id) {
    46. try{
    47. String sql ="select * from user where id=?";
    48. User user = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), id);
    49. return user;
    50. }catch (Exception e){
    51. return null;
    52. }
    53. }
    54. @Override
    55. public int updateUser(User user) {
    56. try{
    57. String sql ="update user set gender=?,age=?,address=?,qq=?,email=? where id=?";
    58. int update = template.update(sql, user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail(),user.getId());
    59. return update;
    60. }catch (Exception e){
    61. return 0;
    62. }
    63. }
    64. @Override
    65. public int findTetalCount(Map<String, String[]> condition) {
    66. try{
    67. String sql = "select count(*) from user where 1 = 1 ";
    68. StringBuilder sb = new StringBuilder(sql);
    69. Set<String> strings = condition.keySet();
    70. List<Object> parms = new ArrayList<>();
    71. for (String key: strings){
    72. if ("currentPage".equals(key) || "rows".equals(key)){
    73. continue;
    74. }
    75. String value = condition.get(key)[0];
    76. System.out.println("value"+value);
    77. if (value != null && !"".equals(value)){
    78. sb.append(" and "+key+" like ? ");
    79. parms.add("%"+value+"%");//?条件里面的值
    80. }
    81. }
    82. System.out.println(sb.toString());
    83. System.out.println(parms);
    84. //parms.toArray() 转为数组
    85. return template.queryForObject(sb.toString(), Integer.class,parms.toArray());
    86. }catch (Exception e){
    87. return 0;
    88. }
    89. }
    90. @Override
    91. public List<User> findByPage(int start, int rows, Map<String, String[]> condition) {
    92. try{
    93. String sql ="select * from user where 1 = 1 ";
    94. // String sql = "select count(*) from user where 1 = 1 ";
    95. StringBuilder sb = new StringBuilder(sql);
    96. Set<String> strings = condition.keySet();
    97. List<Object> parms = new ArrayList<>();
    98. for (String key: strings){
    99. if ("currentPage".equals(key) || "rows".equals(key)){
    100. continue;
    101. }
    102. String value = condition.get(key)[0];
    103. System.out.println("value"+value);
    104. if (value != null && !"".equals(value)){
    105. sb.append(" and "+key+" like ? ");
    106. parms.add("%"+value+"%");//?条件里面的值
    107. }
    108. }
    109. sb.append(" limit ?,? ");
    110. parms.add(start);
    111. parms.add(rows);
    112. return template.query(sb.toString(), new BeanPropertyRowMapper<User>(User.class), parms.toArray());
    113. }catch (Exception e){
    114. return null;
    115. }
    116. }
    117. }

  • 相关阅读:
    docker compose搭建redis7.0.4高可用一主二从三哨兵集群并整合SpringBoot【图文完整版】
    电脑如何连蓝牙耳机
    Java可变参数的应用
    docker下netcore内存dump
    CISP-PTE实操练习之综合题讲解(win2008)
    SQL注入漏洞 其他注入
    CSS中如何实现一个自适应正方形(宽高相等)的元素?
    tcp三次握手的一些疑问
    现货黄金基本知识:黄金策略五大心法
    红队隧道加密之OpenSSL加密反弹Shell(一)
  • 原文地址:https://blog.csdn.net/m0_59123620/article/details/127104656