日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

spring+mybatis實現圖書管理系統

瀏覽:195日期:2023-09-02 08:27:13

本文為大家分享了spring+mybatis實現的圖書管理系統,供大家參考,具體內容如下

一、流程

jsp頁面發起請求-->控制器-->控制器通過一個service對象調用service方法-->service中通過xxxMapper對象調用dao中的方法-->查詢數據庫

二、圖書管理系統

1、目錄結構

spring+mybatis實現圖書管理系統

2、Book實體類

package com.entity; import java.io.Serializable;import java.util.Map;import org.apache.ibatis.type.Alias; public class Book implements Serializable{ private static final long serialVersionUID = 1L; private Integer id; private String name; private String author; private String bookconcern; private String date; private String synopsis; private String pic; public String getPic() { return pic; } public void setPic(String pic) { this.pic = pic == null ? null : pic.trim(); } public Book() { super(); } public Book(Integer id, String name, String author,String bookconcern,String date,String synopsis,String pic) { super(); this.id = id; this.name = name; this.author = author; this.bookconcern = bookconcern; this.date =date; this.synopsis = synopsis; this.pic = pic == null ? null : pic.trim(); } 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; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getBookconcern() { return bookconcern; } public void setBookconcern(String bookconcern) { this.bookconcern = bookconcern; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getSynopsis() { return synopsis; } public void setSynopsis(String synopsis) { this.synopsis = synopsis; } public String toString() { return 'Book [id=' + id + ', name=' + name + ', author=' + author + ', bookconcern=' + bookconcern + ', date=' + date + ', synopsis=' + synopsis +', pic=' + pic+']'; } }

3、BookMapper增刪改查接口

package com.dao; import java.util.List;import org.springframework.web.multipart.MultipartFile;import com.entity.Book; public interface BookMapper { public Book getBookById(Integer id); public List<Book> getBooks(); public void insertBook(Book book); public void deleteBookById(Integer id); public void updateBook(Book book); public Book findById(Integer id); }

4、BookMapper.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'><mapper namespace='com.dao.BookMapper'> <select resultType='com.entity.Book'> select * from book </select> <insert > insert into book (name,author,bookconcern,date,synopsis,pic)values(#{name},#{author},#{bookconcern},#{date},#{synopsis},#{pic}); </insert> <delete > delete from book where id=#{id} </delete> <update id='updateBook'> update book set name=#{name},author=#{author},bookconcern=#{bookconcern},date=#{date},synopsis=#{synopsis},pic=#{pic} where id=#{id} </update> <select parameterType='int' resultType='com.entity.Book'> select * from book where id=#{id}; </select> </mapper>

5、控制類

package com.controller; import java.io.File;import java.io.IOException;import java.util.List;import java.util.Map;import java.util.UUID;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.multipart.MultipartFile;import com.entity.Book;import com.service.BookService; @Controllerpublic class BookController { @Autowired BookService bookService; @RequestMapping('/getbooks') public String books(Map<String,Object> map){ List<Book> books = bookService.getBooks(); map.put('allBooks', books); return 'allbooks'; } @RequestMapping(value='/insert',produces='text/html;charset=UTF-8') public String insert(){ return 'insert'; } @RequestMapping(value='/insertBook') public String insertBook(Book book,MultipartFile book_pic) throws IllegalStateException, IOException{ String originalFilename = book_pic.getOriginalFilename(); if(book_pic!=null && originalFilename!=null && originalFilename.length()>0){ String pic_path = 'E:spring_mybatispicture'; String newFileName = UUID.randomUUID() + originalFilename.substring(originalFilename.lastIndexOf('.')); File newFile = new File(pic_path+newFileName); book_pic.transferTo(newFile); book.setPic(newFileName); } bookService.insertBook(book); return 'redirect:getbooks'; } @RequestMapping(value='/deleteBookById') public String deleteBookById(Integer id){ bookService.deleteBookById(id); return 'redirect:getbooks'; } @RequestMapping(value='/findById') public String findById(Model model,Integer id){ Book book=bookService.findById(id); model.addAttribute('book',book); return 'update'; } @RequestMapping(value='/updateBook') public String updateBook(Book book,MultipartFile book_pic) throws IllegalStateException, IOException{ String originalFilename = book_pic.getOriginalFilename(); if(book_pic!=null && originalFilename!=null && originalFilename.length()>0){ String pic_path = 'E:spring_mybatispicture'; String newFileName = UUID.randomUUID() + originalFilename.substring(originalFilename.lastIndexOf('.')); File newFile = new File(pic_path+newFileName); book_pic.transferTo(newFile); book.setPic(newFileName); } bookService.updateBook(book); return 'redirect:getbooks'; } }

6、BookService操作

package com.service; import java.util.List;import org.apache.ibatis.session.SqlSession;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.web.multipart.MultipartFile;import com.dao.BookMapper;import com.entity.Book; @Service //標識這是一個業務類public class BookService { @Autowired //用@Autowired將BookMapper的接口對象注入到spring中 private BookMapper bookMapper; @Autowired private SqlSession sqlSession; public List<Book> getBooks(){ return bookMapper.getBooks(); } public void insertBook(Book book) { bookMapper.insertBook(book); } public void deleteBookById(Integer id) { bookMapper.deleteBookById(id); } public void updateBook(Book book) { bookMapper.updateBook(book); } public Book findById(Integer id) { return bookMapper.findById(id); } }

7、mybatis配置文件mybatis-config.xml

<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE configuration PUBLIC '-//mybatis.org//DTD Config 3.0//EN' 'http://mybatis.org/dtd/mybatis-3-config.dtd'><configuration> <settings> <setting name='mapUnderscoreToCamelCase' value='true'/> <setting name='jdbcTypeForNull' value='NULL'/> <setting name='cacheEnabled' value='true'/> <setting name='lazyLoadingEnabled' value='true'/> <setting name='aggressiveLazyLoading' value='false'/> </settings> <databaseIdProvider type='DB_VENDOR'> <property name='MySQL' value='mysql'/> <property name='SQL Server' value='sqlserver'/> </databaseIdProvider> </configuration>

8、spring配置文件applicationContext.xml

<?xml version='1.0' encoding='UTF-8'?><beans xmlns='http://www.springframework.org/schema/beans' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:context='http://www.springframework.org/schema/context' xmlns:mybatis-spring='http://mybatis.org/schema/mybatis-spring' xmlns:tx='http://www.springframework.org/schema/tx' xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd'> <context:component-scan base-package='com'> <context:exclude-filter type='annotation' expression='org.springframework.stereotype.Controller' /> </context:component-scan> <!-- 引入數據庫的配置文件 --> <context:property-placeholder location='classpath:dbconfig.properties' /> <!-- spring用來控制業務邏輯 --> <bean class='com.mchange.v2.c3p0.ComboPooledDataSource'> <property name='jdbcUrl' value='${jdbc.url}'></property> <property name='driverClass' value='${jdbc.driver}'></property> <property name='user' value='${jdbc.username}'></property> <property name='password' value='${jdbc.password}'></property> </bean> <!-- spring事務管理 --> <bean class='org.springframework.jdbc.datasource.DataSourceTransactionManager'> <property name='dataSource' ref='dataSource'></property> </bean> <!-- 基于注解的事務 --> <tx:annotation-driven transaction-manager='dataSourceTransactionManager'/> <!--創建出SqlSessionFactory對象 --> <bean class='org.mybatis.spring.SqlSessionFactoryBean'> <property name='dataSource' ref='dataSource'></property> <!-- configLocation指定全局配置文件的位置 --> <property name='configLocation' value='classpath:mybatis-config.xml'></property> <!--mapperLocations: 指定mapper文件的位置--> <property name='mapperLocations' value='classpath:mybatis/mapper/*.xml'></property> </bean> <!--配置一個可以進行批量執行的sqlSession --> <bean class='org.mybatis.spring.SqlSessionTemplate'> <constructor-arg name='sqlSessionFactory' ref='sqlSessionFactoryBean'></constructor-arg> <constructor-arg name='executorType' value='BATCH'></constructor-arg> </bean> <!-- base-package:指定mapper接口的包名 --> <mybatis-spring:scan base-package='com.dao'/> </beans>

9、連接數據庫信息dbconfig.properties

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/login?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8jdbc.username=rootjdbc.password=123456

10、web.xml配置

<?xml version='1.0' encoding='UTF-8'?><web-app xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://java.sun.com/xml/ns/javaee' xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd' version='2.5'> <display-name>spring_mybatis</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>

11、spring mvc配置文件spring-servlet.xml

<?xml version='1.0' encoding='UTF-8'?><beans xmlns='http://www.springframework.org/schema/beans' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:context='http://www.springframework.org/schema/context' xmlns:mvc='http://www.springframework.org/schema/mvc' xsi:schemaLocation='http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd'> <!-- 只掃描控制器 --> <context:component-scan base-package='com' use-default-filters='false'> <context:include-filter type='annotation' expression='org.springframework.stereotype.Controller'/> </context:component-scan> <!-- 視圖解析器 --> <bean class='org.springframework.web.servlet.view.InternalResourceViewResolver'> <property name='prefix' value='/WEB-INF/jsp/'></property> <property name='suffix' value='.jsp'></property> </bean> <mvc:annotation-driven></mvc:annotation-driven> <mvc:default-servlet-handler/></beans>

12、jsp頁面

(1)index.jsp

<%@ page language='java' contentType='text/html; charset=utf-8' pageEncoding='utf-8'%><%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %><!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'><html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'><title>首頁</title> <style type='text/css'> #top{ border:1px solid gainsboro; width:100%; height:100px; } #left{ border:1px solid gainsboro; float:left; width:10%; height:400px; } #left ul{ width:980px; margin:0px auto; height:38px; padding:0; } #left ul li a{ width:80px; height:28px; line-height:28px; background:gray; color:#FFF; margin:5px 10px; font-size:16px; display:block; text-align:center; text-decoration:none; } #left ul li a:hover{ width:78px; height:26px; line-height:28px; color:gray; background:#FFF; } #right{ border:1px solid gainsboro; width:89%; height:400px; float:right; } </style></head><body> <div id='top'> <img src='http://www.b3g6.com/bcjs/img/title.jpg' /> </div> <div id='left'> <ul><li><a href='http://www.b3g6.com/bcjs/getbooks' rel='external nofollow' >所有圖書</a></li> <li><a href='http://www.b3g6.com/bcjs/insert' rel='external nofollow' >添加圖書</a></li> </ul> </div> <div id='right'> <img src='http://www.b3g6.com/bcjs/img/3.jpg' width=100% height=100%> </div> </body></html>

(2)allbooks.jsp

<%@ page language='java' contentType='text/html; charset=UTF-8' pageEncoding='UTF-8'%><%@taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %><!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'><html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>所有圖書</title> </head><body> <table border='5' width=70% height=60%> <tr> <td colspan='7'><h1>所有圖書</h1></td> </tr> <tr> <td >編號</td> <td align='center'>書名</td> <td width=10% >作者</td> <td align='center'>出版社</td> <td width=15% >出版時間</td> <td align='center'>簡介</td> <td align='center'>圖書圖片</td> <td width=12%>操作</td> </tr> <c:forEach items='${allBooks }' var='book'> <tr> <td>${book.id }</td> <td>${book.name }</td> <td>${book.author }</td> <td>${book.bookconcern }</td> <td>${book.date }</td> <td>${book.synopsis }</td> <td> <c:if test='${book.pic !=null}'> <img src='https://rkxy.com.cn/pic/${book.pic}' width=100 height=100/> <br/> </c:if> </td> <td align='center'><a href='http://www.b3g6.com/bcjs/deleteBookById?id=${book.id }' rel='external nofollow' >刪除</a>|<a href='http://www.b3g6.com/bcjs/findById?id=${book.id} ' rel='external nofollow' >修改</a></td> </tr> </c:forEach> <tr><td border='0'><input type='button' value='返回首頁' οnclick='javascript:window.location.href =’index.jsp’;'/></td></tr> </table> </body></html>

(3)insert.jsp

<%@ page language='java' import='java.util.*' contentType='text/html; charset=UTF-8' pageEncoding='UTF-8'%><!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'><html> <head> <title>添加圖書</title> </head> <body> <form action='insertBook' method='post' enctype='multipart/form-data' enctype='multipart/form-data'> <table border='5' width=70% height=60%> <tr> <td colspan='2'><h1>添加圖書</h1></td> </tr> <tr> <td>書籍名稱:</td> <td><input type='text' name='name' size=85/></td> </tr> <tr> <td>書籍作者:</td> <td><input type='text' name='author' size=85/></td> </tr> <tr> <td>出版社:</td> <td><input type='text' name='bookconcern' size=85/></td> </tr> <tr> <td>出版時間:</td> <td><input type='text' name='date' size=85/></td> </tr> <tr> <td>簡介:</td> <td><input type='text' name='synopsis' size=85/></td> </tr> <tr> <td>圖書圖片</td><td><input type='file' name='book_pic'/> </td></tr> <tr> <td colspan='2'> <input type='submit' value='提交'/> <input type='reset' value='清空'/> <input type='button' value='返回首頁' οnclick='javascript:window.location.href =’index.jsp’;'/> </td> </tr> </table> </form> </body></html>

(4)update.jsp

<%@ page language='java' import='java.util.*' contentType='text/html; charset=UTF-8' pageEncoding='UTF-8'%><%@taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %><!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'><html> <head> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> <title>修改圖書信息</title> </head> <body> <form action='updateBook' method='post' enctype='multipart/form-data' > <table border='5' width=70% height=60%> <tr> <td colspan='2'><h1>修改圖書信息</h1></td> </tr> <tr> <td>編號:</td> <td><input type='text' name='id' value='${book.id}' readonly='readonly' size=85/></td> </tr> <tr> <td>書名:</td> <td><input type='text' name='name' value='${book.name}' size=85/></td> </tr> <tr> <td>作者:</td> <td><input type='text' name='author' value='${book.author}' size=85/></td> </tr> <tr> <td>出版社:</td> <td><input type='text' name='bookconcern' value='${book.bookconcern}' size=85/></td> </tr> <tr> <td>出版時間:</td> <td><input type='text' name='date' value='${book.date}' size=85/></td> </tr> <tr> <td>簡介:</td> <td><input type='text' name='synopsis' value='${book.synopsis}' size=85/></td> </tr> <tr><td>圖書圖片</td><td><c:if test='${book.pic !=null}'><img src='https://rkxy.com.cn/pic/${book.pic}' width=100 height=100/><br/></c:if><input type='file' name='book_pic'/> </td></tr> <tr> <td colspan='2'> <input type='submit' value='提交'/> <input type='button' value='返回首頁' οnclick='javascript:window.location.href =’index.jsp’;'/> </td> </tr> </table> </form> </body></html>

13、所需的jar包

spring+mybatis實現圖書管理系統

更多學習資料請關注專題《管理系統開發》。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久久久9999高清| 美女性感视频久久| 日本欧美韩国一区三区| 中文字幕亚洲精品乱码| 91成人在线精品视频| 在线一区免费观看| 亚洲天堂av资源在线观看| 亚洲天堂黄色| 国产亚洲激情| 亚洲美洲欧洲综合国产一区| 日韩高清一区在线| 久久中文字幕一区二区三区| 国产精品嫩草99av在线| 亚洲精品电影| 免费日韩视频| 国产一区精品福利| 亚洲一级二级| 香蕉久久99| 在线一区免费观看| 亚洲乱码一区| 日本午夜精品视频在线观看| 日本免费一区二区视频| 国产三级精品三级在线观看国产| 中文字幕高清在线播放| 欧美日韩一二| 亚洲无线一线二线三线区别av| 欧美不卡高清| 国产精品男女| 国产情侣久久| 国产亚洲在线| 蜜桃av一区二区在线观看| 国产精品99视频| 三级一区在线视频先锋| 蜜臀av在线播放一区二区三区| 亚洲ab电影| 亚洲视频综合| 久久xxxx精品视频| 69堂免费精品视频在线播放| 麻豆精品在线视频| 日韩在线观看不卡| 国产免费播放一区二区| 美女在线视频一区| 欧美三级网址| 男女激情视频一区| 国产精品天堂蜜av在线播放| 麻豆成全视频免费观看在线看| 久久人人99| 日本成人一区二区| 久久久久久夜| 夜夜嗨av一区二区三区网站四季av| 蜜臀a∨国产成人精品| 国产激情久久| 99精品综合| 久久精品天堂| 亚洲aⅴ网站| 老牛国内精品亚洲成av人片| 久久精品国产99久久| 中文字幕一区二区三区四区久久| 国产美女精品视频免费播放软件| 高清av一区| 亚洲欧洲专区| 亚洲天堂一区二区| 日本欧美一区二区| 日韩精品91| 欧美韩日一区| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品日韩精品在线播放 | 亚洲二区三区不卡| 国产劲爆久久| 免费不卡在线视频| 不卡福利视频| 日本在线视频一区二区| 久久久精品日韩| 欧美天堂一区| 日韩午夜电影| 日韩不卡一区| 欧美午夜三级| 玖玖玖国产精品| 国产精品theporn| 亚洲永久字幕| 欧产日产国产精品视频| 国产精品巨作av| 综合色一区二区| 久久精品官网| 国产一区二区三区四区| 日韩一区二区三免费高清在线观看 | 欧美亚洲精品在线| 国产精品麻豆成人av电影艾秋 | 欧美中文一区二区| 国产一区二区三区亚洲| 日本一区二区中文字幕| 不卡一区综合视频| 久久久久久网| 国产精品99精品一区二区三区∴| 在线午夜精品| 在线一区视频观看| 日本视频中文字幕一区二区三区| 伊人久久亚洲热| 欧美13videosex性极品| 久久久久亚洲精品中文字幕| 日本h片久久| 视频一区在线视频| 精品日产乱码久久久久久仙踪林| 天堂精品久久久久| 美女91精品| 午夜国产一区二区| 久久久久久黄| 国产传媒在线| 久久精品资源| 国产精品日本一区二区不卡视频 | 欧美激情福利| 日韩国产成人精品| 亚洲视频国产| 视频精品一区二区| 欧美专区18| 欧美午夜不卡| av成人国产| 久久xxxx| 亚洲欧美日韩精品一区二区 | 日韩精品网站| 中文字幕在线视频网站| 精品在线91| 国产一区二区三区自拍| 亚洲播播91| 波多野结衣久久精品| 久久久久久久欧美精品| 综合日韩av| 亚洲播播91| 亚洲成a人片| 亚洲婷婷免费| 午夜国产精品视频| 在线国产一区二区| 国产一区日韩一区| 在线日韩av| 亚洲一区国产| 午夜亚洲福利| 国产乱码精品| 国产一区二区三区黄网站| 日产精品一区二区| 成人日韩在线观看| 亚洲精品在线观看91| 久久最新视频| 欧美视频久久| 精品资源在线| 成人自拍av| 亚洲一区二区网站| 日韩av一区二区三区| 欧美亚洲三区| 成人在线免费观看网站| 色88888久久久久久影院| 亚洲精品va| 日韩国产欧美三级| 久久亚洲道色| 久久免费大视频| 一本综合精品| 国产高清视频一区二区| 在线人成日本视频| 伊人久久亚洲热| 日韩高清一级| 在线看片国产福利你懂的| 美女少妇全过程你懂的久久| 蜜臀av国产精品久久久久| 视频一区中文字幕精品| 国产日产精品_国产精品毛片 | 7777精品| 日韩大片免费观看| 在线亚洲自拍| 美女尤物国产一区| 欧美+亚洲+精品+三区| 亚洲精品黄色| 日韩av免费大片| 久久先锋影音| 国产精品videosex极品| 国产成人精品999在线观看| 欧美1级日本1级| 日韩美女精品| 成人日韩精品| 亚洲a在线视频| 日韩在线电影| 成人亚洲一区| 三级亚洲高清视频| 久久99蜜桃| 欧美一级精品| 欧美精品影院| 亚洲欧美日韩国产一区| 国产精品2023| 99热精品在线| 精品一区二区三区亚洲| 精品日韩毛片| 国产欧美日韩在线一区二区| 日本美女一区| 97精品久久| 久久国产直播| 国产精品欧美一区二区三区不卡| 久久久夜精品| 国产日韩视频在线| 99日韩精品| 桃色av一区二区| 日本欧美一区二区| 久久精品动漫|