基于Spring MVC + Spring + MyBatis的【图书资源管理系统】

基于Spring MVC + Spring + MyBatis的【图书资源管理系统】,第1张

基于Spring MVC + Spring + MyBatis的【图书资源管理系统】

资源下载:https://download.csdn.net/download/weixin_44893902/45598347

练习点设计:模糊查询、删除、新增

一、语言和环境
  1. 实现语言:JAVA语言。
  2. 环境要求:MyEclipse/Eclipse + Tomcat + MySql。
  3. 使用技术:Jsp+Servlet+JavaBean或SpringMVC + Spring + Mybatis。
二、实现功能

随着信息技术的高速发展,各部门对于图书管理方式不一,现需要制作图书资源管理系统,主要功能如下:

  1. 首页默认显示所有图书资源,如图所示。

  2. 鼠标悬停某行数据时,该行数据突出显示效果,如图所示。

  3. 用户输入“书籍名称”字段,点击搜索按钮完成模糊查询,显示查询结果,如图所示。

  4. 用户点击删除,则d出提示框,用户点击确定后,删除选中数据并显示最新数据,如图所示。


    5.用户点击“新增”链接,则打开新增页面,填写完相关信息后点击添加按钮,增加图书资源信息数据到数据库,且页面跳转到列表页面展示最新数据,如图6和图7所示。

三、数据库设计
  1. 创建数据库(book_manage)。
  2. 创建数据表(tb_book),结构如下。
字段名说明字段类型长度备注id编号int主键,自增,增量为1name书籍名称varchar50不能为空author作者varchar10不能为空publish_date出版日期date不能为空press出版社varchar50不能为空 四、推荐实现步骤
  1. SSM版本的实现步骤如下:
    (1)创建数据库和数据表,添加测试数据(至少添加5条测试数据)。
    (2)创建Web工程并创建各个包,导入工程所需的jar文件。
    (3)添加相关SSM框架支持。
    (4)配置项目所需要的各种配置文件(mybatis配置文件、spring配置文件、springMVC配置文件)。
    (5)创建实体类。
    (6)创建MyBatis *** 作数据库所需的Mapper接口及其Xml映射数据库 *** 作语句文件。
    (7)创建业务逻辑相应的接口及其实现类,实现相应的业务,并在类中加入对DAO/Mapper的引用和注入。
    (8)创建Controller控制器类,在Controller中添加对业务逻辑类的引用和注入,并配置springMVC配置文件。
    (9)创建相关的 *** 作页面,并使用CSS对页面进行美化。
    (10)实现页面的各项 *** 作功能,并在相关地方进行验证, *** 作要人性化。
    (11)调试运行成功后导出相关的数据库文件并提交。
五、实现代码 1、MySQL数据库

book_manage.sql


SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for tb_book
-- ----------------------------
DROp TABLE IF EXISTS `tb_book`;
CREATE TABLE `tb_book`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `author` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `publish_date` date NULL DEFAULT NULL,
  `press` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of tb_book
-- ----------------------------
INSERT INTO `tb_book` VALUES (1, '向往的生活', '张强', '1990-01-01', '科学出版社');
INSERT INTO `tb_book` VALUES (2, '幸福的生活', '李辉', '2006-06-05', '高等教育出版社');
INSERT INTO `tb_book` VALUES (3, '这一生这么过', '郭强铭', '2021-08-10', '大百科全书出版社');
INSERT INTO `tb_book` VALUES (4, '爱的教育', '张德旭', '1992-06-20', '高等教育出版社');

SET FOREIGN_KEY_CHECKS = 1;

2、项目Java代码

目录结构
book_manage

JAR包:

src com.controller

BookMapperController.java

package com.controller;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.entity.TbBook;
import com.service.impl.BookManageService;

@Controller
public class BookMapperController {
	@Resource
	BookManageService service;
	@RequestMapping("/selectAll")
	public ModelAndView selectAll(String name) {
		ModelAndView modelAndView = new ModelAndView();
		if (name==null||name.equals("")) {
			name="";
		}
		List tbBookList=service.selectAll(name);
		modelAndView.setViewName("tbBook");
		modelAndView.addObject("tbBookList", tbBookList);
		return modelAndView;
	}
	//娣诲姞
	@RequestMapping("/jump")
	public String jump() {
		return "addTbBook";
	}
	@RequestMapping("/insertTbBook")
	public String insertTbBook(TbBook tbBook) {
		int add=service.insertTbBook(tbBook);
		return "redirect:/selectAll.do";
		
	}
	//鍒犻櫎
	@RequestMapping("/delTbBook")
	public String delTbBook(int id) {
		int del=service.delTbBook(id);
		return "redirect:/selectAll.do";
	}
}

