ssm框架搭建

1.项目是maven,下面是pom.xml

1.先集成spring

<!-- 集成Spring -->
   <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.1.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
         <version>5.1.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>5.1.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
         <version>5.1.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>5.1.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>5.1.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
         <version>5.1.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
         <version>5.1.4.RELEASE</version>
    </dependency>

2.集成MVC

<!-- 集成SpringMvc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.1.4.RELEASE</version>
 </dependency>

3.集成mybatis

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.0</version>
</dependency>

4.集成mybatis-spring

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.0</version>
</dependency>

5.集成c3p0

 <dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5.2</version>
</dependency>

6.集成jstl

<dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl-api</artifactId>
    <version>1.2</version>
    </dependency>
    <dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-impl</artifactId>
    <version>1.2.5</version>
</dependency>

7.集成mysql驱动

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.14</version>
</dependency>

2.按下图搭建项目框架

1.首先是domain.User代码

public class User implements Serializable {

	private Integer id;			
	private String username;	
	private String loginname;	
	private String password;	
	private Integer status;		
	private Date createDate;	
	public User() {
		super();	
	}

	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getLoginname() {
		return loginname;
	}
	public void setLoginname(String loginname) {
		this.loginname = loginname;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Integer getStatus() {
		return status;
	}
	public void setStatus(Integer status) {
		this.status = status;
	}
	public Date getCreateDate() {
		return createDate;
	}
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", loginname="
				+ loginname + ", password=" + password + ", status=" + status
				+ ", createDate=" + createDate + "]";
	}
}

2.数据协议层

public interface UserDao {
	
	public User selectByLoginnameAndPassword();	
	public User selectById(Integer id);
	public void deleteById(Integer id);
	public void update(User user);
	public List<User> selectByPage();
	public Integer count(Map<String, Object> params);
	public void save(User user);
	public User selectByLoginnameAndPassword(String loginname, String password);
}

3.服务协议层

public interface UserService {
	User login(String loginname,String password);
	User findUserById(Integer id);
	//List<User> findUser(User user,PageModel pageModel);
	void removeUserById(Integer id);
	void modifyUser(User user);
	void addUser(User user);
	
}

4.服务层

public class UserServiceImpl implements UserService {
	@Autowired
	private UserDao userDao;
	
	public User login(String loginname, String password) {
		return userDao.selectByLoginnameAndPassword(loginname, password);
	}

	public User findUserById(Integer id) {
		return userDao.selectById(id);
	}

	public void removeUserById(Integer id) {
		userDao.deleteById(id);	
	}

	public void modifyUser(User user) {
		userDao.update(user);
	}

	public void addUser(User user) {
		userDao.save(user);	
	}

}

5.然后在web.xml中配置spring

<!-- 配置spring核心监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- contextConfigLocation参数用来指定Spring的配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext*.xml</param-value>
</context-param>

6.在web.xml中配置SpringMvc

<!-- 定义Spring MVC的前端控制器 -->
  <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:springmvc-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 让Spring MVC的前端控制器拦截所有请求 -->
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

7.在web.xml中配置编码过滤器(post乱码)

<!-- 编码过滤器 -->
    <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>

8.配置applicationContext.xml

1. mybatis:scan会扫描com.yongxing.manager.dao包里的所有接口当作Spring的bean配置,之后可以进行依赖注入

 <mybatis:scan base-package="com.yongxing.manager.dao"/> 

2.扫描com.yongxing.manager包下面的java文件,有Spring的相关注解的类,则把这些类注册为Spring的bean

 <context:component-scan base-package="com.yongxing.manager"/>

3.加载数据源参数

<context:property-placeholder location="classpath:db.properties"/>

4.配置数据源

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
         <property name="driverClass" value="${jdbc.driverClass}"></property>
         <property name="jdbcUrl" value="${jdbc.url}"></property>
         <property name="user" value="${jdbc.username}"></property>
         <property name="password" value="${jdbc.password}"></property>
</bean>

5.配置SqlSessionFactory

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
         <property name="dataSource" ref="dataSource" />  
         <!-- 自动扫描mapping.xml文件 -->  
         <property name="mapperLocations" value="classpath:mapper/*.xml"></property>  
<!--配置mybatis的配置文件的位置-->
<property name="configLocation" value="classpath:mybatis-config.xml"></property> </bean>

9.置SpringMvc

1.自动扫描该包,SpringMVC会将包下用了@controller注解的类注册为Spring的controller

<context:component-scan base-package="com.yongxing.manager.controller"/>

2.设置默认配置方案

<mvc:annotation-driven/>

3.使用默认的Servlet来响应静态文件

 <mvc:default-servlet-handler/>

4.视图解析器

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/"/>
    <property name="suffix" value=".jsp"/>
</bean>

10.配置Mapper接口

<?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.yongxing.manager.dao.UserDao">
<select id="selectByPage" resultType="com.yongxing.manager.domain.User" >
      select * from user_inf
</select>
</mapper>

11.配置登录页控制器

@Controller
public class LoginController {
	@RequestMapping("/login")
   public ModelAndView login(ModelAndView mv) {
		System.out.println("login");
		mv.setViewName("login");
		return mv;}}

12.配置查询页控制器

@Controller
public class UserController {
	@Autowired
	private UserDao userDao;

	@RequestMapping(value = "/all")
	public String del() {
		List<User> list = userDao.selectByPage();
		for (int x = 0; x < list.size(); x++) {
			User user = list.get(x);
			System.out.println(user.getUsername());
		}
		return null;
	}
}

成功输入数据库的信息

 

原文地址:https://www.cnblogs.com/cainame/p/10327312.html