日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

JavaWeb-综合案例(用户信息)-学习笔记06【复杂条件查询功能】

發(fā)布時間:2024/9/30 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaWeb-综合案例(用户信息)-学习笔记06【复杂条件查询功能】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • Java后端 學(xué)習(xí)路線 筆記匯總表【黑馬程序員】
  • JavaWeb-綜合案例(用戶信息)-學(xué)習(xí)筆記01【列表查詢】
  • JavaWeb-綜合案例(用戶信息)-學(xué)習(xí)筆記02【登錄功能】
  • JavaWeb-綜合案例(用戶信息)-學(xué)習(xí)筆記03【添加刪除修改功能】
  • JavaWeb-綜合案例(用戶信息)-學(xué)習(xí)筆記04【刪除選中功能】
  • JavaWeb-綜合案例(用戶信息)-學(xué)習(xí)筆記05【分頁查詢功能】
  • JavaWeb-綜合案例(用戶信息)-學(xué)習(xí)筆記06【復(fù)雜條件查詢功能】
  • 目錄

    第5節(jié) 復(fù)雜條件查詢功能

    復(fù)雜條件查詢功能_分析

    復(fù)雜條件查詢功能_代碼實(shí)現(xiàn)1

    復(fù)雜條件查詢功能_代碼實(shí)現(xiàn)2

    UserDaoImpl.java

    UserServiceImpl.java

    FindUserByPageServlet.java


    第5節(jié) 復(fù)雜條件查詢功能

    復(fù)雜條件查詢功能_分析

    復(fù)雜條件分頁查詢

    復(fù)雜條件查詢功能_代碼實(shí)現(xiàn)1

    復(fù)雜條件查詢功能_代碼實(shí)現(xiàn)2

    UserDaoImpl.java

    package cn.itcast.dao.impl;import cn.itcast.dao.UserDao; import cn.itcast.domain.User; import cn.itcast.util.JDBCUtils; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate;import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set;public class UserDaoImpl implements UserDao {private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());@Overridepublic List<User> findAll() {//使用JDBC操作數(shù)據(jù)庫...//1.定義sqlString sql = "select * from user";List<User> users = template.query(sql, new BeanPropertyRowMapper<User>(User.class));return users;}@Overridepublic User findUserByUsernameAndPassword(String username, String password) {try {String sql = "select * from user where username = ? and password = ?";User user = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), username, password);return user;} catch (Exception e) {e.printStackTrace();return null;}}@Overridepublic void add(User user) {//1.定義sqlString sql = "insert into user values(null,?,?,?,?,?,?,null,null)";//2.執(zhí)行sqltemplate.update(sql, user.getName(), user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail());}@Overridepublic void delete(int id) {//1.定義sqlString sql = "delete from user where id = ?";//2.執(zhí)行sqltemplate.update(sql, id);}@Overridepublic User findById(int id) {String sql = "select * from user where id = ?";return template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), id);}@Overridepublic void update(User user) {String sql = "update user set name = ?,gender = ? ,age = ? , address = ? , qq = ?, email = ? where id = ?";template.update(sql, user.getName(), user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail(), user.getId());}@Overridepublic int findTotalCount(Map<String, String[]> condition) {//1.定義模板初始化sqlString sql = "select count(*) from user where 1 = 1 ";StringBuilder sb = new StringBuilder(sql);//2.遍歷mapSet<String> keySet = condition.keySet();//定義參數(shù)的集合List<Object> params = new ArrayList<Object>();for (String key : keySet) {//排除分頁條件參數(shù)if ("currentPage".equals(key) || "rows".equals(key)) {continue;}//獲取valueString value = condition.get(key)[0];//判斷value是否有值if (value != null && !"".equals(value)) {//有值sb.append(" and " + key + " like ? ");params.add("%" + value + "%");//?條件的值}}System.out.println(sb.toString());System.out.println(params);return template.queryForObject(sb.toString(), Integer.class, params.toArray());}@Overridepublic List<User> findByPage(int start, int rows, Map<String, String[]> condition) {String sql = "select * from user where 1 = 1 ";StringBuilder sb = new StringBuilder(sql);//2.遍歷mapSet<String> keySet = condition.keySet();//定義參數(shù)的集合List<Object> params = new ArrayList<Object>();for (String key : keySet) {//排除分頁條件參數(shù)if ("currentPage".equals(key) || "rows".equals(key)) {continue;}//獲取valueString value = condition.get(key)[0];//判斷value是否有值if (value != null && !"".equals(value)) {//有值sb.append(" and " + key + " like ? ");params.add("%" + value + "%");//?條件的值}}//添加分頁查詢sb.append(" limit ?,? ");//添加分頁查詢參數(shù)值params.add(start);params.add(rows);sql = sb.toString();System.out.println(sql);System.out.println(params);return template.query(sql, new BeanPropertyRowMapper<User>(User.class), params.toArray());} }

    UserServiceImpl.java

    package cn.itcast.service.impl;import cn.itcast.dao.UserDao; import cn.itcast.dao.impl.UserDaoImpl; import cn.itcast.domain.PageBean; import cn.itcast.domain.User; import cn.itcast.service.UserService;import java.util.List; import java.util.Map;public class UserServiceImpl implements UserService {private UserDao dao = new UserDaoImpl();@Overridepublic List<User> findAll() {//調(diào)用Dao完成查詢return dao.findAll();}@Overridepublic User login(User user) {return dao.findUserByUsernameAndPassword(user.getUsername(), user.getPassword());}@Overridepublic void addUser(User user) {dao.add(user);}@Overridepublic void deleteUser(String id) {dao.delete(Integer.parseInt(id));}@Overridepublic User findUserById(String id) {return dao.findById(Integer.parseInt(id));}@Overridepublic void updateUser(User user) {dao.update(user);}@Overridepublic void delSelectedUser(String[] ids) {if (ids != null && ids.length > 0) {//1.遍歷數(shù)組for (String id : ids) {//2.調(diào)用dao刪除dao.delete(Integer.parseInt(id));}}}@Overridepublic PageBean<User> findUserByPage(String _currentPage, String _rows, Map<String, String[]> condition) {int currentPage = Integer.parseInt(_currentPage);int rows = Integer.parseInt(_rows);if (currentPage <= 0) {currentPage = 1;}//1.創(chuàng)建空的PageBean對象PageBean<User> pb = new PageBean<User>();//2.設(shè)置參數(shù)pb.setCurrentPage(currentPage);pb.setRows(rows);//3.調(diào)用dao查詢總記錄數(shù)int totalCount = dao.findTotalCount(condition);pb.setTotalCount(totalCount);//4.調(diào)用dao查詢List集合//計(jì)算開始的記錄索引int start = (currentPage - 1) * rows;List<User> list = dao.findByPage(start, rows, condition);pb.setList(list);//5.計(jì)算總頁碼int totalPage = (totalCount % rows) == 0 ? totalCount / rows : (totalCount / rows) + 1;pb.setTotalPage(totalPage);return pb;} }

    FindUserByPageServlet.java

    package cn.itcast.web.servlet;import cn.itcast.domain.PageBean; import cn.itcast.domain.User; import cn.itcast.service.UserService; import cn.itcast.service.impl.UserServiceImpl;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Map;@WebServlet("/findUserByPageServlet") public class FindUserByPageServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");//1.獲取參數(shù)String currentPage = request.getParameter("currentPage");//當(dāng)前頁碼String rows = request.getParameter("rows");//每頁顯示條數(shù)if (currentPage == null || "".equals(currentPage)) {currentPage = "1";}if (rows == null || "".equals(rows)) {rows = "5";}//獲取條件查詢參數(shù)Map<String, String[]> condition = request.getParameterMap();//2.調(diào)用service查詢UserService service = new UserServiceImpl();PageBean<User> pb = service.findUserByPage(currentPage, rows, condition);System.out.println(pb);//3.將PageBean存入requestrequest.setAttribute("pb", pb);request.setAttribute("condition", condition);//將查詢條件存入request//4.轉(zhuǎn)發(fā)到list.jsprequest.getRequestDispatcher("/list.jsp").forward(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);} }

    加油~

    總結(jié)

    以上是生活随笔為你收集整理的JavaWeb-综合案例(用户信息)-学习笔记06【复杂条件查询功能】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。