Day01:SSM 环境搭建与产品操作

一.数据库(Oracle)环境搭建

1.我将数据库放在了虚拟机里,XP系统.

安装Oracle注意事项:
1.如果是 win7 或者 win10 系统右键点击 setup.exe 选择兼容性,以 xp 方式,并且以管理员方式运行,以及其他所有用户都按着此规则如图


Day01:SSM 环境搭建与产品操作_第1张图片
图一

Day01:SSM 环境搭建与产品操作_第2张图片
图二

2.检查先决条件,选中红框所示的选择框,如下图:


Day01:SSM 环境搭建与产品操作_第3张图片
image.png

3.完成后,出现“口令管理”界面,点击“口令管理”,如下图:
Day01:SSM 环境搭建与产品操作_第4张图片
口令管理

4.将 SCOTT 和 HR 用户的勾去掉(解锁这两个账户),如下图所示,点击“确定”:
Day01:SSM 环境搭建与产品操作_第5张图片
解锁用户

5.测试是否安装成功
运行 cmd 进入命令行
Sqlplus 用户名/密码@ip 地址:1521/orcl [as sysdba]


Day01:SSM 环境搭建与产品操作_第6张图片
测试成功

2.配置网络:使虚拟机和本机在同一局域网,这样本机就能通过IP地址来访问虚拟机的Oracle数据库了.

注意事项
1.配置时使用同一个虚拟机网卡.


Day01:SSM 环境搭建与产品操作_第7张图片
使用同一个

Day01:SSM 环境搭建与产品操作_第8张图片
设置虚拟机网卡

2.虚拟机中的网络配置和主机子网要在同一个网段


Day01:SSM 环境搭建与产品操作_第9张图片
同一个网段

3.修 改 oracle 的两个核心文件中的IP地址为XP的IP,之后记得重启服务.
Day01:SSM 环境搭建与产品操作_第10张图片
修改核心文件

Day01:SSM 环境搭建与产品操作_第11张图片
重启服务

3.客户端连接oracle

工具:
1.instantclient_12_1


Day01:SSM 环境搭建与产品操作_第12张图片
官方连接工具

2.安装 PLSQL Developer
Day01:SSM 环境搭建与产品操作_第13张图片
配置官方连接

3.设置环境变量 TNS_ADMIN
Day01:SSM 环境搭建与产品操作_第14张图片
这样就可以用这个登录

4.解决中文乱码问题

1>查看服务器端编码select userenv('language') from dual;
我实际查到的结果为:AMERICAN_AMERICA.ZHS16GBK
2>执行语句 select * from V$NLS_PARAMETERS
查看第一行中PARAMETER项中为NLS_LANGUAGE 对应的VALUE项中是否和第一步得到的值一样。如果不是,需要设置环境变量.否则PLSQL客户端使用的编码和服务器端编码不一致,插入中文时就会出现乱码.
3>设置环境变量
计算机->属性->高级系统设置->环境变量->新建
设置变量名:NLS_LANG,变量值:第1步查到的值, 我的是AMERICAN_AMERICA.ZHS16GBK
4>重新启动PLSQL,插入数据正常

5.创建用户ssm及授权
Day01:SSM 环境搭建与产品操作_第15张图片
授权

