创建表
CREATE DATABASE SSM
CHARACTER SET utf8;
产品信息表
create table product
(
id varchar(32) COMMENT '设置主键',
productNum varchar(50) not null COMMENT '唯一的产品编号',
productName varchar(50) COMMENT '产品名称',
cityName varchar(50) COMMENT '出发城市',
DepartureTime TIMESTAMP COMMENT '出发时间',
productPrice double comment '产品价格',
productDesc varchar(500) comment '产品描述',
productStatus int comment '状态(0关闭 1开启)',
primary key (id)
);
insert into PRODUCT (id, productnum, productname, cityname, departuretime, productprice, productdesc, productstatus) values ('676C5BD1D35E429A8C2E114939C5685A', 'itcast-002', '北京三日游', '北京', '2018-10-11 00:00:00', 1200, '不错的旅行', 1);
insert into PRODUCT (id, productnum, productname, cityname, departuretime, productprice, productdesc, productstatus) values ('12B7ABF2A4C544568B0A7C69F36BF8B7', 'itcast-003', '上海五日游', '上海', '2018-10-11 00:00:00', 1800, '魔都我来了', 0);
insert into PRODUCT (id, productnum, productname, cityname, departuretime, productprice, productdesc, productstatus) values ('9F71F01CB448476DAFB309AA6DF9497F', 'itcast-001', '北京三日游', '北京', '2018-10-11 00:00:00', 1200, '不错的旅行', 1);
maven工程搭建
创建maven工程
搭建父工程
1、Create New Project—》 Maven — 》 Project SDK【我的是java version 11.04】—》 不要勾选Create form archetype----》Next
2、填写相关group
GroupId:com.itheima.heima_ssm
ArtifactId: heima_ssm
然后点击next
3、选择项目位置: Project Location和填写项目名称,此时是itcastssm
点击finish
4、选择Enable Auto-Import,然后等待项目构建完成
搭建子工程
1、搭建heima_ssm_dao
- 选中父工程----》New -----》Module----》Maven— 》 Project SDK【我的是java version 11.04】—》 不要勾选Create form archetype----》Next
- ArtifactId: heima_ssm_dao
- 然后点击next,点击finish
2、搭建heima_ssm_service
- 选中父工程----》New -----》Module----》Maven— 》 Project SDK【我的是java version 11.04】—》 不要勾选Create form archetype----》Next
- ArtifactId: heima_ssm_service
- 然后点击next,点击finish
3、搭建heima_ssm_domain
- 选中父工程----》New -----》Module----》Maven— 》 Project SDK【我的是java version 11.04】—》 不要勾选Create form archetype----》Next
- ArtifactId:heima_ssm_domain
- 然后点击next,点击finish
4、搭建heima_ssm_utils
- 选中父工程----》New -----》Module----》Maven— 》 Project SDK【我的是java version 11.04】—》 不要勾选Create form archetype----》Next
- ArtifactId:heima_ssm_utils
- 然后点击next,点击finish
5、搭建heima_ssm_web
- 选中父工程----》New -----》Module----》Maven— 》 Project SDK【我的是java version 11.04】—》 勾选Create form archetype, 选中webapp骨架【如下图】----》Next
- ArtifactId:heima_ssm_web,检查maven的配置信息是否正确,点击next
- 然后点击next,点击finish
引入maven坐标
D:\workspace\heima_ssm\pom.xml中
<properties>
<spring.version>5.0.2.RELEASE</spring.version>
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.12</log4j.version>
<mysql.version>8.0.15</mysql.version>
<mybatis.version>3.4.5</mybatis.version>
<spring.security.version>5.0.1.RELEASE</spring.security.version>
</properties>
<dependencies> <!-- spring -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency> <!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency> <!-- log end -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.security.version}</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
编写实体类
位置: D:\workspace\heima_ssm\heima_ssm_domain\src\main\java
创建包:com.itheima.ssm.domain
创建实体类:Product
public class Product {
private String id; // 主键
private String productNum; // 编号 唯一
private String productName; // 名称
private String cityName; // 出发城市
private Date departureTime; // 出发时间
private String departureTimeStr;
private double productPrice; // 产品价格
private String productDesc; // 产品描述
private Integer productStatus; // 状态 0 关闭 1 开启
private String productStatusStr;
// ... get , set 以及tosring还有构造函数省略
}
编写持久层接口接口
位置:D:\workspace\heima_ssm\heima_ssm_dao\src\main\java
创建包:com.itheima.ssm.dao.api
创建接口:IProductDao
public interface IProductDao {
// 查询所有的产品信息
@Select("select * from product")
List<Product> findAll() throws Exception;
}
编写业务层接口
位置:D:\workspace\heima_ssm\heima_ssm_service\src\main\java
创建包:com.itheima.ssm.service.api
创建接口:IProductService
public interface IProductService {
List<Product> findAll() throws Exception;
}
编写业务层实现
位置:D:\workspace\heima_ssm\heima_ssm_service\src\main\java
创建包:com.itheima.ssm.service.impl
创建接口:IProductServiceImpl
@Service
@Transactional // 事物
public class IProductServiceImpl implements IProductService {
@Autowired
private IProductDao productDao;
@Override
public List<Product> findAll() throws Exception {
return productDao.findAll();
}
}
编写控制层
位置:D:\workspace\heima_ssm\heima_ssm_web\src\main\java
创建包:com.itheima.ssm.controller
创建接口:ProductController
@Controller
@RequestMapping("product")
public class ProductController {
@Autowired
private IProductService productService;
@RequestMapping("/findAll.do")
public ModelAndView findAll() throws Exception{
ModelAndView modelAndView = new ModelAndView();
List<Product> all = productService.findAll();
modelAndView.addObject("", all);
modelAndView.setViewName("");
return modelAndView;
}
}