com.dao

TbBookMapper.java

package com.dao;

import com.entity.TbBook;
import java.util.List;

public interface TbBookMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(TbBook record);

    TbBook selectByPrimaryKey(Integer id);

    List selectAll();

    int updateByPrimaryKey(TbBook record);
    
    List likeSelect(String name);
}

TbBookMapper.xml




  
    
    
    
    
    
  
  
    delete from tb_book
    where id = #{id,jdbcType=INTEGER}
  
  
    insert into tb_book (id, name, author, 
      publish_date, press)
    values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{author,jdbcType=VARCHAR}, 
      #{publishDate,jdbcType=DATE}, #{press,jdbcType=VARCHAR})
  
  
    select id, name, author, publish_date, press
    from tb_book
  
    

com.entity

TbBook.java

package com.entity;

import java.util.Date;

public class TbBook {
    private Integer id;

    private String name;

    private String author;

    private String publishDate;

    private String press;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author == null ? null : author.trim();
    }

    public String getPublishDate() {
        return publishDate;
    }

    public void setPublishDate(String publishDate) {
        this.publishDate = publishDate;
    }

    public String getPress() {
        return press;
    }

    public void setPress(String press) {
        this.press = press == null ? null : press.trim();
    }
}
com.generator

Generator.java

package com.generator;

import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

public class Generator {
	
	public void generateMyBatis() {
		// MBG执行过程中的警告信息
		List warnings = new ArrayList();
		// 当生成的代码重复时,覆盖原代码
		boolean overwrite = true;
		String generatorFile = "/generator/generatorConfig.xml";
		// String generatorFile = "/generator/generatorConfigExample.xml";
		// 读取MBG配置文件
		InputStream is = Generator.class.getResourceAsStream(generatorFile);

		ConfigurationParser cp = new ConfigurationParser(warnings);
		Configuration config;
		try {
			config = cp.parseConfiguration(is);
			DefaultShellCallback callback = new DefaultShellCallback(overwrite);
			// 创建MBG
			MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
			// 执行生成代码
			myBatisGenerator.generate(null);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (XMLParserException e) {
			e.printStackTrace();
		} catch (InvalidConfigurationException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		for (String warning : warnings) {
			System.out.println(warning);
		}
	}

	public static void main(String[] args) {
		Generator generator = new Generator();
		generator.generateMyBatis();
	}
}
com.service.impl

BookManageService.java

package com.service.impl;

import java.util.List;

import com.entity.TbBook;

public interface BookManageService {
	List selectAll(String name);
	
	int insertTbBook(TbBook tbBook);
	
	int delTbBook(int id);

}

BookManageServiceImpl.java

package com.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.dao.TbBookMapper;
import com.entity.TbBook;

@Service
public class BookManageServiceImpl implements BookManageService {
	@Resource
	TbBookMapper mapper;
	@Override
	public List selectAll(String name) {
		if (name.equals("")|| name==null) {
			List list=mapper.selectAll();
			return list;
		}else {
			List list=mapper.likeSelect(name);
			return list;
		}
	}
	@Override
	public int insertTbBook(TbBook tbBook) {
		int add=mapper.insert(tbBook);
		return add;
	}
	@Override
	public int delTbBook(int id) {
		int del=mapper.deleteByPrimaryKey(id);
		return del;
	}

}

MyBatis

SqlMapConfig.xml





	
		
	

spring

applicationContext-dao.xml



		
		
		
			
			
			
			
		
		
		
			
			
			
			
		
		
		
			
			
			

applicationContext-service.xml



	
	
		
	
	
		
	
	
	

spring-mvc.xml



		
		
		
	
	
	
	
				
				
	

dataSource.properties
db.driverClass=com.mysql.jdbc.Driver
db.jdbcUrl=jdbc:mysql://127.0.0.1:3306/person_db?useUnicode=true&characterEncoding=UTF-8&useSSL=false
db.user=root
db.password=123456
generatorConfig.xml




	
		
		
		
		
		
			
			
			
			
		
		
		
		
		
		
		
			
		
		
		
		
		
		
		
								
		
				
	

WebContent

web.xml



  com.ssm.crm.system
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  
  
  
  	contextConfigLocation
  	classpath:spring/applicationContext-*.xml
  
  
  
  	org.springframework.web.context.ContextLoaderListener
  
  
	
		springmvc
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:spring/spring-mvc.xml
		
		1
	
	
		springmvc
		*.do
	
	
  
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
    
    
        CharacterEncodingFilter
        /*
    

JSP

index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>




Insert title here






addTbBook.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>




Insert title here


	
书籍名称 作者: 出版日期: 出版社:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5562463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存