配置 springMVC,Security 等

首页

配置主页的获取借阅列表:

@Controller
public class IndexController {
 
    @Resource
    BorrowMapper borrowMapper;
 
    @RequestMapping(value = {"/", "index"})
    public String index(Model model) {
        User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        List<Borrow> borrowList = borrowMapper.getBorrowList();
 
        model.addAttribute(user.getUsername());
        model.addAttribute("borrowList",borrowList);
        return "index";
    }
 
    @GetMapping(value="/login")
    public String login() {
        return "login";
    }
}

对应的BorrowMapper:

public interface BorrowMapper {
    @Results({
            @Result(column = "sid", property = "sid"),
            @Result(column = "bid", property = "bid"),
            @Result(column = "date", property = "date"),
            @Result(column = "name", property = "student_name"),
            @Result(column = "title", property = "book_name")
    })
    @Select("select * from borrow left join student on borrow.sid = student.sid left join book on borrow.bid = book.bid")
    public List<Borrow> getBorrowList();
}

结尾

爆这个错:

org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web

创建一个Listener包然后加入该类即可,手动关闭sql:

package com.listener;
 
import com.mysql.cj.jdbc.AbandonedConnectionCleanupThread;
import jakarta.servlet.ServletContextEvent;
import jakarta.servlet.ServletContextListener;
 
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Enumeration;
 
public class MysqlListener implements ServletContextListener {
 
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        try {
            Enumeration<Driver> drivers = DriverManager.getDrivers();
            while(drivers.hasMoreElements()) {
                DriverManager.deregisterDriver(drivers.nextElement());
            }
            AbandonedConnectionCleanupThread.checkedShutdown();
        }catch (SQLException e) {
            e.printStackTrace();
        }
    }
}