Spring+SpringMVC+MyBatis的整合详解
来源:互联网 发布:上班看盘小软件 编辑:程序博客网 时间:2024/05/16 01:07
此次整合基于jar进行,各个版本:
Spring4.3.8
SpringMVC4.3.8
MyBatis3.4.2
Tomcat8.0
1、jar包引用
下载链接点击下载所需jar包
2、配置文件
主要用到数据库配置:
dbconfig.properties
jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/db_ssm?characterEncoding=utf-8jdbc.username=lxjdbc.password=lxjdbc.maxsize=100jdbc.minsize=5jdbc.idletime=60
log4j日志配置:
log4j.properties
# Set root logger level to WARN and append to stdoutlog4j.rootLogger=DEBUG, stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout# Pattern to output the caller's file name and line number.log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L) - %m%n# Print only messages of level ERROR or above in the package noModule.log4j.logger.noModule=FATAL
Spring的配置:
applicationContext.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" xmlns:mybatis="http://mybatis.org/schema/mybatis-spring" 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://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd"> <!--Spring +SpringMVC+MyBatis整合 --> <mybatis:scan base-package="cn.code404.dao"/> <!--加载数据库的连接配置文件 --> <context:property-placeholder location="classpath:dbconfig.properties" /> <!--配置数据库来连接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <!--驱动类全称 --> <property name="driverClass" value="${jdbc.driverClassName}" /> <!--数据库的url地址 --> <property name="jdbcUrl" value="${jdbc.url}" /> <!--用户名 --> <property name="user" value="${jdbc.username}" /> <!--密码 --> <property name="password" value="${jdbc.password}" /> <!--配置最大的连接数 --> <property name="maxPoolSize" value="${jdbc.maxsize}"></property> <!--配置最小的连接数 --> <property name="minPoolSize" value="${jdbc.minsize}"></property> <!--配置连接最大空闲时间 --> <property name="maxIdleTime" value="${jdbc.idletime}"></property> </bean> <!--配置Hibernate的SessionFactory --> <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--1、配置数据库连接池 --> <property name="dataSource" ref="dataSource"></property> </bean> <!--事物管理对象 --> <bean id="txManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 扫描Spring的注解类 --> <context:component-scan base-package="cn.code404"> <!--如果外面的basepackage包含了控制器所在的包,那么需要排除 --> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <!--aop切面的代理自动生成 --> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> <!--使用注解的事物 --> <tx:annotation-driven transaction-manager="txManager" /></beans>
SpringMVC的配置文件:
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:aop="http://www.springframework.org/schema/aop" 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/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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--扫描控制器所在的包 --> <context:component-scan base-package="cn.code404.web.controller"/> <!--放行静态资源 --> <mvc:annotation-driven/> <mvc:default-servlet-handler/> <!--视图解析器,可以设置页面的前缀和后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean></beans>
还有网站的配置信息
web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>ZH_SSM</display-name> <!--配置Spring框架的信息 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!--SpringMVC的调度Servlet,前端控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--初始化参数设置,加载配置文件 --> <init-param> <param-name>contextConfigLocation</param-name> <!--配置文件的路径,如果不写,默认加载的路径:WEB-INF/servlet-name-servlet.xml --> <param-value>classpath:springMVC.xml</param-value> </init-param> <!--启动的优先级 值越小越先启动,>0 --> <load-on-startup>1</load-on-startup> </servlet> <!--映射 --> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!--url的匹配规则,定义请求什么样的url触发对应的Servlet--> <url-pattern>/</url-pattern> </servlet-mapping></web-app>
3、表的映射类
public class Phone { private int id; private String xh; private String pp; private double jg; private double size; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getXh() { return xh; } public void setXh(String xh) { this.xh = xh; } public String getPp() { return pp; } public void setPp(String pp) { this.pp = pp; } public double getJg() { return jg; } public void setJg(double jg) { this.jg = jg; } public double getSize() { return size; } public void setSize(double size) { this.size = size; }}
4、dao层的接口
基于注解实现的
public interface PhoneMapper { //新增 @Insert("insert into tb_phone(xh,pp,jg ,size) values(#{xh},#{pp},#{jg},#{size})") @Options(useGeneratedKeys=true,keyProperty="id") int save(Phone p); //查询 @Select("select * from tb_phone") @ResultType(Phone.class) List<Phone> queryAll();}
5、service层对应的类
@Service@Transactionalpublic class PhoneService { @Autowired private PhoneMapper dao; public boolean save(Phone p){ return dao.save(p)>0?true:false; } public List<Phone> queryAll() { return dao.queryAll(); }}
6、控制器
这里写代码@Controllerpublic class PhoneController { @Autowired private PhoneService service; //请求页面 @RequestMapping("/{jn}") public String test1(@PathVariable String jn){ return jn; } //新增 @RequestMapping("/add") public String test2(Phone phone,Model model){ if(!service.save(phone)){ model.addAttribute("msg", "网络繁忙,稍后再来"); } return "phoneadd"; } //查询 @RequestMapping("/query") public String test3(Model model){ model.addAttribute("list",service.queryAll()); return "phoneadd"; }}
7、页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>SSM整合</title></head><body><!-- 添加 --><h1>添加手机信息</h1><h5>${msg }</h5><div><form action="add">品牌:<input name="pp"/><br/>型号:<input name="xh"/><br/>价格:<input name="jg"/><br/>尺寸:<input name="size"/><br/><input type="submit" value="添加手机"/></form></div><!-- 查询 --><h1>查询手机信息</h1><h2> <a href="query">刷新数据</a></h2><div><table border="1" width="80%"><tr><th>序号</th><th>品牌</th><th>型号</th><th>价格</th><th>尺寸</th></tr><c:if test="${list.size()==0 }"><tr><td colspan="5"><h1>暂无数据</h1></td></tr></c:if><c:forEach items="${list }" var="p" varStatus="ys"><tr ><td align="center">${p.id }</td><td align="center">${p.pp }</td><td align="center">${p.xh }</td><td align="center">${p.jg }</td><td align="center">${p.size }</td></tr></c:forEach></table></div></body></html>
8、运行结果页面
阅读全文
0 0
- Spring+SpringMVC+MyBatis的整合详解
- Spring+SpringMVC+Mybatis 整合详解
- Spring+SpringMVC+MyBatis的整合
- SSM框架的整合详解(SpringMVC + Spring + MyBatis)
- spring、springmvc、mybatis整合文件配置详解
- Spring+SpringMVC+Mybatis+mysql整合详解
- Spring-SpringMVC-Mybatis整合
- springmvc+spring+mybatis整合
- springmvc+spring+mybatis整合
- Spring+SpringMVC+Mybatis整合
- springmvc+mybatis+spring整合
- springmvc+spring+mybatis 整合
- mybatis+springmvc+spring 整合
- SpringMVC+Spring+Mybatis整合
- springmvc+spring+mybatis 整合
- springmvc+spring+mybatis整合
- Spring+Springmvc+MyBatis整合
- Spring+Springmvc+MyBatis整合
- python的faker库
- Canvas的基本介绍和使用
- 高效模糊查询like
- "remote:error:refusing to update checked out branch:refs/heads/master"的解决办法
- Xcode8使用coreData编译错误
- Spring+SpringMVC+MyBatis的整合详解
- python︱六款中文分词模块尝试:jieba、THULAC、SnowNLP、pynlpir、CoreNLP、pyLTP
- JVM内存模型
- React相关知识文档总结
- Android学习笔记之ListView复用机制详解
- DAS,NAS,SAN在数据库存储上的应用
- 基础电工知识总结(1)
- Rmilter解析邮件的流程
- 1998-矩阵转置