天天看点

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

先说明一下,这里大部分都是一步一步的做法和代码,没有解释,有时间我再添加解释,大家先将就看一下!谢谢

1 开始

我用的是Eclipse 4.8.0 版本 ,首先,先来一张项目的目录结构(注意,这里只是演示,所以并不是标准的mvc 重在原理  )

请看图:

1 目录结构

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

好了,下面我们开始进行框架整合 首先第一步就是先创建一个动态web工程,这里就不再赘述。

2 创建目录及导入jar包

    2.1 创建config文件夹

       在项目的src文件夹上右键 --> new -->source folder 创建一个资源文件夹 名称任意,我这里是config

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

然后就会出现一个与src在同一目录的文件夹 config 

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

    2.2 创建lib和page文件夹及导入jar包

           2.2.1 创建文件夹

 在WebContent下面的WEB-INF 文件夹下面默认会有一个lib文件夹,若没有则手动创建一个。并且创建一个名为page的文件夹(后面会说这个page文件夹的作用)

如图所示:

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

  可能有的版本在WEB-INF下默认有一个web.xml文件,先不用理他

             2.2.2导入jar包

这一步非常重要,我们要导入我们所需要的jar包  这里面的jar包包括四部分:

1.spring的jar包及spring的依赖包

2.springmvc的jar包及springmvc的依赖包

3.mybaties的jar包及mybaties的依赖包

4.mybaties与spring的整合包和数据库驱动包(我这里演示的是mysql)

我们要把我们所用到的所有的包都放在WEB-NIF下的lib文件夹里,效果是这样的:

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

  请大家根据个人需要导入jar包(用不到的包可以不导)

    2.2.3 将jar包添加到buildPath 

选中lib下的所有jar包 右键 --> build path --> add to build path

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

添加成功后我们会看到项目中的referenced libraries 中就会出现我们导入的所有jar包

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

到此为止,我们的目录结构暂时搭建完毕(src目录结构因个人喜好不同,这里没有说明)

3 编写配置文件:

 3.1 applicationContext.xml spring配置文件

(注意,这里的配置文件名除了log4j之外其余均没有要求)

     在config文件夹下新建一个xml文件,取名为capplicationContext.xml

     这里是applicationContext.xml文件内容,我已经注释好了 如果看不懂可以留言!

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	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
	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
	
	<!-- 加载数据库配置文件 -->
   <context:property-placeholder location="classpath:db.properties" />
   <!-- 配置给mybaties用的数据源 -->
   <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   		<property name="driverClassName" value="${jdbc.driver}"/>
   		<property name="url" value="${jdbc.url}"/>
   		<property name="username" value="${jdbc.username}"/>
   		<property name="password" value="${jdbc.password}"/>
   </bean>
   <!-- 配置sqlsession工厂 -->
   <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
   		<property name="dataSource" ref="dataSource"/>
   		<!-- 工厂配置文件 -->
   		<property name="configLocation" value="classpath:sqlMapConfig.xml"/>
   </bean>
   <!-- 配置扫描mybaties动态代理 mapper  -->
   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
   		<property name="basePackage" value="com.xiaobai.mapper"/>
   </bean>
</beans>
           

 3.2配置数据库配置文件  db.properties

      在config文件夹下新建一个properties文件,取名为db.properties

     这里是db.properties文件内容,我已经注释好了 如果看不懂可以留言!

# driver name
jdbc.driver=com.mysql.jdbc.Driver
#driver url 
jdbc.url=jdbc:mysql://localhost:3306/spring?characterEncoding=utf-8
#database's username 
jdbc.username=root
#database's  password 
jdbc.password=root
           

3.3配置log4j配置文件log4j.properties

      在config文件夹下新建一个properties文件,取名为log4j.properties

     注意!!这里的文件名不能改,否则不能识别 (其实我也没试过,听别人说的 哈哈),如果不需要日志,则不用配置这个文件

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
           

  3.4配置springmvc配置文件

     在config文件夹下新建一个xml文件,取名为springmvc.xml

     这里是springmvc.xml文件内容,我已经注释好了 如果看不懂可以留言!

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" 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/context http://www.springframework.org/schema/context/spring-context.xsd ">
<!-- 配置一下包扫描路径 -->
<context:component-scan base-package="com.xiaobai"/>

<!-- 配置返回视图 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/WEB-INF/page/"/>
	<property name="suffix" value=".jsp"/>
</bean>
</beans>
           

3.5配置sqlmapconfig.xml 

     在config文件夹下新建一个xml文件,取名为sqlmapconfig.xml 

     这里是springmvc.xml文件内容,我已经注释好了 如果看不懂可以留言!

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 设置别名 -->
	<typeAliases>
		<!-- 2. 指定扫描包,会把包内所有的类都设置别名,别名的名称就是类名,大小写不敏感 -->
		<package name="com.xiaobai.pojo" />
	</typeAliases>
	<!-- 配置mapper地址 自动扫描包 -->
	<mappers>
		<package name="com.xiaobai.mapper"/>
	</mappers>
