SSM搭建共有11个文件如下:
1、com.ht.bean/Emp.java
package com.ht.bean;
/**
* Created by Administrator on 2019/2/16.
*/
public class Emp {
private Integer id;
private String ename;
private String eimg;//头像
private Integer age;
private Integer did;//部门ID
private Integer pwd;//密码
public Emp() {//空的构造函数
}
public Emp(String ename, Integer age, Integer did, Integer pwd, String eimg) {
this.ename = ename;
this.age = age;
this.did = did;
this.pwd = pwd;
this.eimg = eimg;
}
@Override
public String toString() {
return "Emp{" +
"id=" + id +
", ename='" + ename + '\'' +
", age=" + age +
", did=" + did +
", pwd=" + pwd +
", eimg='" + eimg + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getDid() {
return did;
}
public void setDid(Integer did) {
this.did = did;
}
public Integer getPwd() {
return pwd;
}
public void setPwd(Integer pwd) {
this.pwd = pwd;
}
public String getEimg() {
return eimg;
}
public void setEimg(String eimg) {
this.eimg = eimg;
}
}
2、com.ht.controller/EmpController.java
package com.ht.controller;
import com.ht.bean.Emp;
import com.ht.service.IEmpService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import java.util.List;
/**
* Created by Administrator on 2019/3/4.
*/
@Controller
@RequestMapping("/emp")
public class EmpController {
@Resource //写了这个才能引用下面的service
private IEmpService service;//引用service
//测试list
@RequestMapping("/listall") //访问路径http://localhost:8080/SSM/emp/listall
public String listall(){
System.out.println("进来了list方法");
List<Emp> list= service.listAll();
for (Emp e :list){
System.out.println(e);
}
return "list" ;//返回到jsp/list.jsp
}
}
3、com.ht.dao/EmpDao
package com.ht.dao;
import com.ht.bean.Emp;
import java.util.List;
/**
* Created by Administrator on 2019/3/4.
*/
public interface EmpDao {
//普通非分页查询
List<Emp> listAll();
}
4、com.ht.mapper/EmpDaoMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ht.dao.EmpDao">
<!--普通非分页查询--><!--这个文件是写sql语句的-->
<select id="listAll" resultType="emp">
<![CDATA[
select * from emp
]]>
</select>
</mapper>
5、com.ht.service/IEmpService
package com.ht.service;
import com.ht.bean.Emp;
import java.util.List;
/**
* Created by Administrator on 2019/3/4.
*/
public interface IEmpService {
//普通非分页查询
public List<Emp> listAll();
}
6、com.ht.service.impl/EmpServiceImpl
package com.ht.service.impl;
import com.ht.bean.Emp;
import com.ht.dao.EmpDao;
import com.ht.service.IEmpService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
* Created by Administrator on 2019/3/4.
*/
@Service //给类加上注解 spring容器就会自动扫描这个类
@Transactional //声明式注解
//service方法的实现
public class EmpServiceImpl implements IEmpService{
@Resource //引入其他注入的Dao
private EmpDao empDao;
@Override//普通非分页查询
public List<Emp> listAll() {
return empDao.listAll();
}
}
7、config/jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.driverUrl=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.user=root
jdbc.password=12345 //这里是写数据库的密码,我用的是mysql
#\u521d\u59cb\u8fde\u63a5\u5927\u5c0f
druid.initialSize=5
#\u6700\u5927\u8fde\u63a5\u6570
druid.maxActive=100
#\u6700\u5c0f\u7a7a\u95f2\u6570
druid.minIdle=5
#\u6700\u5927\u7b49\u5f85\u65f6\u95f4\uff0c\u5355\u4f4d\u4e3ams
druid.maxWait=60000
druid.validationQuery=select 1
druid.testOnBorrow=false
druid.testOnReturn=false
druid.testWhileIdle=true
druid.timeBetweenEvictionRunsMillis=60000
druid.minEvictableIdleTimeMillis=25200000
druid.removeAbandoned=true
druid.removeAbandonedTimeout=1800
druid.logAbandoned=true
druid.filters=mergeStat
hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
hibernate.show_sql=true
8、config/spring-mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!--引用参数文件-->
<context:property-placeholder location="classpath:config/jdbc.properties" ignore-unresolvable="true"/>
<!-- 配置spring运行要扫描的包,配合自动注入这个注解,完成spring的装载功能 -->
<context:component-scan base-package="com.ht.*"></context:component-scan>
<!-- 配置数据源 -->
<bean name="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.driverUrl}" />
<property name="username" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
<property name="initialSize" value="${druid.initialSize}" />
<property name="maxActive" value="${druid.maxActive}" />
<property name="minIdle" value="${druid.minIdle}" />
<property name="maxWait" value="${druid.maxWait}" />
<property name="validationQuery" value="${druid.validationQuery}" />
<property name="testOnBorrow" value="${druid.testOnBorrow}" />
<property name="testOnReturn" value="${druid.testOnReturn}" />
<property name="testWhileIdle" value="${druid.testWhileIdle}" />
<property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />
<property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />
<property name="removeAbandoned" value="${druid.removeAbandoned}" />
<property name="removeAbandonedTimeout" value="${druid.removeAbandonedTimeout}" />
<property name="logAbandoned" value="${druid.logAbandoned}" />
<property name="filters" value="${druid.filters}" />
</bean>
<!-- 2. mybatis的SqlSession的工厂: SqlSessionFactoryBean dataSource:引用数据源 MyBatis定义数据源,同意加载配置 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--指定数据源-->
<property name="dataSource" ref="druidDataSource"/>
<!--配置别名-->
<property name="typeAliasesPackage" value="com.ht.bean"/>
<!--加载映射文件-->
<property name="mapperLocations" value="classpath:com/ht/mapper/*.xml"/>
</bean>
<!-- 3. mybatis自动扫描加载Sql映射文件/接口 : MapperScannerConfigurer sqlSessionFactory
basePackage:指定sql映射文件/接口所在的包(自动扫描) -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 指定映射接口对应-->
<property name="basePackage" value="com.ht.dao"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
<!-- 4. 事务管理 : DataSourceTransactionManager dataSource:引用上面定义的数据源 -->
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="druidDataSource"></property>
</bean>
<!-- 5. 使用声明式事务 transaction-manager:引用上面定义的事务管理器 -->
<tx:annotation-driven transaction-manager="txManager" />
</beans>
9、spring-web.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--1、开启注解模式-->
<mvc:annotation-driven/>
<!--2、配置默认servlet处理器-->
<mvc:default-servlet-handler/>
<!--配置WEB-INF下面的资源可以访问-->
<!--<mvc:resources location="/WEB-INF/css/" mapping="/css/**"/>-->
<!-- <mvc:resources location="/WEB-INF/js/" mapping="/js/**"/>-->
<!--3、视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--4、扫描所有的控制器类-->
<context:component-scan base-package="com.ht.controller"/>
</beans>
10、web/WEB-INF/jsp/list.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
成功的完成了SSM全部的基本配置
</body>
</html>
11、web/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring-*.xml</param-value><!--读取所有config下面的xml配置文件-->
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--过滤器-->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
end:完成这些配置之后,
访问路径为:http://localhost:8080/SSM/emp/listall
若成功进入list.jsp页面则表示SSM搭建成功!