最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis實(shí)現(xiàn)圖書管理系統(tǒng)

 更新時(shí)間:2020年06月17日 15:08:15   作者:buerba  
這篇文章主要為大家詳細(xì)介紹了mybatis實(shí)現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了mybatis實(shí)現(xiàn)圖書管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

在項(xiàng)目開始前先將數(shù)據(jù)庫(kù)中的關(guān)系表建立,先分析需要幾個(gè)模塊表,用戶,圖書,類別,租借,購(gòu)買,簡(jiǎn)單的分成這五個(gè)。

用戶表

CREATE TABLE IF NOT EXISTS `user`(
user_id INT(11) PRIMARY KEY AUTO_INCREMENT,
user_name VARCHAR(20),
`password` VARCHAR(20),
grade INT(11),
phone VARCHAR(20),
user_type INT(11)
);

圖書表

CREATE TABLE IF NOT EXISTS books (
book_id INT(11) PRIMARY KEY AUTO_INCREMENT,
book_name VARCHAR(50),
price DOUBLE(10,2),
store INT(11),
des VARCHAR(50),
book_type INT(11)
);

類別

CREATE TABLE IF NOT EXISTS `booktype`(
type_id INT(11) PRIMARY KEY AUTO_INCREMENT,
type_name VARCHAR(20),
default_date INT(11),
delay_money_per_day DOUBLE(10,2)
);

租借

CREATE TABLE IF NOT EXISTS borrow(
borrow_id INT(11) PRIMARY KEY AUTO_INCREMENT,
book_id INT(11),
borrow_date DATE,
back_date DATE,
delay_money DOUBLE(10,2)
);

購(gòu)買

CREATE TABLE IF NOT EXISTS shop(
buy_id INT(11) PRIMARY KEY AUTO_INCREMENT,
book_id INT(11),
record_id INT(11),
buy_date DATE,
buy_num INT(11),
total_price DOUBLE(10,2)
);

在表中簡(jiǎn)單插入數(shù)據(jù)

建立工程

1、配置環(huán)境導(dǎo)入jar包

創(chuàng)建resources文件

2、建立實(shí)體類、實(shí)現(xiàn)接口和xml文件

xml文件的格式

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace指定關(guān)聯(lián)的接口-->
<mapper namespace="cn.kgc.kb07.dao.BookDao">
<!--查詢語(yǔ)句-->
</mapper>

實(shí)現(xiàn)登錄功能

1、Sqlsession配置文件使用單例模式

public class MapperConfig {
 private static SqlSessionFactory factory;
 static{
 SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
 try {
 InputStream is= Resources.getResourceAsStream("mybatis-cfg.xml");
 factory=builder.build(is);
 } catch (IOException e) {
 e.printStackTrace();
 }
 }
 public static SqlSession getSession(){
 return factory.openSession(true);
 }
 public static void closeSession(SqlSession session){
 if(session!=null){
 session.close();
 }
 }
 private MapperConfig(){

 }
}

2、建立登陸jsp文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
 <head>
 <title>登錄頁(yè)面</title>
 </head>
 <body>
 <%
 Object msg=session.getAttribute("msg");
 Object o=session.getAttribute("user");
 if(msg!=null&& msg.equals("登錄成功")&&o!=null){
 User u=(User)o;
 %>
 <h1>恭喜登錄:${user.user_name}
 ${user.user_type==99?"超級(jí)管理員":""}</h1>
 <%
 if(u.getUser_type()==99){
 %>
 <p><a href="userList.do" rel="external nofollow" >點(diǎn)擊展示所有用戶</a></p>
 <%
 }else{
 %>
 <p><a href="bookList.jsp" rel="external nofollow" >客戶入口</a> </p>
 <%
 }
 } else{
 %>
 <form action="login.do" method="get">
 <p>用戶名</p>
 <P><input type="text" name="username" required></P>
 <p>密碼</p>
 <p><input type="text" name="password" required></p>
 <p><input type="submit"></p>
 </form>
 <%
 session.removeAttribute("msg");
 }
 %>
 </body>
</html>

3、建立UserService,UserServlet文件

UserService實(shí)體文件

public class UserServiceImpl implements UserService{
 private SqlSession session;
 public UserServiceImpl(){
 session= MapperConfig.getSession();
 }
 @Override
 public User queryUser(String user_name,String password) {
 User user=session.getMapper(UserDao.class).queryUserByNameAndPwd(user_name,password);
 MapperConfig.closeSession(session);
 return user;
 }
}

UserServlet實(shí)體文件

