Java SSM 项目实战 day02 功能介绍,SSM整合,数据库和IDEA的maven工程搭建,产品信息查询和添加
发布日期:2021-06-29 15:04:12 浏览次数:2 分类:技术文章

本文共 26495 字,大约阅读时间需要 88 分钟。

一、数据库与表结构

1、环境准备

1.1数据库与表结构

1.1.1创建用户与授权数据库我们使用Oracle

Oracle为每个项目创建单独user,oracle数据表存放在表空间下,每个用户有独立表空间创建用户及密码:

语法[创建用户]: create user用户名identified by 口令[即密码];例子:create user test identified by test;

授权

语法:grant connect,resource to用户名;例子: grant connect,resource to test;

PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要优势。

(1)连接oracle数据库
以system用户的方式登录数据库
在这里插入图片描述
(2)创建用户
在这里插入图片描述
设置用户名和密码ssm和itzheng
在这里插入图片描述
设置权限
在这里插入图片描述
也可以点击右下角,观看SQL语句
在这里插入图片描述
在这里插入图片描述
重新打开PL/SQL以ssm用户的方式登录
在这里插入图片描述

1.1.2创建表

产品表信息描述

在这里插入图片描述
创建表sql

CREATE TABLE product(       id varchar2(32) default SYS_GUID() PRIMARY KEY,       productNum VARCHAR2(50) NOT NULL,       productName VARCHAR2(50),       cityName VARCHAR2(50),       DepartureTime timestamp,       productPrice Number,       productDesc VARCHAR2(580),       productStatus INT,       CONSTRAINT product UNIQUE (id,productNum))insert into product (id,productNum,productName,cityName,DepartureTime,productprice,productDesc,productstatus)values ('676C5BD1035E429A8C2E114939C5685A','itzheng-002','北京三日游','北京',to_timestamp('10-10-2018 10:10:00.000000','dd-mm-yyyy hh24:mi:ss.ff'),1200,'不错的旅行',1);insert into product (id,productNum,productName,cityName,DepartureTime,productprice,productDesc,productstatus)values ('9F71F01CB448476DAFB309AA6DF9497F', 'itzheng-801','北京三日游','北京', to_timestamp( '10-10-2018 14:30:00.000000' , 'dd-mm-yyyy hh24:mi:ss.ff'),1800,'不错的旅行',0); insert into PRoDuCT (id,productnum,productname,cityname,depanrturetime,productprice,productdesc, productstatus)values ( '9F71F01CB448476DAFB309AA6DF9497F', 'itzheng-801','北京三日游','北京',to_timestamp( '10-10-2018 10:10:00.0oooo0' , 'dd-mm-yyyy hh24:mi:ss.fF'),1200,‘不错的旅行',1);

在这里插入图片描述

二、环境搭建

1、创建maven工程

(1)创建父工程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建成功
在这里插入图片描述

(2)创建子工程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(3)创建其他子模块

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)创建最后的web模块

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所有的都创建成功
在这里插入图片描述

(5)修改pom.xml

在这里插入图片描述

复制以下内容

