ssm实战(二)建表、配置maven

本文介绍了在SSM项目中如何设计数据库表并使用Maven进行项目配置。建了11个实体类对应数据库表,并在resources下创建mapper和配置文件目录。接着在webcontent下组织项目结构,包括存放控制器、业务逻辑层、数据持久层等。最后,详细说明了引用jar包到pom.xml的过程,完成Maven配置。

本文参考自: 原文地址

上面说了大致各个角色功能和前端展示系统,现在就设计实体类及其对应的数据库的表,一共有11个实体类,分别是












public class Account {//系统账号,登陆用的
private Long accountId;
private String accountNumber;
private String accountPassword;
private Integer type;//0学生,1前台,2物资管理,3图书管理,4超级管理员,学生可以自己注册
private Date createTime;
private Date lastLoginTime;
private Integer enableStatus;//账号可用情况

根据这些信息在数据库建立相应的表,建表代码如下

CREATE TABLE `tb_area` (
  `area_id` int(2) NOT NULL AUTO_INCREMENT,
  `area_name` varchar(200) NOT NULL,
  `create_date` datetime DEFAULT NULL,
  `priority` int(2) NOT NULL DEFAULT '0',
  `last_edit_time` datetime DEFAULT NULL,
  `area_desc` varchar(1024) DEFAULT NULL,
  PRIMARY KEY (`area_id`),
  UNIQUE KEY `area_name` (`area_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

CREATE TABLE `tb_book` (
  `book_id` int(11) NOT NULL AUTO_INCREMENT,
  `book_name` varchar(256) NOT NULL,
  `book_desc` varchar(1024) DEFAULT NULL,
  `book_img` varchar(1024) DEFAULT NULL,
  `book_addr` varchar(1024) DEFAULT NULL,
  `priority` int(3) DEFAULT '0',
  `create_time` datetime DEFAULT NULL,
  `last_edit_time` datetime DEFAULT NULL,
  `enable_status` int(2) DEFAULT '0' COMMENT '上下架,审核',
  `book_category_id` int(11) DEFAULT NULL,
  `total_count` int(11) NOT NULL DEFAULT '0',
  `borrow_count` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`book_id`),
  KEY `fk_book_category_book` (`book_category_id`),
  CONSTRAINT `fk_book_category_book` FOREIGN KEY (`book_category_id`) REFERENCES `tb_book_category` (`book_category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `tb_book_category` (
  `book_category_id` int(11) NOT NULL AUTO_INCREMENT,
  `book_category_name` varchar(100) DEFAULT NULL,
  `book_category_desc` varchar(1000) DEFAULT NULL,
  `book_category_img` varchar(2000) DEFAULT NULL,
  `priority` int(2) NOT NULL DEFAULT '0',
  `creat_time` datetime DEFAULT NULL,
  `last_edit_time` datetime DEFAULT NULL,
  `parent_id` int(11) DEFAULT NULL,
  `area_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`book_category_id`),
  KEY `fk_book_category_self` (`parent_id`),
  KEY `fk_area_book` (`area_id`),
  CONSTRAINT `fk_area_book` FOREIGN KEY (`area_id`) REFERENCES `tb_area` (`area_id`),
  CONSTRAINT `fk_book_category_self` FOREIGN KEY (`parent_id`) REFERENCES `tb_book_category` (`book_category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `tb_manager` (
  `manager_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) DEFAULT NULL,
  `profile_img` varchar(1024) DEFAULT NULL,
  `phone` varchar(100) DEFAULT NULL,
  `gender` varchar(2) DEFAULT NULL,
  `enable_status` int(2) DEFAULT '0',
  `manager_type` int(2) NOT NULL DEFAULT '1',
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`manager_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `tb_notice` (
  `notice_id` int(11) NOT NULL AUTO_INCREMENT,
  `context` varchar(1024) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  `last_edit_time` datetime DEFAULT NULL,
  `priority` int(2) DEFAULT NULL,
  `enable_status` int(2) NOT NULL DEFAULT '0' COMMENT '公告可用与否',
  PRIMARY KEY (`notice_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `tb_record` (
  `record_id` int(11) NOT NULL AUTO_INCREMENT,
  `record_desc` varchar(1024) NOT NULL,
  `create_time` datetime DEFAULT NULL,
  `student_id` int(11) DEFAULT NULL,
  `manager_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`record_id`),
  KEY `fk_record_student` (`student_id`),
  KEY `fk_record_manager` (`manager_id`),
  CONSTRAINT `fk_record_student` FOREIGN KEY (`student_id`) REFERENCES `tb_student` (`student_id`),
  CONSTRAINT `fk_record_manager` FOREIGN KEY (`manager_id`) REFERENCES `tb_manager` (`manager_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `tb_student` (
  `student_id` int(10) NOT NULL AUTO_INCREMENT,
  `student_name` varchar(32) DEFAULT NULL,
  `profile_img` varchar(1024) DEFAULT NULL,
  `gender` varchar(2) DEFAULT NULL,
  `enable_status` int(2) NOT NULL DEFAULT '0' COMMENT '是否可用',
  `create_time` datetime DEFAULT NULL,
  `last_edit_time` datetime DEFAULT NULL,
  `email` varchar(1024) DEFAULT NULL,
  `credit_score` int(3) DEFAULT NULL,
  PRIMARY KEY (`student_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `tb_operation_record` (
  `operation_record_id` int(11) NOT NULL AUTO_INCREMENT,
  `operation_desc` varchar(1024) DEFAULT NULL,
  `operator_id` int(11) NOT NULL,
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`operation_record_id`),
  KEY `fk_operator` (`operator_id`),
  CONSTRAINT `fk_operator` FOREIGN KEY (`operator_id`) REFERENCES `tb_manager` (`manager_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8


CREATE TABLE `tb_material` (
  `material_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `total_count` int(11) NOT NULL,
  `create_date` datetime DEFAULT NULL,
  `last_edit_time` datetime DEFAULT NULL,
  PRIMARY KEY (`material_id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

CREATE TABLE `tb_area_material` (
  `material_area_info_id` int(11) NOT NULL AUTO_INCREMENT,
  `area_id` int(11) NOT NULL,
  `material_id` int(11) NOT NULL,
  `material_count` int(11) NOT NULL,
  `create_date` datetime DEFAULT NULL,
  `last_edit_time` datetime DEFAULT NULL,
  PRIMARY KEY (`material_area_info_id`),
  KEY `fk_area` (`area_id`),
  KEY `fk_material` (`material_id`),
  CONSTRAINT `fk_area` FOREIGN KEY (`area_id`) REFERENCES `tb_area` (`area_id`),
  CONSTRAINT `fk_material` FOREIGN KEY (`material_id`) REFERENCES `tb_material` (`material_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `tb_account` (
  `account_id` int(11) NOT NULL AUTO_INCREMENT,
  `account_number` varchar(30) NOT NULL,
  `account_password` varchar(20) NOT NULL,
  `type` int(2) NOT NULL DEFAULT '0',
  `create_time` datetime DEFAULT NULL,
  `last_login_time` datetime DEFAULT NULL,
  `enable_status` int(2) NOT NULL DEFAULT '0',
  PRIMARY KEY (`account_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8




建好表以后就继续构建maven项目:

在resources下新建两个文件夹存放mybatis的mapper文件和spring的配置文件


然后在webcontent文件夹下新建resources文件夹(存放js,css等资源)

然后构建项目基本目录


web用来存放控制器,service是业务逻辑层,dao是和数据持久层(与数据相关的操作),dto是弥补entity不足,比如entity返回一个列表,并且要返回一个标识是否成功,其实就是对实体类的进一步封装,enums是枚举类,interceptor是拦截器,用于权限校验,登陆等等,util是存放通用的工具类

接下来是引用jar包

要上maven公库去找到相应的jar包的坐标,最好选多人用的版本,最后配置到的pom.xml如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.gdut.imis2</groupId>
  <artifactId>library</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
   <properties>
 <spring.version>4.3.7.RELEASE</spring.version>
 </properties>
  
  <dependencies>
  <!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>
 <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>
 <!-- Spring -->
 <!-- 1)包含Spring 框架基本的核心工具类。Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心 -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-core</artifactId>
 <version>${spring.version}</version>
 </dependency>
 <!-- 2)这个jar 文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean 以及进行Inversion of Control 
 / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI 支持,引入spring-core.jar 
 及spring-beans.jar 文件就可以了。 -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-beans</artifactId>
 <version>${spring.version}</version>
 </dependency>
 <!-- 3)这个jar 文件为Spring 核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 
 所需的全部类,instrumentation组件以及校验Validation 方面的相关类。 -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 <version>${spring.version}</version>
 </dependency>
 <!-- 4) 这个jar 文件包含对Spring 对JDBC 数据访问进行封装的所有类。 -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-jdbc</artifactId>
 <version>${spring.version}</version>
 </dependency>
 <!-- 5) 为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。 -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-tx</artifactId>
 <version>${spring.version}</version>
 </dependency>
 <!-- 6)Spring web 包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。 -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-web</artifactId>
 <version>${spring.version}</version>
 </dependency>
 <!-- 7)包含SpringMVC框架相关的所有类。 -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-webmvc</artifactId>
 <version>${spring.version}</version>
 </dependency>
 <!-- 8)Spring test 对JUNIT等测试框架的简单封装 -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-test</artifactId>
 <version>${spring.version}</version>
 <scope>test</scope>
 </dependency>
 <!-- servlet web -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>
 <!-- json解析 -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.5</version>
</dependency>
 <!-- spring-core需要用到 -->
<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.1</version>
</dependency>
 <!-- mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.1</version>
</dependency>
 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.1</version>
</dependency>
 <!-- 数据库连接 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.38</version>
</dependency>
 <!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
<dependency>
    <groupId>c3p0</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.1.2</version>
</dependency>
 <dependency>
 <groupId>commons-fileupload</groupId>
 <artifactId>commons-fileupload</artifactId>
 <version>1.3.2</version>
 </dependency>
 
 
  </dependencies>
   <build>
 <finalName>libraray</finalName>
 <plugins>
 <plugin>
 <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-compiler-plugin</artifactId>
 <version>3.6.0</version>
 <configuration>
 <source>1.8</source>
 <target>1.8</target>
 <encoding>UTF8</encoding>
 </configuration>
 </plugin>
 </plugins>
 </build>
  
</project>

自此,maven的配置结束

然后完善各层的配置。

[ 2021年,将Spring全家桶的课程进行Review,确保不再有顺序错乱等问题导致学员看不懂内容,进入2022年,将Spring的课程进行整理,整理为案例精讲的系列课程,并开始逐步增加高阶的Spring Security等内容,课件将逐步进行上传,敬请期待! ]本课程是Spring全家桶案例精讲课程的第部分Spring MVC,Spring案例精讲课程以真实场景、项目实战为导向,循序渐进,深入浅出的讲解Java网络编程,助力您在技术工作中更进一步。 本课程聚焦Java Spring的Web知识点,主要是关于Spring MVC的应用,包含:表单的增删改查、国际化、过滤器、拦截器、日志Log4j2及slf4j的使用、主题更改网站皮肤及样式、文件上传等的案例讲解,并且最后以一个SSM(Spring+Spring MVC+Mybatis)贯穿前后台的案例作为Spring MVC课程的终奖, 从而使大家快速掌握Spring的基础核心知识,快速上手,为面试、工作等做好充足准备。 由于本课程聚焦于案例,即直接上手操作,对于Spring的原理等不会做过多介绍,希望了解原理等内容的需要通过其他视频或者书籍去了解,议按照该案例课程一步步做下来,之后再去进一步回顾原理,这样能够促进大家对原理有更好的理解。 【通过Spring全家桶,我们保证你能收获到以下几点】 1、掌握Spring全家桶主要部分的开发、实现2、可以使用Spring MVC、Spring Boot、Spring Cloud及Spring Data进行大部分的Spring开发3、初步了解使用微服务、了解使用Spring进行微服务的设计实现4、奠定扎实的Spring技术,具备了一定的独立开发的能力  【实力讲师】 毕业于清华大学软件学院软件工程专业,曾在Accenture、IBM等知名外企任管理及架构职位,近15年的JavaEE经验,近8年的Spring经验,一直致力于架构、设计、开发及管理工作,在电商、零售、制造业等有丰富的项目实施经验 【本课程适用人群】如果你是一定不要错过!  适合于有JavaEE基础的,如:JSP、JSTL、Java基础等的学习者没有基础的学习者跟着课程可以学习,但是需要补充相关基础知识后,才能很好的参与到相关的工作中。 【Spring全家桶课程共包含如下几门】 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值