public class UserServlet extends HttpServlet {
 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 String user_name=req.getParameter("username");
 String password=req.getParameter("password");
 UserService service=new UserServiceImpl();
 User user=service.queryUser(user_name,password);
 System.out.println(user);
 if(user!=null){
 req.getSession().setAttribute("msg", "登錄成功");
 req.getSession().setAttribute("user", user);
 resp.sendRedirect("index.jsp");
 }else{
 System.out.println(2);
 req.getSession().setAttribute("msg", "登錄失敗");
 resp.sendRedirect("index.jsp");
 }
 }
}

3、配置web.xml文件

<servlet>
 <servlet-name>userServlet</servlet-name>
 <servlet-class>cn.kgc.kb07.servlet.UserServlet</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>userServlet</servlet-name>
 <url-pattern>/login.do</url-pattern>
</servlet-mapping>

更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入理解SpringMVC的參數(shù)綁定與數(shù)據(jù)響應(yīng)機(jī)制

    深入理解SpringMVC的參數(shù)綁定與數(shù)據(jù)響應(yīng)機(jī)制

    本文將深入探討SpringMVC的參數(shù)綁定方式,包括基本類型、對(duì)象、集合等類型的綁定方式,以及如何處理參數(shù)校驗(yàn)和異常。同時(shí),本文還將介紹SpringMVC的數(shù)據(jù)響應(yīng)機(jī)制,包括如何返回JSON、XML等格式的數(shù)據(jù),以及如何處理文件上傳和下載。
    2023-06-06
  • 基于JavaScript動(dòng)態(tài)規(guī)劃編寫一個(gè)益智小游戲

    基于JavaScript動(dòng)態(tài)規(guī)劃編寫一個(gè)益智小游戲

    最近在學(xué)習(xí)動(dòng)態(tài)規(guī)劃相關(guān)的知識(shí),所以本文將利用動(dòng)態(tài)規(guī)劃編寫一個(gè)簡(jiǎn)單的益智小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-06-06
  • Java String 對(duì)象(你真的了解了嗎)

    Java String 對(duì)象(你真的了解了嗎)

    這篇文章主要介紹了Java String 對(duì)象(你真的了解了嗎),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • JPA 加鎖機(jī)制及@Version版本控制方式

    JPA 加鎖機(jī)制及@Version版本控制方式

    這篇文章主要介紹了JPA 加鎖機(jī)制及@Version版本控制方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java實(shí)現(xiàn)跨服務(wù)器上傳文件功能

    Java實(shí)現(xiàn)跨服務(wù)器上傳文件功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)跨服務(wù)器上傳文件功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Idea中使用Git的流程

    Idea中使用Git的流程

    這篇文章主要介紹了Idea中使用Git的流程,git是目前流行的分布式版本管理系統(tǒng)。本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-09-09
  • Java WeakHashMap案例詳解

    Java WeakHashMap案例詳解

    這篇文章主要介紹了Java WeakHashMap案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java對(duì)數(shù)器驗(yàn)證算法詳解

    Java對(duì)數(shù)器驗(yàn)證算法詳解

    這篇文章主要介紹了Java對(duì)數(shù)器驗(yàn)證算法,Java對(duì)數(shù)函數(shù)的計(jì)算方法非常有問(wèn)題,然而在API中卻有驚人的誤差。但是假如運(yùn)用了以下的方法,用Java處理數(shù)字所碰到的小麻煩就可以輕而易舉的解決了
    2023-04-04
  • 一篇文章弄懂Spring MVC的參數(shù)綁定

    一篇文章弄懂Spring MVC的參數(shù)綁定

    這篇文章主要給大家介紹了關(guān)于如何通過(guò)一篇文章弄懂Spring MVC的參數(shù)綁定,文中通過(guò)示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • BloomFilter如何快速檢查用戶名重復(fù)

    BloomFilter如何快速檢查用戶名重復(fù)

    這篇文章主要介紹了BloomFilter如何快速檢查用戶名重復(fù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04

最新評(píng)論

剑川县| 南京市| 双柏县| 綦江县| 行唐县| 昌平区| 娱乐| 安义县| 略阳县| 图木舒克市| 儋州市| 巴中市| 东兴市| 桃江县| 徐闻县| 莱芜市| 高唐县| 鄱阳县| 柏乡县| 柳林县| 昌都县| 商丘市| 浦城县| 城市| 晴隆县| 会泽县| 南平市| 彰化市| 平顶山市| 开化县| 富民县| 松溪县| 红河县| 庆元县| 阳东县| 宁波市| 永仁县| 广平县| 昌邑市| 金川县| 南投市|