超简易,极基础,巨详细的SSM(Spring +Springmvc+Mybatis)框架整合搭建1.0版

来源:互联网 发布:海尔收购三洋 知乎 编辑:程序博客网 时间:2024/06/05 02:58

  好,废话不多说,直接开篇。

  这次的框架整合是根据自己转载的一篇博客经过自己加工缩编而成的,除了三大框架加一个日志输出外没有别的东西,是非常基础的一篇框架搭配示例,所以称为1.0版,之后可能会在这篇基础上增加其他非常实用的功能,来完善这个框架,争取能达到类似正式项目开发中所用到的那样。

 这里就不介绍这三个框架各自的相关知识了,不熟悉的可以查找相关资料自行查阅,咱们这就开始。

 实际上,因为后边经历了几次完善,以下代码或许会有些许变更,每次变更,源代码下载地址也会同时更新。如果大家发现下载的代码和下面贴的不一致,无需奇怪。功能都能实现,贴出来的只是最简单,最初的版本。

 1、用myeclipse创建web工程,目录如下,引入jar包


 2、建表,表结构如下


 3、创建实体类Count.java

package com.panda.entity;public class Count {private int id;private String user_name;private String user_id;private int user_count;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUser_name() {return user_name;}public void setUser_name(String user_name) {this.user_name = user_name;}public String getUser_id() {return user_id;}public void setUser_id(String user_id) {this.user_id = user_id;}public int getUser_count() {return user_count;}public void setUser_count(int user_count) {this.user_count = user_count;}public Count() {super();// TODO Auto-generated constructor stub}public Count(int id, String user_name, String user_id, int user_count) {super();this.id = id;this.user_name = user_name;this.user_id = user_id;this.user_count = user_count;}public Count(String user_name, String user_id, int user_count) {super();this.user_name = user_name;this.user_id = user_id;this.user_count = user_count;}@Overridepublic String toString() {return "Count [id=" + id + ", user_name=" + user_name + ", user_id="+ user_id + ", count=" + user_count + "]";}}
4、接口CountMapper.java

package com.panda.dao;import com.panda.entity.Count;public interface CountMapper {void addInfo(Count count);Count serchOne(int id);}
5、mapper文件CountMapper.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.panda.dao.CountMapper"><insert id="addInfo" parameterType="Count" >insert into count_money values((select nvl(max(id),0)+1 from count_money),#{user_id},#{user_name},#{user_count}) </insert><select id="serchOne" parameterType="int" resultType="Count">select * from count_money where id = #{id}</select></mapper>
6、service文件CountService.java

package com.panda.service;import com.panda.entity.Count;public interface CountService {public void addInfo(Count count);public Count serchOne(int id);}
7、service实现类CountServiceImpl.java

package com.panda.service.impl;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.panda.dao.CountMapper;import com.panda.entity.Count;import com.panda.service.CountService;@Service("countService")public class CountServiceImpl implements CountService {@Resourceprivate CountMapper countMapper;@Overridepublic void addInfo(Count count) {// TODO Auto-generated method stubcountMapper.addInfo(count);}@Overridepublic Count serchOne(int id) {// TODO Auto-generated method stubreturn this.countMapper.serchOne(id);}}
8、测试类文件Tes.java

package com.panda.test;import javax.annotation.Resource;import org.apache.log4j.Logger;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.panda.entity.Count;import com.panda.service.CountService;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:spring-mybatis.xml"})public class Tes {//private ApplicationContext ac=null;//@Before//public void setUp() throws Exception {//ac=new ClassPathXmlApplicationContext("spring-mybatis.xml");//}@Resourceprivate CountService countService=null; private static Logger logger = Logger.getLogger(Tes.class);  int i = 1;@Testpublic void test1() {//CountServiceImpl countService = (CountServiceImpl)ac.getBean("countService");Count coun=countService.serchOne(i);logger.info(coun);System.out.println(coun);}}
9、配置文件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:aop="http://www.springframework.org/schema/aop"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:tx="http://www.springframework.org/schema/tx"    xmlns:mvc="http://www.springframework.org/schema/mvc"    xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.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/context        http://www.springframework.org/schema/context/spring-context.xsd        http://www.springframework.org/schema/mvc         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">    <!-- 自动扫描 -->    <context:component-scan base-package="com.panda"></context:component-scan>    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" >    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />          <property name="url" value="jdbc:oracle:thin:@192.168.0.111:1521:orcl" />          <property name="username" value="c##reexam" />          <property name="password" value="reexam" />        </bean>  <!-- 配置Session工厂 -->     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">         <property name="dataSource" ref="dataSource"></property>         <!-- 加载mybatis.cfg.xml文件 -->         <property name="configLocation" value="classpath:mybatis-config.xml"></property>        <!-- 自动扫描mappers.xml文件 --><property name="mapperLocations" value="classpath:com/panda/mapper/*.xml"></property>     </bean>          <!-- 自动扫描所有的Mapper接口与文件 -->     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">         <property name="basePackage" value="com.panda.dao"></property>         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>     </bean></beans>
mybatis-config.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><package name="com.panda.entity"/></typeAliases></configuration>

log4j.properties

#\u5B9A\u4E49LOG\u8F93\u51FA\u7EA7\u522B  log4j.rootLogger=INFO,Console,File  #\u5B9A\u4E49\u65E5\u5FD7\u8F93\u51FA\u76EE\u7684\u5730\u4E3A\u63A7\u5236\u53F0  log4j.appender.Console=org.apache.log4j.ConsoleAppender  log4j.appender.Console.Target=System.out  #\u53EF\u4EE5\u7075\u6D3B\u5730\u6307\u5B9A\u65E5\u5FD7\u8F93\u51FA\u683C\u5F0F\uFF0C\u4E0B\u9762\u4E00\u884C\u662F\u6307\u5B9A\u5177\u4F53\u7684\u683C\u5F0F  log4j.appender.Console.layout = org.apache.log4j.PatternLayout  log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n    #\u6587\u4EF6\u5927\u5C0F\u5230\u8FBE\u6307\u5B9A\u5C3A\u5BF8\u7684\u65F6\u5019\u4EA7\u751F\u4E00\u4E2A\u65B0\u7684\u6587\u4EF6  log4j.appender.File = org.apache.log4j.RollingFileAppender  #\u6307\u5B9A\u8F93\u51FA\u76EE\u5F55  log4j.appender.File.File = logs/ssm.log  #\u5B9A\u4E49\u6587\u4EF6\u6700\u5927\u5927\u5C0F  log4j.appender.File.MaxFileSize = 10MB  # \u8F93\u51FA\u6240\u4EE5\u65E5\u5FD7\uFF0C\u5982\u679C\u6362\u6210DEBUG\u8868\u793A\u8F93\u51FADEBUG\u4EE5\u4E0A\u7EA7\u522B\u65E5\u5FD7  log4j.appender.File.Threshold = ALL  log4j.appender.File.layout = org.apache.log4j.PatternLayout  log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n  


  OK,spring 和 mybatis框架搭建完成可以进行测试了

测试结果如下这表示没问题

  接下来完成和Springmvc的整合

10、编写一个配置文件springmvc.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:tx="http://www.springframework.org/schema/tx"    xmlns:mvc="http://www.springframework.org/schema/mvc"    xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/tx        http://www.springframework.org/schema/tx/spring-tx.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd        http://www.springframework.org/schema/mvc         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"><context:component-scan base-package="com.panda.controller"></context:component-scan> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="WEB-INF/"></property><property name="suffix" value=".jsp"></property></bean>       </beans>
11、配置web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  version="2.5"  id="SSM">    <servlet>    <servlet-name>springDispatcherServlet</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>springDispatcherServlet</servlet-name>    <url-pattern>/</url-pattern>  </servlet-mapping>  <servlet>  <servlet-name>Jersey REST Service</servlet-name>  <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.gontuseries.university</param-value> </init-param>  </servlet>  <!-- 引入spring-mybatis配置文件 -->  <context-param>  <param-name>contextConfigLocation</param-name>  <param-value>classpath:spring-mybatis.xml</param-value>  </context-param>  <!-- 编码过滤 -->  <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>  <!-- spring监听器 -->  <listener>  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>  <!-- 防止Spring内存溢出监听器 -->      <listener>          <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>      </listener>  </web-app>
  12、最后一步,写一个Controller类PandaController.java

package com.panda.controller;import javax.annotation.Resource;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import com.panda.entity.Count;import com.panda.service.CountService;@Controller@RequestMappingpublic class PandaController {@Resourceprivate CountService service;@RequestMapping("/show.hello")public String show(Model model){Count count = service.serchOne(1);model.addAttribute("count", count);return "hello";}}


好了,三大框架已经整合完毕,进行最后的整体测试
首先在index.jsp中写个登录FORM表单,再写一个返回界面success.jsp


登陆测试,实现跳转,显示数据

好,成功。

下面附上源码下载地址:点击打开下载链接


下篇:超简易,极基础,巨详细的SSM(Spring +Springmvc+Mybatis)框架整合搭建2.0版

0 0
原创粉丝点击