一、创建一个Web工程

二、导入jar包到lib下

c3p0-0.9:

mvc_jackson-1.7.2

mybatis_spring

myBatis3.2.2

mysql_driver

spring-3.2-aop

spring-3.2-core

spring-3.2-persistence

spring-3.2-web

三、整合spring与mybatis及springmvc

注意:注释的代码是正常配置的,注释下边的是优化以后的

配置文件如下

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><!-- <typeAlias type="cn.buaa.scm.entity.Dept" alias="Dept" /> --><!--  通过package, 可以直接指定package的名字, mybatis会自动扫描你指定包下面的javabean,并且默认设置一个别名,默认的名字为非限定类名来作为它的别名。    --><package name="cn.buaa.scm.entity"/></typeAliases><!-- <mappers><mapper resource="cn/buaa/scm/entity/DeptMapper.xml" /></mappers> -->
</configuration>

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd"><!-- 配置数据源,记得去掉myBatis-config.xml的数据源相关配置 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">            <property name="driverClass" value="com.mysql.jdbc.Driver" /><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/scm?useUnicode=true&characterEncoding=UTF-8" /><property name="user" value="root" /><property name="password" value="123456" />       </bean><!-- 配置session工厂 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="classpath:myBatis-config.xml" /><!--配置扫描式加载SQL映射文件,记得去掉mybatis-config配置--><property name="mapperLocations" value="classpath:cn/buaa/scm/dao/*.xml"/></bean><!-- 配置事务管理器,管理数据源事务处理--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 配置事务通知 --><tx:advice id="advice" transaction-manager="transactionManager"><tx:attributes>
<!-- 默认只处理运行时异常,可加rollback-for="Exception/Throwable"等处理所有异常或包括错误 --><tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception"/><tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/><tx:method name="delete*" propagation="REQUIRED" rollback-for="Exception"/><tx:method name="*" propagation="SUPPORTS"/></tx:attributes></tx:advice><!-- 配置切面织入的范围,后边要把事务边界定在service层 --><aop:config><aop:advisor advice-ref="advice" pointcut="execution(* cn.buaa.scm.service.impl.*.*(..))"/></aop:config><!-- 配置SessionTemplate,已封装了繁琐的数据操作--><bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"><constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>     </bean><!-- <context:component-scan base-package="*"/>  --><!-- 自动扫描组件,要把controller去除,他们是在spring-mvc.xml中配置,如果不去除会影响事务管理。   --> <context:component-scan base-package="cn.buaa"><context:exclude-filter type="annotation"           expression="org.springframework.stereotype.Controller" /></context:component-scan><!-- 配置 转换器,对于在basePackage设置的包(包括子包)下的接口类,如果在Mapper.xml文件中定义过,将被转换成spring的BEAN,在调用 的地方通过@Autowired方式将可以注入接口实例--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactory" ref="sqlSessionFactory"/><property name="basePackage" value="cn.buaa.scm.dao"/></bean></beans>

myBatis-config.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:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"><mvc:annotation-driven></mvc:annotation-driven><!--  <context:component-scan base-package="*"/> --><!-- 扫描所有的controller 但是不扫描service --><context:component-scan base-package="cn.buaa"><context:include-filter type="annotation"expression="org.springframework.stereotype.Controller" /><context:exclude-filter type="annotation"expression="org.springframework.stereotype.Service" /></context:component-scan>
</beans>

log4j.properties

# Rules reminder:
# DEBUG < INFO < WARN < ERROR < FATAL# Global logging configuration
log4j.rootLogger=INFO,stdout# My logging configuration...
log4j.logger.cn.jbit.mybatisdemo=DEBUG## Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%nlog4j.logger.org.apache.ibatis=DEBUG
## log4j.logger.org.apache.jdbc.SimpleDataSource=DEBUG
log4j.logger.org.apache.ibatis.jdbc.ScriptRunner=DEBUG
## log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapclientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

newSql.sql

drop database if exists scm;create database scm default character set utf8;use scm;drop table if exists supplier;/*============================*/
/* Table: 管理员表结构          */
/*============================*/
create table account
(/* 管理员编号,自动增长 */acc_id                  int not null auto_increment,/* 管理员登录名  */acc_login               varchar(20),/* 管理员姓名  */acc_name                varchar(20),/* 管理员密码 */acc_pass                varchar(20),/* 设置编号为主键 */primary key (acc_id)
);/*==============================================================*/
/* Table: 供应商表                                          */
/*==============================================================*/create table supplier
(sup_id               int not null auto_increment,sup_name             varchar(20),sup_linkman          varchar(20),sup_phone            varchar(11),sup_address          varchar(100),sup_remark           varchar(200),primary key (sup_id)
);/* 添加供应商数据, */
insert into account (acc_login,acc_pass) values ('admin','admin');
insert into account (acc_login,acc_pass) values ('admin2','admin2');
/* 添加供应商数据, */
insert into supplier (sup_name,sup_linkman,sup_phone,sup_address,sup_remark) values ('苹果供应商','小张','12388888887','广州花都','普通供应商');
insert into supplier (sup_name,sup_linkman,sup_phone,sup_address,sup_remark) values ('三星供应商','小王','12388888888','广州增城','普通供应商');
insert into supplier (sup_name,sup_linkman,sup_phone,sup_address,sup_remark) values ('华为供应商','小王','12388888889','广东深圳','一级供应商');select * from account;
select * from supplier;