二.建表

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(500),
productStatus INT,
CONSTRAINT product UNIQUE (id, productNum)
)
insert into PRODUCT (id, productnum, productname, cityname, departuretime, productprice,
productdesc, productstatus)
values ('676C5BD1D35E429A8C2E114939C5685A', 'gxd-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 ('12B7ABF2A4C544568B0A7C69F36BF8B7', 'gxd-003', '上海五日游', '上海', to_timestamp('25-
04-2018 14:30:00.000000', 'dd-mm-yyyy hh24:mi:ss.ff'), 1800, '魔都我来了', 0);
insert into PRODUCT (id, productnum, productname, cityname, departuretime, productprice,
productdesc, productstatus)
values ('9F71F01CB448476DAFB309AA6DF9497F', 'gxd-001', '北京三日游', '北京', to_timestamp('10-
10-2018 10:10:00.000000', 'dd-mm-yyyy hh24:mi:ss.ff'), 1200, '不错的旅行', 1);

三.maven工程搭建

1.子父工程目录


Day01:SSM 环境搭建与产品操作_第16张图片
目录结构

2.父pom文件内容



    4.0.0

    com.gxd.gxd-ssm
    gxd-ssm
    pom
    1.0-SNAPSHOT

    
        5.0.2.RELEASE
        1.6.6
        1.2.12
        10.2.0.4.0
        3.4.5
        5.0.1.RELEASE
    

            
        
            org.aspectj
            aspectjweaver
            1.6.8
        
        
            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
            3.1.0
            provided
        
        
            javax.servlet.jsp
            jsp-api
            2.0
            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
            1.3.0
        
        
            c3p0
            c3p0
            0.9.1.2
            jar
            compile
        
        
            com.github.pagehelper
            pagehelper
            5.1.2
        
        
            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.oracle
            ojdbc14
            ${oracle.version}
        

    
    
        
            
                
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    3.2
                    
                        1.8
                        1.8
                        UTF-8
                        true
                    
                
            
        
    

    
        gxd-ssm-domain
        gxd-ssm-service
        gxd-ssm-dao
        gxd-ssm-utils
        gxd-ssm-web
    



3.各类配置文件
Day01:SSM 环境搭建与产品操作_第17张图片
配置文件位置

0>



  
  
    contextConfigLocation
    classpath*:applicationContext.xml,classpath*:spring-security.xml
  

  
  
    org.springframework.web.context.ContextLoaderListener
  
  
  
    dispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
    
      contextConfigLocation
      classpath:spring-mvc.xml
    
    
    1
  
  
    dispatcherServlet
    *.do
  

  
  
    characterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      UTF-8
    
  
  
    characterEncodingFilter
    /*
  
  
  
    springSecurityFilterChain
    org.springframework.web.filter.DelegatingFilterProxy
  
  
    springSecurityFilterChain
    /*
  

  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  


1>applicationContext.xml



    
    
    
    
    

    
    
    
        
        
        
        
    
    
    
        
        
        
            
                
                
                    
                        
                            
                            
                        
                    
                
            
        
    
    
    
        
    
    
    
    
        
    

    

2>db.properties

jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.107.10:1521:orcl
jdbc.username=ssm
jdbc.password=gxd

3>spring-mvc.xml



    
    
    

    
    
        
        
        
        
    

    
    
    
    
    

    
    

    
    

4.编写Dao层

public interface IProductDao {
    @Select("select * from product")
    List findAll() throws Exception;
}

5.编写实体层

package com.gxd.ssm.domain;

import com.gxd.ssm.utils.DateUtils;

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 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() {
        if (departureTime!=null)
        {
            departureTimeStr = DateUtils.date2String(departureTime,"yyyy-MM-dd HH:mm:ss");
        }
        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() {
        if(productStatus != null)
        {
            if(productStatus==0)
            {
                productStatusStr="关闭";
            }
            if(productStatus==1)
            {
                productStatusStr="开启";
            }
        }
        return productStatusStr;
    }

    public void setProductStatusStr(String productStatusStr) {
        this.productStatusStr = productStatusStr;
    }
}

6.编写service层

@Service
@Transactional
public class ProductServiceImpl implements IProductService {
    @Autowired
    IProductDao productDao;
    @Override
    public List findAll() throws Exception {
        return productDao.findAll();
    }
}

接口

public interface IProductService {
    List findAll() throws Exception;
}

7.编写utils层

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;
    }

}

8.编写web层(我用AdminLTE框架)
1>控制器

@Controller
@RequestMapping("/product")
public class ProductController {
    @Autowired
    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;
    }
}

2>前端


Day01:SSM 环境搭建与产品操作_第18张图片
前端

3>pom配置服务器插件

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

效果


Day01:SSM 环境搭建与产品操作_第19张图片
商品展示

9.添加商品
问题一:spring MVC日期类型转换问题
解决:@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")

控制层:

@RequestMapping("/save.do")
    public String save(Product product)
    {
        productService.save(product);
        return "redirect:findAll.do";
    }

业务层:

//接口
void save(Product product);
//实现类
@Override
    public void save(Product product) {
        productDao.save(product);
    }

数据访问层:

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

你可能感兴趣的:(Day01:SSM 环境搭建与产品操作)