超简易,极基础,巨详细的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
- 超简易,极基础,巨详细的SSM(Spring +Springmvc+Mybatis)框架整合搭建1.0版
- 超简易,极基础,巨详细的SSM(Spring +Springmvc+Mybatis)框架整合搭建2.0版
- SSM框架搭建详细过程,springmvc、spring、mybatis整合
- 整合Spring SpringMvc Mybatis,搭建SSM框架
- SSM框架 - 详细整合教程(Spring+SpringMVC+MyBatis)
- SSM框架—详细整合教程(Spring+SpringMVC+MyBatis)
- SSM框架(Spring+SpringMVC+MyBatis)详细整合
- ssm框架学习---详细整合教程(Spring+SpringMVC+MyBatis)
- SSM框架—详细整合教程(Spring+SpringMVC+MyBatis)
- SSM框架---详细整合教程(Spring+SpringMVC+MyBatis)
- SSM框架详细整合教程(Spring+SpringMVC+MyBatis)
- SSM框架详细整合教程(Spring+SpringMVC+MyBatis)
- SSM框架—详细整合教程(Spring+SpringMVC+MyBatis)
- SSM框架整合详细教程(Spring+SpringMVC+MyBatis)
- SSM(Spring+SpringMVC+MyBatis)框架详细整合。
- SSM框架构建-详细整合教程(Spring+SpringMVC+MyBatis)
- IDEA-Maven整合SSM框架,超详细教程(Spring+SpringMVC+Mybatis)
- SSM框架(Spring+SpringMVC+MyBatis)详细搭建过程
- React的react-side-effect/react-document.title源码浅析
- Mysql 利用group by 分组排序
- jscoverage——js覆盖率测试工具
- SSL证书与Https应用部署小结
- mysql TO_DAYS 和 FROM_DAYS
- 超简易,极基础,巨详细的SSM(Spring +Springmvc+Mybatis)框架整合搭建1.0版
- javaScript之函数,分支结构 ,循环结构(二)
- public final class Fingerprint implements Parcelable
- Canvas知识点记录
- Servlet基础编程
- Ffprobe查看媒体元数据
- linux编程之系统调用
- 各种距离
- iptables对请求的URL作IP访问控制