</configuration>
           

好了,到此为止,除了web.xml文件没有配置之外,其余的配置文件全部配置好了(配置文件中文件的互相读取以及包的扫描都涉及名称问题,一定要参照好了,不然就会出现找不到文件等异常)

这里先来一张config文件夹下文件的截图  应该是5个

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

  请大家注意,配置文件并不是只能放在这里,集中放在这里是为了好维护,大家要做到无论配置文件放到哪里,都可以在程序中写对配置文件的路径地址!

4.在src目录下创建相应的包和类以及接口

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

解释一下: 

com.xiaobai.action 下放置的是controller

com.xiaobai.pojo 下放置的是pojo类(就是和数据库表对应的java类)

com.xiaobai.mapper 下放置的是数据查询的接口(这里用的是mybaties动态代理模式)

接下来我把每一个类的代码贴下来: (数据库的表放在最后)

4.1   com.xiaobai.action-->MessageController.java(类)

package com.xiaobai.action;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.xiaobai.mapper.UserMapper;
import com.xiaobai.pojo.User;

@Controller
public class MessageController {
	@Autowired
	UserMapper um;
	
	@RequestMapping(value="/test.action")
	public String test(Model model) {
		System.out.println("ok  you are successful");
		User u = um.selectUserById(22);
		model.addAttribute("user", u);
		return "success";
	}
}
           

这个类只写了一个业务,当访问test.action时 调用test方法 控制台输出ok  you are successful 并且查询id为22的user 返回给page下面的success.jsp

4.2.1com.xiaobai.mapper -->UserMapper.java  (接口)

package com.xiaobai.mapper;

import com.xiaobai.pojo.User;

public interface UserMapper {
	public User selectUserById(Integer id);
}
           

接口提供一个方法  根据id查询user 并返回  

4.2.2com.xiaobai.mapper -->UserMapper.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.xiaobai.mapper.UserMapper">
		<select id="selectUserById" resultType="com.xiaobai.pojo.User">
			SELECT * FROM user WHERE id = #{id}
		</select>
</mapper>
           

注意,这个文件的名字必须和接口的名字相同,而且必须放在同一包下,否则mybaties无法找到 

4.3com.xiaobai.pojo-->user.java(类)

package com.xiaobai.pojo;

public class User {
	private String username;
	private int id;
	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
}
           

好了,到这里,我们所有的类都写好了,接下来我们还有两个jsp文件用来显示:

5.WebContent下创建index.jsp  page下创建success.jsp

5.1index.jsp

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<a href = "${ pageContext.request.contextPath}/test.action">点击测试</a>
</body>
</html>
           

内容很简单 设置一个指向test.action的链接

5.2 success.jsp

请注意,这个文件是在page文件夹下,不要放错地方!!

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<h1>Success</h1>
<table >
	<tr>
		<td>id</td><td>${ user.id }</td>
	</tr>
	<tr><td>username</td> <td>${ user.username }</td> </tr>
</table>
</body>
</html>
           

到这里,我们把所有的类和jsp写好了,最后一步!配置项目启动,就可以了!

6.配置web.xml

在WEB-INF下会有一个web.xml文件,如果没有也没关系,手动创建一个就可以了。 下面是web.xml的内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>MessageBord</display-name>
  <!-- 主页列表 -->
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <!-- 配置上下文参数 -->
  <context-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <!-- 配置自动扫描applicationContext.xml -->
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- 配置编码过滤器 UTF-8  -->
  <filter>
  	<filter-name>encodingFilter</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>encodingFilter</filter-name>
  		<url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <!-- 配置核心servlet -->
  	<servlet>
  		<servlet-name>mainServlet</servlet-name>
  		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  		<init-param>
  			<param-name>contextConfigLocation</param-name>
  			<param-value>classpath:springmvc.xml</param-value>
  		</init-param>
  		<load-on-startup>1</load-on-startup>
  	</servlet>
  	<servlet-mapping>
  		<servlet-name>mainServlet</servlet-name>
  		<url-pattern>*.action</url-pattern>
  	</servlet-mapping>
  	
</web-app>
           

好的,大功告成,我们完成了所有配置,这时我们要做的就是检查自己的项目,确定没有问题后,启动他!

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

在项目上右键 --> run as   --> run on server 

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

页面会有很多log4j的输出并且你可以看到下面这个页面,恭喜你,成功了一半!

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

我们点击测试链接,如果成功跳转:

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

好了,到此,我们的框架整合成功,完美运行!!(写的不好,没怎么解释,有时间再改!!)

7.数据库表:

SSM框架整合 spring + springmvc + mybaties 框架整合1 开始4.在src目录下创建相应的包和类以及接口5.WebContent下创建index.jsp  page下创建success.jsp6.配置web.xml7.数据库表:欢迎留言!

欢迎留言!

继续阅读