使⽤Maven+SSM框架搭建图书管理系统
图书管理系统功能:登陆、查询、借书、还书(⽰例只实现了登陆功能)
⼀、环境准备
数据库软件:SQL Server 2005
IDE:Eclipse
JDK:jdk1.8.0_144
Tomcat:apache-tomcat-8.5.29
在Eclipse中部署Tomcat:Window-->preferences-->server-->Runtime Environments-->Add-->选择你的Tomcat所在⽬录
⼆、创建数据库表
1)书籍信息表Book
BookID    BookName    Stock(书籍库存)
2)学⽣信息表 Student
StudentID    StudentName      Password
3)借阅记录表 BorrowingRecord
RecordID    BookID      StudentID
除Stock是int类型外,其他都是nchar(10)类型
在SQL Server 2005中建⽴外键约束:
⼀个表中的主键可以作为另⼀个表的外键。右键外键表-->关系-->添加-->点击表和列规范后的“...”图标。
三、Maven简介
1、什么是Maven
Apache Maven是⼀个项⽬管理和整合⼯具。基于⼯程对象模型的概念(POM),通过⼀个中央信息管理模块,Maven能够管理项⽬的构建、报告和⽂档。
Maven⼯程结构和内容被定义在⼀个xml⽂件中——l,是Project Object Model的简称,此⽂件是Maven系统的基础组件。
2、为什么要⽤Maven
当我们创建⼀个Maven项⽬后,就不需要⾃⼰去导⼊各种jar包了,将要导⼊的jar包依赖信息配置在l中,Maven项⽬会根据具体的配置⾃动在编译、测试和运⾏的时候从本地仓库中导⼊相应的各种依赖。
这样做有两个最⼤的好处:⼀是项⽬的依赖被统⼀管理,不容易出现依赖冲突(⽐如说jar包引⼊的版本冲突);另⼀个就是项⽬的体积变⼩了,毕竟⼀个稍微⼤些的项⽬光是引⼊的jar包就占了相当多的体积,⽽Maven项⽬只需要⼀个l⽂件就搞定了。
表单的作用是什么这⾥有两个问题:
2)之前说过使⽤Maven管理项⽬不需要⾃⾏导⼊jar包,只需添加依赖,项⽬会到本地的maven仓库中相应的jar包,若本地仓库中没有,maven会⾃动下载⾄仓库中。仓库中的jar包可供所有项⽬使⽤。此处有两个问题:①maven下载⼤量的jar包,导致某盘不够⽤,需要更换更⼤的分区。Eclipse⾃带的Maven插件,其仓库默认是在C盘的,这就更不好了。可以通过Window-->Preferences-->Maven-->Us
er Settings来查看和更改仓库的默认路径。②并不是所有的jar包Maven都能⾃⾏下载成功的,⽐如我⽤的连接SQL Server数据库的sqljdbc4.jar Maven就不能下载成功(具体原因我也不知道...),这时就需要我们⾃⾏下载,然后放到maven的仓库中去。(注意,maven的jar包管理是分类的,不能直接将下载好的jar包丢在根⽬录下,应该寻它应处的正确位置。⽐如sqljdbc4.jar存在com-->microsoft-->sqlserver--
>sqljdbc4-->4.0⽬录下,虽然maven没有下载成功,但是在该⽬录下已经有两个.lastUpdated⽂件)
约定优于配置
Maven使⽤约定⽽不是配置,开发者不需要再关⼼每⼀个配置细节。当创建Maven⼯程时,Maven会创建默认的⼯程结构,开发者只需要合理的放置⽂件,并在l中添加项⽬相关的依赖。
使⽤Maven创建项⽬,默认分为以下⼏个⽂件夹:
src/main/java ⽤来存放项⽬源码
src/main/resources 存放资源⽂件,⽐如.properties⽂件
src/test/java 存放测试⽤的代码
src/test/resources 存放测试⽤的资源⽂件
target/classes 编译后的⽂件
target/test-classes 编译后⽤于测试的⽂件
四、使⽤Eclipse的Maven插件
使⽤Eclipse的Maven插件创建并管理项⽬。File-->New-->Maven Project
在⽹上看的都说要⾃⾏下载并配置Maven,但是我看Eclipse上有,就没有下载,不知道两者有什么差别。
五、使⽤SSM框架搭建项⽬
1、基本概念
SSM框架是Spring、SpringMVC、MyBatis框架的整合,是标准的MVC模式,将整个系统划分为表现层、controller层、service层和DAO层。使⽤SpringMVC负责请求的转发和视图管理,Spring实现业务对象管理,MyBatis作为数据对象的持久化引擎。
1)Spring 是⼀个于2003年兴起的轻量级Java开发框架,是为了解决企业应⽤开发的复杂性创建的。Spring能使⽤基本的JavaBean来完成以前只可能由EJB完成的事情。然⽽,Spring的⽤途不仅限于服务器端的开发,从简单性、可测试性、松耦合的⾓度⽽⾔,任何Java应⽤都能从Spring中受益。简单来说,Spring是⼀个轻量级的控制反转(IoC)和⾯向切⾯(AOP)的容器框架。我们平时开发接触最多的估计就是IoC容器,它可以装载Bean(也就是Java中的类),有了这个机制,我们就不⽤在每次使⽤这个类的时候为它初始化,很少看见关键字new。另外,Spring的AOP,事务管理等等都是我们经常⽤到的(这两个⽅⾯我还不是很懂)。
AOP:⾯向切⾯编程,是⾯向对象开发的⼀种补充,它允许开发⼈员在不改变原来模型的基础上动态的修改模型以满⾜新的需求,如动态的增加⽇志、安全或异常处理等。AOP使业务逻辑各部分间的耦合度降低,提⾼程序的可重⽤性,提⾼开发效率。
2)SpringMVC 分离了控制器、模型对象、分派器以及处理程序对象的⾓⾊,这种分离让它们更容易进⾏定制。
3)MyBatis 是⼀个基于Java的持久层框架,消除了⼏乎所有的JDBC代码和参数的⼿⼯设置以及结果集的检索。MyBatis使⽤简单的XML 或注解⽤于配置或原始映射,将接⼝和Java的POJOs(普通的Java对象)映射成数据库中的记录。MyBatis的操作都是围绕⼀个sqlSessionFactory实例展开的。my
batis通过配置⽂件关联到各实体类的Mapper⽂件,其中配置了每个类对数据库所需进⾏的sql语句映射,在每次与数据库交互时,通过sqlSessionFactory拿到⼀个sqlSession,再执⾏sql命令。
2、SSM整合
这次整合分了两个配置⽂件:l和l⽂件
⼀个资源⽂件:jdbc.properties⽂件
都放在src/main/resources⽂件夹下。
1)引⼊jar包(在我的l⽂件中都有,就不⼀⼀列举了)
<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"  xsi:schemaLocation="/POM/4.0.0 /maven-v4_0_0.xsd">
properties是什么文件<modelVersion>4.0.0</modelVersion>
<groupId>org.LibraryManage</groupId>
<artifactId>LibraryManage</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>LibraryManage Maven Webapp</name>
<url></url>
<properties>
<!-- 主要是为了验证这个节点是不是可以⾃命名,建议⽤spring.version这样明确的名字 -->
<haha.version>4.3.5.RELEASE</haha.version>
</properties>
<dependencies>
<!-- junit包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<!-- 表⽰开发的时候引⼊,发布的时候不会加载此包 -->
<scope>test</scope>
</dependency>
<!-- javaee包 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<!-- Spring核⼼包 -->
<!-- mvnrepository/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${haha.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.5.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>
<!-- mybatis核⼼包 -->
<dependency>
<groupId&batis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- mybatis-spring核⼼包 -->
<dependency>
<groupId&batis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!-- 连接SQL server的jar包 -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
<!-- mysql数据库链接包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<!-- dbcp核⼼包,⽤于在l中配置数据库 -->
<!-- dbcp核⼼包,⽤于在l中配置数据库 --> <dependency>
<groupId>commons-dbcp</groupId>
字体样式英语
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- jstl标签类 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- ⽇志⽂件管理包 -->
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- 格式化对象,⽅便输出⽇志 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.46</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
configure web facet first
vue顶部导航菜单<version>1.7.25</version>
<scope>test</scope>
</dependency>
<!-- log end -->
<!-- 映⼊JSON -->
<dependency>
<groupId&dehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- 上传组件包 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
手机网址在哪<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。