mybatis实现图书管理系统

 更新时间:2020年06月17日 15:08:15   作者:buerba  
这篇文章主要为大家详细介绍了mybatis实现图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了mybatis实现图书管理系统的具体代码,供大家参考,具体内容如下

在项目开始前先将数据库中的关系表建立,先分析需要几个模块表,用户,图书,类别,租借,购买,简单的分成这五个。

用户表

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)
);

购买

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)
);

在表中简单插入数据

建立工程

1、配置环境导入jar包

创建resources文件

2、建立实体类、实现接口和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指定关联的接口-->
<mapper namespace="cn.kgc.kb07.dao.BookDao">
<!--查询语句-->
</mapper>

实现登录功能

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>登录页面</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?"超级管理员":""}</h1>
 <%
 if(u.getUser_type()==99){
 %>
 <p><a href="userList.do" rel="external nofollow" >点击展示所有用户</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实体文件

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实体文件

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>

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java基础之创建虚拟机对象的过程详细总结

    Java基础之创建虚拟机对象的过程详细总结

    本文基于虚拟机HotSpot和常用的内存区域Java堆深入对象分配、布局和访问的全过程,文中有非常详细的图文解说,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • JavaWeb项目中springmvc和tomcat对静态文件的处理

    JavaWeb项目中springmvc和tomcat对静态文件的处理

    这篇文章主要介绍了JavaWeb项目中springmvc和tomcat对静态文件的处理 的相关资料,需要的朋友可以参考下
    2016-07-07
  • Java程序中方法的用法重载和递归

    Java程序中方法的用法重载和递归

    Java语言中的“方法”在其他语言当中也可能被称为“函数”(Function)。对于一些复杂的代码逻辑,如果希望重复使用这些代码,并且做到“随时任意使用”,那么就可以将这些代码放在一个大括号“{}”当中,并且起一个名字。使用代码的时候,直接找到名字调用即可
    2021-10-10
  • Android入门简单实例

    Android入门简单实例

    这篇文章主要介绍了Android入门简单实例,对于初学Android的朋友有一定的借鉴价值,需要的朋友可以参考下
    2014-08-08
  • 浅析JAVA Lock锁原理

    浅析JAVA Lock锁原理

    这篇文章主要介绍了JAVA Lock锁原理的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • java实现String字符串处理各种类型转换

    java实现String字符串处理各种类型转换

    在日常的程序开发中,经常会涉及到不同类型之间的转换,本文主要介绍了String字符串处理各种类型转换,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 深入解读Java代码组织中的package包结构

    深入解读Java代码组织中的package包结构

    这篇文章主要介绍了Java代码组织中的package包结构,是Java入门学习中的基础知识,需要的朋友可以参考下
    2016-03-03
  • 基于Jasypt对SpringBoot配置文件加密

    基于Jasypt对SpringBoot配置文件加密

    这篇文章主要介绍了基于Jasypt对SpringBoot配置文件加密,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Dom4j解析XML_动力节点Java学院整理

    Dom4j解析XML_动力节点Java学院整理

    这篇文章主要介绍了Dom4j解析XML,dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的,有兴趣的可以了解一下
    2017-07-07
  • 详解java解决分布式环境中高并发环境下数据插入重复问题

    详解java解决分布式环境中高并发环境下数据插入重复问题

    这篇文章主要介绍了java解决并发数据重复问题 ,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论