一、新建项目
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
不写代码。至此,环境就搭建完成了。