4.0.0
com.itzheng.zheng_ssm
zheng_ssm
pom
1.0-SNAPSHOT
5.0.15.RELEASE
1.7.12
1.2.17
1.2.3
3.5.2
8.0.17
10.2.0.1.0
5.0.10.RELEASE
org.springframework
spring-context
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-test
${spring.version}
org.mybatis
mybatis
${mybatis.version}
org.aspectj
aspectjweaver
1.9.2
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-orm
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-core
${spring.version}
org.springframework
spring-test
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-tx
${spring.version}
junit
junit
4.12
test
javax.servlet
javax.servlet-api
4.0.1
provided
javax.servlet.jsp
jsp-api
2.2
provided
jstl
jstl
1.2
log4j
log4j
${log4j.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
2.0.2
c3p0
c3p0
0.9.1.2
jar
compile
com.github.pagehelper
pagehelper
5.1.10
org.springframework.security
spring-security-web
${spring.security.version}
org.springframework.security
spring-security-config
${spring.security.version}
org.springframework.security
spring-security-core
${spring.security.version}
org.springframework.security
spring-security-taglibs
${spring.security.version}
com.alibaba
druid
1.1.9
mysql
mysql-connector-java
${mysql.version}
com.oracle
ojdbc14
${oracle.version}
javax.annotation
jsr250-api
1.0
org.apache.maven.plugins
maven-compiler-plugin
3.6.1
1.8
1.8
UTF-8
true
zheng_ssm_dao
zheng_ssm_service
zheng_ssm_domain
zheng_ssm_utils
zheng_ssm_web
zheng_ssm_web

2、编写实体类Product

创建包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建类
在这里插入图片描述
在这里插入图片描述

package com.itzheng.ssm.domain;import java.util.Date;/*产品信息 */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; public Product() {
} public Product(String id, String productNum, String productName, String cityName, Date departureTime, String departureTimeStr, double productPrice, String productDesc, Integer productStatus, String productStatusStr) {
this.id = id; this.productNum = productNum; this.productName = productName; this.cityName = cityName; this.departureTime = departureTime; this.departureTimeStr = departureTimeStr; this.productPrice = productPrice; this.productDesc = productDesc; this.productStatus = productStatus; this.productStatusStr = productStatusStr; } public String getId() {
return id; } public void setId(String id) {
this.id = id; } public String getProductNum() {
return productNum; } public void setProductNum(String productNum) {
this.productNum = productNum; } public String getProductName() {
return productName; } public void setProductName(String productName) {
this.productName = productName; } public String getCityName() {
return cityName; } public void setCityName(String cityName) {
this.cityName = cityName; } public Date getDepartureTime() {
return departureTime; } public void setDepartureTime(Date departureTime) {
this.departureTime = departureTime; } public String getDepartureTimeStr() {
return departureTimeStr; } public void setDepartureTimeStr(String departureTimeStr) {
this.departureTimeStr = departureTimeStr; } public double getProductPrice() {
return productPrice; } public void setProductPrice(double productPrice) {
this.productPrice = productPrice; } public String getProductDesc() {
return productDesc; } public void setProductDesc(String productDesc) {
this.productDesc = productDesc; } public Integer getProductStatus() {
return productStatus; } public void setProductStatus(Integer productStatus) {
this.productStatus = productStatus; } public String getProductStatusStr() {
return productStatusStr; } public void setProductStatusStr(String productStatusStr) {
this.productStatusStr = productStatusStr; } @Override public String toString() {
return "Product{" + "id='" + id + '\'' + ", productNum='" + productNum + '\'' + ", productName='" + productName + '\'' + ", cityName='" + cityName + '\'' + ", departureTime=" + departureTime + ", departureTimeStr='" + departureTimeStr + '\'' + ", productPrice=" + productPrice + ", productDesc='" + productDesc + '\'' + ", productStatus=" + productStatus + ", productStatusStr='" + productStatusStr + '\'' + '}'; }}

3、编写业务接口

(1)创建dao接口

创建包

在这里插入图片描述
在这里插入图片描述
创建接口IProductDao
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)创建Service接口以及实现

a、创建IProductService接口

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

package com.itzheng.ssm.service;import com.itzheng.ssm.domain.Product;import java.util.List;public interface IProductService {
public List
findAll() throws Exception;}
b、创建IProductService接口实现类ProductServiceImpl

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

package com.itzheng.ssm.service.impl;import com.itzheng.ssm.dao.IProductDao;import com.itzheng.ssm.domain.Product;import com.itzheng.ssm.service.IProductService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import java.util.List;@Service@Transactionalpublic class ProductServiceImpl implements IProductService {
@Autowired private IProductDao productDao; @Override public List
findAll() throws Exception {
return productDao.findAll(); }}

三、SSM整合与产品查询

1、在zheng_ssm_web下的src当中的main当中创建java文件夹

在这里插入图片描述
指定java文件夹为Sources Root
在这里插入图片描述
2、创建resources文件夹
在这里插入图片描述
指定该文件夹为Resources Root
在这里插入图片描述

1、Spring环境配置

1.1 编写Spring配置文件applicationContext.xml

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.2 编写Spring配置文件spring-mvc.xml

在这里插入图片描述

在这里插入图片描述

1.3 修改web.xml

在这里插入图片描述

1.4 创建db.properties

在这里插入图片描述

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=root
1.5 配置事务:applicationContext.xml

在这里插入图片描述

1.6 配置spring-mvc.xml

在这里插入图片描述

1.7 配置web.xml

在这里插入图片描述

