早上决定先把昨天晚上还没有解决的缓冲连接池的问题放一放,先把修改用户信息写了吧!
UserController
/*跳转用户修改页面*/
@GetMapping("user/userManage")
public String userManage(Model model){
User user = (User) httpSession.getAttribute("user"); //获取登录的用户信息
User user1 = userService.selectByNameAndPwd(user); //获取该用户信息的其他所有信息
model.addAttribute("user", user1);
return "user/userManage";
}
/*用户修改页面*/
@PostMapping("user/userManage")
public String userManagePost(User user, Model model, HttpSession httpSession){
Date date = new Date();
user.setUpdateDate(date); //设置更新日期为最新日期
int i = userService.update(user);
httpSession.setAttribute("user",user);
return "redirect:login";
}
解决完小问题成功实现该功能后的惯例
下面完成页面的这四个功能
商品管理这个功能需要操作数据库 tb_item , tb_re_item , tb_category,所以先完成这个三个mapper
ItemMapper
@Mapper
@Repository
public interface ItemMapper {
@Select("select * from tb_item where id=#{id}")
Item selectById(Item item);
@Delete("delete from tb_item where id=#{id} ")
int delete(Item item);
@Select("SELECT i.* , t.name as categoryName FROM tb_item i LEFT JOIN tb_category t ON i.cid = t.id WHERE i.status = 1 AND title LIKE concat('%', #{title}, '%') AND cid = #{cid} AND price BETWEEN #{minPrice} AND #{maxPrice} ORDER BY updated desc limit #{start},#{end}")
List<Item> list(Item item);
@Select("SELECT i.* , t.name as categoryName FROM tb_item i LEFT JOIN tb_category t ON i.cid = t.id WHERE i.status = 1 AND title LIKE concat('%', #{title}, '%') AND cid = #{cid} AND num BETWEEN #{minNum} AND #{maxNum,} ORDER BY num limit #{start},#{end}")
List<Item> lists(Item item);
@Select("SELECT count(*) from tb_item i LEFT JOIN tb_category t ON i.cid = t.id WHERE i.status = 1AND title LIKE concat('%', #{title}, '%') AND cid = #{cid} AND price BETWEEN #{minPrice} AND #{maxPrice} ORDER BY price")
int count(Item item);
@Insert("INSERT INTO tb_item (id, title, sell_point, price, num, barcode, image, cid, status, created, updated) VALUES (#{id},#{title},#{sellPoint},#{price},#{num},#{barcode},#{image},#{cid},1,#{created},#{updated})")
int insert(Item item);
@Update("UPDATE tb_item SET title = #{title}, sell_point= #{sellPoint}, price = #{price}, num = #{num}, cid = #{cid}, updated = #{updated},image = #{image} WHERE id = #{id}")
int update(Item item);
@Select("select * from tb_item")
List<Item> selectAll();
}
ReItemMapper
@Repository
@Mapper
public interface ReItemMapper {
@Delete("delete from tb_re_item where id=#{id}")
int deleteByPrimaryKey(int id);
@Insert("insert into tb_re_item (id, title, sell_point, price, num, barcode, image, cid, status, recovered) values (#{id}, #{title}, #{sellPoint}, #{price}, #{num}, #{barcode}, #{image}, #{cid}, #{status}, #{recovered})")
int insert(ReItem record);
@Select("select id, title, sell_point, price, num, barcode, image, cid, status, recovered from tb_re_item where id = #{id}")
ReItem selectByPrimaryKey(int id);
@Select("select id, title, sell_point, price, num, barcode, image, cid, status, recovered from tb_re_item ORDER BY recovered DESC")
List<ReItem> selectAll();
@Update("update tb_re_item set title = #{title}, sell_point = #{sellPoint}, price = #{price}, num = #{num}, barcode = #{barcode}, image = #{image}, cid = #{cid}, status = #{status}, recovered = #{recovered} where id = #{id}")
int updateByPrimaryKey(ReItem record);
@Select("SELECT count(*) from tb_re_item")
int count(ReItem record);
}
DateUtil
/*日期工具类*/
public class DateUtil {
/*将日期转换为字符串*/
public static String getDateStr(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String format = sdf.format(date);
return format;
}
/*将字符创转换为日期*/
public static Date strToDate(String date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = null;
try {
d = sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return d;
}
}
惯例
PageUtil
public class PageUtil {
public static String getPageContent(String url,int pageCurrent ,int pageSize,int pageCount){
if (pageCount == 0){
return "";
}
/*设置url中的参数*/
String urlNew = url.replace("{pageSize}", pageSize+"").replace("{pageCount}",pageCount+"");
/*第一页的url*/
String first = urlNew.replace("{pageCurrent}",1+"");
/*前一页的url*/
String prev = urlNew.replace("{pageCurrent",(pageCurrent-1)+"");
/*后一页的url*/
String next = urlNew.replace("{pageCurrent",(pageCurrent+1)+"");
/*最后一页的url*/
String last = urlNew.replace("{pageCurrent}",pageCount+"");
StringBuffer html = new StringBuffer();
html.append("<li class=\"footable-page-arrow"+(pageCurrent<=1?" disabled":"")+"\"><a href=\""+(pageCurrent<=1?"#":first)+"\">«</a></li>");
html.append("<li class=\"footable-page-arrow"+(pageCurrent<=1?" disabled":"")+"\"><a href=\""+(pageCurrent<=1?"#":prev)+"\">‹</a></li>");
for(int i = 0 ;i < pageCount; i++){
String urlItem = urlNew.replace("{pageCurrent}", (i+1)+"");
html.append("<li class=\"footable-page"+(((i+1) == pageCurrent)?" active":"")+"\"><a href=\""+urlItem+"\">"+(i+1)+"</a></li>");
}
html.append("<li class=\"footable-page-arrow"+(pageCurrent==pageCount?" disabled":"")+"\"><a href=\""+(pageCurrent==pageCount?"#":next)+"\">›</a></li>");
html.append("<li class=\"footable-page-arrow"+(pageCurrent==pageCount?" disabled":"")+"\"><a href=\""+(pageCurrent==pageCount?"#":last)+"\">»</a></li>");
return html.toString().replaceAll("null", "");
}
}
ItemCategoryMapper
@Mapper
@Repository
public interface ItemCategoryMapper {
@Select("SELECT * from tb_category where id = #{id}")
ItemCategory findById(ItemCategory itemCategory);
@Select("SELECT * from tb_category where status = 1 AND name LIKE concat('%', #{name}, '%') ORDER BY updated DESC limit #{start}, #{end}")
List<ItemCategory> list(ItemCategory itemCategory);
@Select("SELECT * from tb_category where status = 1 ORDER BY updated DESC")
List<ItemCategory> list1();
@Select("SELECT count(*) from tb_category WHERE status = 1 AND name LIKE concat('%', #{name}, '%')")
int count(ItemCategory itemCategory);
@Insert("INSERT INTO tb_category (id, parent_id, name, status, sort_order, is_parent, created, updated) values ( #{id}, null, #{name}, 1, null, null, #{created}, #{updated})")
int insert(ItemCategory itemCategory);
@Update("UPDATE tb_category SET name = #{name}, updated = now() WHERE id = #{id}")
int update(ItemCategory itemCategory);
@Delete("DELETE FROM tb_category WHERE id = #{id}")
int delete(ItemCategory itemCategory);
@Update("UPDATE tb_category SET status = #{status}, updated = now() WHERE id = #{id}")
int updateStatus(ItemCategory itemCategory);
}
ItemController
@Autowired
ItemMapper itemMapper;
@Autowired
ItemCategoryMapper itemCategoryMapper;
List<Item> itemList;
@RequestMapping("/user/itemManage_{pageCurrent}_{pageSize}_{pageCount}")
public String itemManage(Item item, Model model,
@PathVariable Integer pageCurrent,
@PathVariable Integer pageSize,
@PathVariable Integer pageCount){
/*设置特殊当前页数的值和每页数据数以及计算一共多少页*/
if (pageCurrent == 0)
pageCurrent = 1;
if (pageSize == 0)
pageSize = 50;
int count = itemMapper.count(item);
if (pageCount == 0){
pageCount = count%pageSize == 0 ? (count/pageSize) : (count/pageSize)+1;
}
item.setStart((pageCurrent - 1) * pageSize);
item.setEnd(pageSize);
model.addAttribute("item", item);
/*设置更新日期为字符串格式*/
itemList = itemMapper.list(item);
for (Item i : itemList) {
i.setUpdatedStr(DateUtil.getDateStr(i.getUpdated()));
}
model.addAttribute("itemList", itemList);
/*设置商品分类的开始和结束*/
ItemCategory itemCategory = new ItemCategory();
itemCategory.setStart(0);
itemCategory.setEnd(Integer.MAX_VALUE);
List<ItemCategory> itemCategoryList = itemCategoryMapper.list(itemCategory);
model.addAttribute("itemCategoryList", itemCategoryList);
/*获取最高价格和最低价格*/
Integer maxPrice = item.getMaxPrice();
Integer minPrice = item.getMinPrice();
/*设置动态的url*/
String pageHTML = PageUtil.getPageContent("itemManage_{pageCurrent}_{pageSize}_{pageCont}?title = " + item.getTitle() + "&cid=" + item.getCid() + "&minPrice=" + item.getMinPrice() + "&maxPrice" + item.getMaxPrice(), pageCurrent, pageSize, pageCount);
model.addAttribute("pageHTML", pageHTML);
return "item/itemManage";
}
写完了这些,并不能运行,去测试哪一步有问题去了~