generatorConfig.xml (mybatis逆向工程配置文件,上个文章有介绍插件的安装)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration>
<!--<properties resource="conn.properties" />--><classPathEntry location="G:\jar_lib\mysql_driver\mysql-connector-java-5.1.26-bin.jar"/><!-- 指定运行环境是mybatis3的版本 --><context id="testTables" targetRuntime="MyBatis3"><commentGenerator><!-- 是否取消注释 --><property name="suppressAllComments" value="true" /><!-- 是否生成注释代时间戳 --><property name="suppressDate" value="true" /></commentGenerator><!-- jdbc 连接信息 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/scm?useUnicode=true&characterEncoding=UTF-8" userId="root" password="123456"></jdbcConnection><!-- targetPackage指定模型在生成在哪个包 ,targetProject指定项目的src,-->        <javaModelGenerator targetPackage="cn.buaa.scm.entity"targetProject="scm/src"><!-- 去除字段前后空格 --><property name="trimStrings" value="false" /></javaModelGenerator><!-- 配置SQL映射文件生成信息 --><sqlMapGenerator targetPackage="cn.buaa.scm.dao"targetProject="scm/src" /><!--配置dao接口生成信息--><javaClientGenerator type="XMLMAPPER" targetPackage="cn.buaa.scm.dao" targetProject="scm/src" /><table tableName="account" domainObjectName="Account"/><table tableName="supplier" domainObjectName="Supplier"/></context>
</generatorConfiguration>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name> <welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><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><servlet><servlet-name>mvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet>

四、entity及其dao等

