SSM项目第一步:搭建整合的环境

一、新建项目

Create New Project

选择Maven、选择已有的JDK(或者new一个)、打勾、选择webapp、next

写GroupId: cn.itcast、ArtifactId: StudentManager、next

两个打勾、选择新的Maven安装路径:D:/program/apache-maven-3.6.1、选择新的Maven路径:D:\program\apache-maven-3.6.1\conf\settings.xml、同时选择新的repository路径:D:\program\apache-maven-3.6.1\repository、配上一个键值对archetypeCatalog internal、next

这里注意你的项目文件存放的位置、Finish

之后会下载maven的配置文件,右下角有些需要import的,可以直接选择auto-import!结束如图:

二、配置tomcat

上方菜单栏中选择:Add Configuration…

点击左上角+,选择Tomcat Server 选择local

给tomcat起个名字:student、配置tomcat的安装路径(选那个叫apache-tomcat-7.0.94类似的文件夹就行)、设置JRE为自己电脑上安装的那个JRE。

选择Deployment、点击+,选Artifact(添加我们的项目),选带exploded的那个、ok、然后可以把Application context中改为 / 、点击apply、ok。

三、配置pom.xml文件

【点开pom.xml文件,修改<properties></properties>中的内容】

首先,如果使用的是1.8版本的JDK,需要将JDK的版本改为1.8;

之后,加入下面这些版本号,包含spring、mybatis等:

    <spring.version>5.0.2.RELEASE</spring.version>
    <slf4j.version>1.6.6</slf4j.version>
    <log4j.version>1.2.12</log4j.version>
    <mysql.version>5.1.6</mysql.version>
    <mybatis.version>3.4.5</mybatis.version>

最后,修改依赖项。将<dependencies></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-web</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-test</artifactId>
    <version>${spring.version}</version>
  </dependency>

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>${spring.version}</version>
  </dependency>

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring.version}</version>
  </dependency>

  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>compile</scope>
  </dependency>

  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>${mysql.version}</version>
  </dependency>

  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</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>

四、补全项目中的文件结构

main目录下新建两个文件夹Directory:java(作用:放java代码)、resources(作用:放配置文件),并分别右键选择Mark Directory As:Sources Root和ResourcesRoot。

在java中new一个3层的新包cn.cast.domain,然后点击项目窗口的设置符号,取消掉compact那个勾,就可以看到3层的包结构。同时在cast包下,继续建立controller、service、dao三个包。

这里分析一下这里面建的一些文件夹:


--ssm                                    //项目名称
   --src                                 //源程序目录
      --main                             //main目录
          --java                         //java源代码(子目录按照一般编写顺序排列)
              --1.domain:Account        //定义区,对使用到的类进行定义,与数据库中的变量相对应
              --2.dao:AccountDao        //Data Access Object,数据库访问接口,就是声明些函数,同时在这些函数上方,以注解的形式写sql语句.
              --3.service:AccountService //依旧是接口,和dao文件几乎一样,不需要写sql语句
                    --impl:AccountServiceImpl //对上面接口中的函数进行定义,需要@autowired一个dao对象
              --4.controller:AccountController//控制器:注入服务对象,定义方法,控制页面跳转。同样需要@autowired一个service对象
          
           --resource                  //配置文件
              --applicationContext.xml //开启注解扫描、配置数据库信息、sql工厂、事务管理、AOP
              --log4j.properties       //log4j 日志管理
              --springmvc.xml         //配置扫描器、视图解析器、拦截器、spring //注意:在springmvc.xml中只扫描java文件中的controller,而其他的文件在applicationContext.xml中扫描
          --webapp
              --css/image/js           //放置静态文件。为了防止静态资源被拦截,需要在springmvc.xml文件中进行配置: <mvc:resources mapping="/js/**/" location="/js/"/>
              --WEB-INF
                    --pages            //页面。需要在springmvc.xml文件中配置视图解析器:                            
                                       <property name="prefix" value="/WEB-INF/pages/"/>
                                       <property name="suffix" value=".jsp"/>
                    --web.xml          //初始化配置信息。一般配置三大器:过滤器(解决中文乱码、过滤所有文件)、监听器、前端控制器(包括加载springmvc.xml文件)。此外,在最前面还需要引入spring和mybatis的配置文件:applicationContext.xml
              --index.jsp              //主页面。当tomcat成功启动之后,会自动进入该页面

五、写好java bean对象

//在domain目录下新建class:Account

package cn.itcast.domain;

import java.io.Serializable;

/**
 * 账户信息
 * @author lei
 * @date 2019-07-18 17:09
 */
public class Account implements Serializable {

   private Integer id;
   private String name;
   private double money;
   
   public Integer getId() {
      return id;
   }
   
   public void setId(Integer id) {
      this.id = id;
   }
   
   public String getName() {
      return name;
   }
   
   public void setName(String name) {
      this.name = name;
   }
   
   public double getMoney() {
      return money;
   }
   
   public void setMoney(double money) {
      this.money = money;
   }
   
   @Override
   public String toString() {
      return "Account{" +
            "id=" + id +
            ", name='" + name + '\'' +
            ", money=" + money +
            '}';
   }
}

六、写dao接口,不写具体的实现类

//在dao目录下新建一个class,输入文件名AccountDao,在kind中选Interface.
//这里采用注解的方式添加sql语句
package cn.itcast.dao;
import cn.itcast.domain.Account;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author lei
 * @date 2019-07-16 10:37.
 * 账户类的接口,提供方法,不用写实现类
 */
@Repository
public interface AccountDao {
   
   //查询所有账户信息
   @Select("SELECT * FROM account")
   public List<Account> findAll();
   
   //保存账户信息
   @Insert("INSERT INTO account (name, money) values (#{name}, #{money})")
   public void saveAccount(Account account);

   //删除用户信息
   @Delete("DELETE FROM `ssm`.`account` WHERE `name` = #{name}")
   public void delAccount(String name);
   

    //更新账户信息
    @Update("UPDATE `ssm`.`account` t SET t.`money` = #{money} WHERE t.`id` = #{id}")
    public void upAccount(Integer id, double money);
}

七、写service接口

//在service目录下新建一个class,输入文件名AccountService。在kind中选Interface
//这里只写接口,服务的实现类在AccountServiceImpl中定义
package cn.cast.service;

import cn.cast.domain.Account;

import java.util.List;

/**
 * @author lei
 * @date 2019-07-24 16:03
 */
public interface AccountService {
   
   //查询所有账户信息
   public List<Account> findAll();
   
   //保存账户信息
   public void saveAccount(Account account);
   
   //删除账户信息
   public void delAccount(String name);
   
   //更新账户信息
   public void upAccount(Integer id, double money);
   
}

八、写AccountService的实现类

//在service目录下新建一个impl目录,其中新建一个类:AccountServiceImpl
package cn.cast.service.impl;

import cn.cast.domain.Account;
import cn.cast.service.AccountService;

import java.util.List;

/**
 * @author lei
 * @date 2019-07-24 16:07
 */
public class AccountServiceImpl implements AccountService {
   
   @Override
   public List<Account> findAll() {
      System.out.println("业务层:查询所有账户信息");
      return null;
   }
   
   @Override
   public void saveAccount(Account account) {
      System.out.println("业务层:保存账户信息");
   }
   
   @Override
   public void delAccount(String name) {
      System.out.println("业务层:删除账户信息");
   
   }
   
   @Override
   public void upAccount(Integer id, double money) {
      System.out.println("业务层:更新账户信息");
   
   }
}

九、在controller目录下新建控制类AccountController

不写代码。至此,环境就搭建完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值