org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath*:applicationContext.xml
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
1
dispatcherServlet
*.do
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
characterEncodingFilter
/*
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
1.7 修改db.properties,为Oracle的驱动

在这里插入图片描述

jdbc.driver=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@192.168.75.100:1521:orcljdbc.username=ssmjdbc.password=itzheng
1.8 创建以上配置文件对应的包扫描

创建包

在这里插入图片描述
在这里插入图片描述
创建一个类
在这里插入图片描述
在这里插入图片描述

package com.itzheng.ssm.controller;import com.itzheng.ssm.service.IProductService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;@Controller@RequestMapping("/product")public class ProductController {
@Autowired private IProductService productService; public ModelAndView findAll() {
ModelAndView mv = new ModelAndView(); return mv; }}

applicationContext.xml当中的包扫描变正常

在这里插入图片描述

1.9 继续完善ProductController 类

在这里插入图片描述

package com.itzheng.ssm.controller;import com.itzheng.ssm.domain.Product;import com.itzheng.ssm.service.IProductService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import java.util.List;@Controller@RequestMapping("/product")public class ProductController {
@Autowired private IProductService productService; @RequestMapping("/findAll.do") public ModelAndView findAll() throws Exception {
ModelAndView mv = new ModelAndView(); List
ps = productService.findAll(); mv.addObject("",ps); mv.setViewName(""); return mv; }}
2.0 继续完善IProductDao

在这里插入图片描述

package com.itzheng.ssm.dao;import com.itzheng.ssm.domain.Product;import org.apache.ibatis.annotations.Select;import java.util.List;public interface IProductDao {
//查询所有的产品信息 @Select("select * from product") public List
findAll() throws Exception;}

2、页面显示

功能实现逻辑图

在这里插入图片描述

(1)产品操作-查询全部商品

a、完善index.jsp

在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"         pageEncoding="UTF-8"%>查询所有的产品信息 
b、复制资源文件

将上节当中的的adminlte当中的内容拷贝到工程当中

创建pages目录
在这里插入图片描述

在这里插入图片描述

c、扫描dao接口

在applicationContext.xml当中

在这里插入图片描述

d、创建product-list.jsp

在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"		 pageEncoding="UTF-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>    
数据 - AdminLTE2定制版

数据管理 数据列表

列表

ID 编号 产品名称 出发城市 出发时间 产品价格 产品描述 状态 操作
${product.id } ${product.productNum } ${product.productName } ${product.cityName } ${product.departureTimeStr } ${product.productPrice } ${product.productDesc } ${product.productStatusStr }
d、完善ProductController类

在这里插入图片描述

package com.itzheng.ssm.controller;import com.itzheng.ssm.domain.Product;import com.itzheng.ssm.service.IProductService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import java.util.List;@Controller@RequestMapping("/product")public class ProductController {
@Autowired private IProductService productService; @RequestMapping("/findAll.do") public ModelAndView findAll() throws Exception {
ModelAndView mv = new ModelAndView(); List
ps = productService.findAll(); mv.addObject("productList",ps); mv.setViewName("product-list"); return mv; }}
e、product-list.jsp当中缺少两个页面,创建这两个页面

在这里插入图片描述

创建header.jsp和aside.jsp

header.jsp

在这里插入图片描述

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

aside.jsp

在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"	pageEncoding="UTF-8"%>
f、运行该项目

web当中添加Tomcat插件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

org.apache.tomcat.maven
tomcat7-maven-plugin
8888
2.2

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击OK

clean工程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
安装成功
在这里插入图片描述
在这里插入图片描述
运行项目
报错
需要更新一下数据库驱动
在这里插入图片描述

com.mchange
c3p0
0.9.5.2

运行项目

在这里插入图片描述
访问链接http://localhost:8888/zheng_ssm_web/
在这里插入图片描述
运行成功
在这里插入图片描述
时间和状态没有显示

g、修改Product类

在这里插入图片描述

public String getProductStatusStr() {
if(productStatus != null){
//状态 0 关闭 1 开启 if(productStatus == 0){
productStatusStr = "关闭"; } if(productStatus == 1){
productStatusStr = "打开"; } } return productStatusStr; }
h、再次运行项目

先clear

在这里插入图片描述
在这里插入图片描述
在install
在这里插入图片描述
在这里插入图片描述
运行项目
在这里插入图片描述
访问地址http://localhost:8888/zheng_ssm_web/product/findAll.do
显示成功
在这里插入图片描述

(2)处理时间显示的问题

在utils下新建一个包

在这里插入图片描述

a、创建DateUtils类

在这里插入图片描述

package com.itzheng.ssm.utils;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class DateUtils {
//日期转换成字符串 public static String date2String(Date date, String patt) {
SimpleDateFormat sdf = new SimpleDateFormat(patt); String format = sdf.format(date); return format; } //字符串转换成日期 public static Date string2Date(String str, String patt) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(patt); Date date = sdf.parse(str); return date; }}
b、修改Product类

在这里插入图片描述

public String getDepartureTimeStr() {
if(departureTime != null){
departureTimeStr = DateUtils.date2String(departureTime,"yyyy-MM-dd HH:mm:ss"); } return departureTimeStr; }
c、再次运行项目

先clear

在这里插入图片描述
在这里插入图片描述
在install
在这里插入图片描述
在这里插入图片描述
运行项目
在这里插入图片描述
访问地址http://localhost:8888/zheng_ssm_web/product/findAll.do
显示成功
在这里插入图片描述

3、product-list页面制作

创建product-list1.jsp

在这里插入图片描述
修改ProductController
在这里插入图片描述
在product-list1.jsp当中引入adminlte当中的admin-datalist.html,将其代码复制
在这里插入图片描述
替换css和js的文件路径

选中之后Ctrl+F

在这里插入图片描述
替换成功
在这里插入图片描述
删除头部和侧边导航
在这里插入图片描述
通过jsp引入页面头部和侧边导航
在这里插入图片描述

修改数据列表表头的内容

在这里插入图片描述
在这里插入图片描述

                    ID     编号     产品名称     出发城市     出发时间     产品价格     产品描述     状态     操作

继续修改删除其他tr只留下一个tr

在这里插入图片描述
引入
在这里插入图片描述

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

继续修改tr当中的内容

在这里插入图片描述

${product.id} ${product.productNum} ${product.productName} ${product.cityName} ${product.departureTimeStr} ${product.productPrice} ${product.productDesc} ${product.productStatusStr}

修改一下页面

在这里插入图片描述
先clear
在这里插入图片描述
在这里插入图片描述
在install
在这里插入图片描述
在这里插入图片描述
运行项目
在这里插入图片描述
访问地址http://localhost:8888/zheng_ssm_web/product/findAll.do
显示成功
在这里插入图片描述

4、main.jsp页面制作

在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"	pageEncoding="UTF-8"%>
ITCAST - AdminLTE2定制版

访问http://localhost:8888/zheng_ssm_web/pages/main.jsp

在这里插入图片描述
在这里插入图片描述
处理一下index.jsp
在这里插入图片描述
访问http://localhost:8888/zheng_ssm_web/
在这里插入图片描述
在这里插入图片描述

四、产品的操作

1、添加产品

流程图

在这里插入图片描述

(1)实现添加产品的功能

a、修改product-List.jsp

在这里插入图片描述

b、创建product-add.jsp

在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"	pageEncoding="UTF-8"%>
数据 - AdminLTE2定制版

产品管理 产品表单

产品信息
产品编号
产品名称
出发时间
出发城市
产品价格
产品状态
其他信息
c、创建save方法

在ProductController类当中创建save方法

在这里插入图片描述

在IProductService接口当中创建save方法

在这里插入图片描述

在实现类当中创建save方法调用dao层的save方法

在这里插入图片描述
在dao层当中创建
在这里插入图片描述
Java代码

@Insert("insert into product(productNum,productName,cityName,departureTime,productPrice,productDesc,productStatus) values(#{productNum},#{productName},#{cityName},#{departureTime},#{productPrice},#{productDesc},#{productStatus})")void save(Product product) throws Exception;

SQL语句

insert into product(productNum,productName,cityName,departureTime,productPrice,productDesc,productStatus) values(#{productNum},#{productName},#{cityName},#{departureTime},#{productPrice},#{productDesc},#{productStatus})
d、添加完成后重新查询数据

修改ProductController当中的save方法

在这里插入图片描述
运行项目
clear掉zheng_ssm和web
insert zheng_ssm和web

运行项目,访问http://localhost:8888/zheng_ssm_web

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
报错
在这里插入图片描述
日期没有处理需要处理日期

修改Product

在这里插入图片描述

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")

再次提交表单信息

在这里插入图片描述
在这里插入图片描述

转载地址:https://code100.blog.csdn.net/article/details/116353428 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java SSM 项目实战 day03 功能介绍,订单的操作,订单的增删改查
下一篇:Java SSM 项目实战 day01 界面搭建

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月28日 14时11分53秒