SupplierMapper.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="cn.buaa.scm.dao.SupplierMapper"><resultMap id="supplierResultMap" type="cn.buaa.scm.entity.Supplier"><id column="sup_id" property="supId" jdbcType="INTEGER" /><result column="sup_name" property="supName" jdbcType="VARCHAR" /><result column="sup_linkman" property="supLinkman" jdbcType="VARCHAR" /><result column="sup_phone" property="supPhone" jdbcType="VARCHAR" /><result column="sup_address" property="supAddress" jdbcType="VARCHAR" /><result column="sup_remark" property="supRemark" jdbcType="VARCHAR" /></resultMap><insert id="insert" parameterType="Supplier">insert into supplier(sup_name) values (#{supName})</insert>
</mapper>

SupplierMapper.java (Dao 以为插件生成了这样,认识就好)

package cn.buaa.scm.dao;import cn.buaa.scm.entity.Supplier;public interface SupplierMapper extends BaseMapper<Supplier>{/*** 添加供应商* @param supplier* @return*/}

SupplierServiceImpl.java

package cn.buaa.scm.service.impl;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import cn.buaa.scm.dao.SupplierMapper;
import cn.buaa.scm.entity.Supplier;
import cn.buaa.scm.service.SupplierService;
@Service("supplierService")
public class SupplierServiceImpl implements SupplierService {//@Resource@Autowiredprivate SupplierMapper supplierMapper;public int insert(Supplier supplier) throws Exception {return supplierMapper.insert(supplier);}@Overridepublic int delete(Supplier entity) {return 0;}@Overridepublic Supplier select(Supplier entity) {return null;}@Overridepublic int update(Supplier entity) throws Exception {// TODO Auto-generated method stubreturn 0;}}

SupplierAction.java

package cn.buaa.scm.action;import javax.annotation.Resource;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import cn.buaa.scm.entity.Supplier;
import cn.buaa.scm.service.SupplierService;@Controller
@RequestMapping(value="/supplier")
public class SupplierAction extends BaseAction {@Resourceprivate SupplierService supplierService;@RequestMapping(value="/insert")public String insert(Supplier supplier){System.out.println("---action.dept:"+supplier);try {supplierService.insert(supplier);} catch (Exception e) {e.printStackTrace();}return "forward:/jsp/main.jsp";}@RequestMapping("/doAjax")@ResponseBody //如果返回json格式,需要这个注解,这里用来测试环境public Object doAjax(Supplier supplier){System.out.println("---doAjax.supplier:"+supplier);supplier.setSupName("supName1");return supplier;}}

index.jsp 框架测试

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
</head>
<body><form action="supplier/insert.action" method="post">供应商名称:<input type="text"   name="supName"><br> <input type="submit" value="ok"></form>
</body>
</html>

json.jsp  easyUI和jquery测试

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
</head>
<body><form action="supplier/insert.action" method="post">供应商名称:<input type="text"   name="supName"><br> <input type="submit" value="ok"></form>
</body>
</html>

注意,这些配置要根据自己包名等调整,dao的实现类用xml配置了,直接可以实现,不用在写dao的实现类,有点方法抽取没贴出来,不过不影响整合

这个版本切记在Tomcat7.0以下版本运行,8.0会报错,原因不明。

ssi整合,即spring、springmvc、mybatis终极整合,包括一些优化相关推荐

  1. Spring+SpringMVC+MyBatis+easyUI整合优化篇(十三)数据层优化-表规范、索引优化

    本文提要 最近写的几篇文章都是关于数据层优化方面的,这几天也在想还有哪些地方可以优化改进,结合日志和项目代码发现,关于数据层的优化,还是有几个方面可以继续修改的,代码方面,整合了druid数据源也开启 ...

  2. Spring+SpringMVC+MyBatis+easyUI整合优化篇(五)MockMvc服务端的单元测试

    日常啰嗦 承接前一篇文章<Spring+SpringMVC+MyBatis+easyUI整合优化篇(四)单元测试实例>,已经讲解了dao层和service层的单元测试,还有控制器这层也不能 ...

  3. SSM框架整合(Spring+SpringMVC+MyBatis)

    输出结果 1.Maven Web项目创建 之前有写过Eclipse+Maven创建web项目的帖子,如果需要,请参考这里写链接内容 创建好项目之后因为入下图: 2.SSM整合 2.1 引入需要的JAR ...

  4. SSM框架Spring+SpringMVC+MyBatis——详细整合教程

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参 ...

  5. Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简述及技术选型介绍

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 萌芽阶段 很久之前就开始打算整理一下自己的技术博客了,由于各种原因( ...

  6. SSM三大框架整合(Spring+SpringMVC+MyBatis)

    文章目录 SSM整合 一.导入依赖 1.1 Spring依赖 1.2 SpringMVC依赖 1.3 MyBatis依赖 二.配置文件 2.0 Web.xml 配置文件 2.1 Spring的配置文件 ...

  7. SSM框架整合(Spring+SpringMVC+MyBatis+Oracle)

    1.开发环境搭建以及创建Maven Web项目 参看之前的博文:http://www.cnblogs.com/cainiaomahua/p/6306476.html 2.SSM整合 这次整合有2个配置 ...

  8. SSM纯注解后台代码整合(Spring+SpringMvc+Mybatis)

    SSM后台整合(Spring+SpringMvc+Mybtis+事务+Rest风格+统一结果封装+统一异常处理+拦截器) 文章目录 1 基础环境搭建 1.1 建表 1.2 创建web项目 1.3 导入 ...

  9. springmvc连接mysql_挺详细的spring+springmvc+mybatis配置整合|含源代码

    大家好,我是雄雄,今天来带着大家来配置一下SSM(spring+springmvc+ mybatis)框架. 01 新建java web项目 直接在myeclipse中,新建一个web项目即可. 02 ...

  10. Spring+SpringMVC+Mybatis简单整合 图书管理项目 实现增删改查

    Spring+SpringMVC+Mybatis项目 tomcat7插件配置 <build><plugins><plugin><groupId>org. ...

最新文章

  1. Hadoop_MapReduce的基本应用
  2. 转贴一篇关于NAT(DNAT)以及PAT的讨论
  3. 设计printf调试宏
  4. NLP 专题论文解读:从 Chatbot 到 NER | PaperDaily #11
  5. Spring源码:AOP转文
  6. c#给定二维数组按升序排序_在数组中按升序对数字进行排序| 8086微处理器
  7. Ionic4 Camera插件在iOS13上选取视频失败 上传时候提示权限不足
  8. 高性能数据库集群:分库分表
  9. Laravel5中基于jQuery实现分层级的类目树结构方法
  10. 粒子群算法(1)----粒子群算法简单介绍
  11. 二级mysql刷题_计算机二级通手机版(计算机二级刷题软件)V1.1 简化版
  12. Tilera的多核CPU
  13. 计算机无法识别魅蓝手机,魅族手机SD卡无法读取怎么办解决方案
  14. pb中操作excel表格函数
  15. 24部经典电影的24句话的24个哲理
  16. ros2_control官方文档
  17. html5动效系列二:超级惊艳 10款HTML5动画特效推荐
  18. git extensions 设置成中文
  19. 「云市场2019」IaaSPaaS 三强:AWS,Azure,GCP
  20. WIN10 注册表方式关闭自动更新(入职小灰)

热门文章

  1. 使用reaver傻瓜式破解wifi之利用路由器WPS漏洞
  2. 小米路由4A千兆版刷入Openwrt/潘多拉
  3. matlab 1e3,Matlab 对 ODE的参数进行 拟合 求助@月只蓝 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
  4. Python-模板注入
  5. android短信验证码代码,Android短信验证码自动填写实现代码
  6. 人应该在早年播下成功的种子
  7. Windows 7 / 便笺快捷键——让Win7便笺拥有格式
  8. 解决FFmmpeg合成的MP4文件播放没声音
  9. 【蓝桥杯】算法提高 着急的WYF(不同子串个数)
  10. linux版本游戏排行,面向游戏玩家的六款最佳Linux发行版