【SpringMVC3.X 总结】4. SpringMVC整合Mybatis

springmvc详解(二):springmvc和mybatis整合 springmvc详解(二):springmvc和mybatis整合 目录 springmvc详解(二):springmvc和mybatis整合 一、环境准备 1.1、案例需求 1.2、导入jar包 1.3、工程结构 二、整合思路 三、三层整合 3.1、整合dao层 3.1.1、mybatis配置文件 3.1.2、dao层spring配置文件applicationContex... 阅读详情

业务需求:SSM整合实现商品列表的查询

 

一、系统架构

 

第一步:整合dao层

mybatis和spring整合,通过spring管理mapper接口。

使用mapper的扫描器自动扫描mapper接口在spring中进行注册。

 

第二步:整合service层

通过spring管理 service接口。

使用配置方式将service接口配置在spring配置文件中。

实现事务控制。

 

第三步:整合springmvc

由于springmvc是spring的模块,不需要整合。

 

二、准备环境

 

java环境

jdk1.7.0_72

eclipse indigo

springmvc版本:spring3.2

 

所需要的jar包

数据库驱动包:mysql5.1

dbcp数据库连接池包

mybatis的jar包

spring3.2所有jar包

mybatis和spring整合包

log4j包

jstl包

 

工程结构

最终的配置文件目录

 

三、整合DAO

mybatis和spring进行整合

mybatis自己的配置文件:sqlMapConfig.xml

整合DAO的配置文件

applicationContext-dao.xml

配置:

数据源

SqlSessionFactory

mapper扫描器

 

 

 

 

(1)逆向工程生成POJO类以及Mapper文件

什么是mybatis的逆向工程
mybatis官方为了提高开发效率,提高自动对单表生成sql,包括 :mapper.xml、mapper.Java、表名.java(po类)
在企业开发中通常是在设计阶段对表进行设计 、创建。 在开发阶段根据表结构创建对应的po类。
mybatis逆向工程的方向:由数据库表 —>java代码

逆向工程 使用配置

引入依赖包

<!-- mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>

    <!-- jdbc驱动 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.18</version>
    </dependency>

    <!-- mybatis逆向工程 -->
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.5</version>
    </dependency>

编写配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/db_test"
                        userId=""
                        password="">
        </jdbcConnection>
        <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
            connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
            userId="yycg"
            password="yycg">
        </jdbcConnection> -->

        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="true" />
        </javaTypeResolver>

        <!-- targetProject:生成PO类的位置 -->
        <javaModelGenerator targetPackage="com.demo.mybatis_generator.po"
                            targetProject=".\src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="false" />
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="com.demo.mybatis_generator.mapper"
                         targetProject=".\src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.demo.mybatis_generator.mapper"
                             targetProject=".\src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <!-- 指定数据库表 -->
        <table schema="" tableName="customer"></table>
        <!--<table schema="" tableName="orders"></table>-->

        <!-- 有些表的字段需要指定java类型
         <table schema="" tableName="">
            <columnOverride column="" javaType="" />
        </table> -->
    </context>
</generatorConfiguration>

需要配置的项:数据库名,数据库账号,数据库密码,生成的位置,指定数据库表等等

引入逆向工程的启动类并配置

public class GeneratorSqlmap {

    public void generator() throws Exception{

        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //指定 逆向工程配置文件
        File configFile = new File("generatorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
                callback, warnings);
        myBatisGenerator.generate(null);

    }
    public static void main(String[] args) throws Exception {
        try {
            GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

ps:在运行时可能会报错:找不到generatorConfig.xml文件,这时可以使用绝对路径或classpath路径

 

运行程序生成对应的内容,然后把生成的文件拷贝到项目对应的目录!

【注意】逆向工程一般都是针对单表的CRUD,多表的关联建议采用手动配置!上面只是个案例,具体业务看自己的项目需求。

 

(2)自定义Mapper

sql语句:

SELECT * FROM items  WHERE items.name LIKE '%笔记本%'

ItemsMapperCustom.java


四、整合Service

让spring管理service接口

service接口

serviceImpl实现类

创建applicationContext-service.xml,文件中配置service

【提示】一般都用@Service配置了,不采用这种形式了!

事务控制applicationContext-transaction.xml

在applicationContext-transaction.xml中使用spring声明式事务控制方法

 

五、整合SpringMVC

创建springmvc.xml文件,配置处理器映射器、适配器、视图解析器。

 

配置前端控制器

在web.xml中配置

 

编写Controller

 

加载Spring容器

将mapper、service、controller加载到spring容器中

建议使用通配符加载上边的配置文件

在web.xml中,添加spring容器监听器,加载spring容器

 

 

 

【MyBatis】MyBatis+SpringMVC+EasyUI整合分页 一、介绍 环境:MyBatis 3.0.x+Spring 3.0.x+EasyUI 采用SpringMVC+MyBatis框架整合的分页Demo,用的是首页这个:http://www.jeasyui.com/demo/main/index.php Demo结构如下: 再看一下效果: 二、项目详解: 前提是首先把所有的jar包导入进入,不管是用Maven或者手动都 阅读详情

相关推荐

SSM整合jar包依赖全解析:版本搭配与排错实战

在Java Web开发中,SSM(Spring、SpringMVC、MyBatis)是经典的轻量级企业级应用组合。框架整合的核心难点往往不在业务代码,而在于jar包依赖的完整性与版本兼容性。Spring容器负责Bean管理,SpringMVC处理请求分发,MyBatis完成持久化,三者各自依赖多个基础库,缺一不可。依赖缺失常引发ClassNotFoundException,版本错配则表现为NoSuchMethodError等诡异异常,让开发者难以定位。通过构建最小可运行工程并掌握mvn dependency

weixin_33462927的博客 292

SpringBoot 3.x 整合 MyBatis-Plus(自动填充字段处理器、分页、多表查询、代码生成器)

【代码】SpringBoot 3.x 整合 MyBatis-Plus。

韶君的博客 1954

STM32F103C8T6用官方bootloader实现IAP升级操作方法

在使用STM32F103C8T6单片机IAP功能时,可以自己写bootloader程序,也可以使用官方bootloader文件。下面说一下使用官方bootloader的使用方法。 首先下载官方bootloader文件 目前使用的是这个版本,打开文件夹,选择适合自己编译器的工程。 目前使用的是keil,所以打开MDK-ARM文件夹 打开IAP工程 打开后根据自己的单片机型号,对工程进行简单的修...

HXYDJ的博客 1万+

MyBatis3.x和Spring3.x的整合

MyBatis3.x和Spring3.x的整合 2017/10/02 1.mybatis和spring整合的思路 1.让spring管理SqlSessionFactory 2.让spring管理mapper对象和dao 使用spring和mybatis整合开发mapper代理及原始dao接口。 自动开启事务,自动管理sqlsession 3.让spring管理

Believe in the Future的专栏 1816

识别产品外观的合格软件_工业视觉工业质检视觉识别机器视觉视觉检测智能制造工业检测缺陷...

随着工业物联网技术的迅猛发展,掀起了以云计算、大数据、以及人工智能 AI 等信息技术正与传统工业深入融合,由此衍生的 “智能制造4.0” 理念,正在为全球工业带来深远变革。中国的制造业巨头也纷纷借此发力,向智能化、数字化制造演进,实施战略转型。如何高效科学的管理和分析制造业务链上的生产价值,推进制造企业生产工艺优化与产品质量提升是每一个制造企业在数字化、智能化转型过程中的必经之路。业务发展带来的挑...

weixin_42502419的博客 754

文献阅读:SAR像素偏移的性能改进An Improvement of the Performance of SAR Offset Tracking Approach

像素偏移追踪POT文献阅读

weixin_56301271的博客 342

SpringMVC3.2+Spring3.2+Mybatis3.1(SSM~Demo)

SpringMVC+Spring+Mybatis 框架搭建 整个Demo的视图结构: JAR: 下载地址:http://download.csdn.net/detail/li1669852599/8546059 首先,我是使用MyEclipse工具做的这个例子,整合了Sping 3 、Spring MVC 3 、MyBatis框架,演示数据库采用MySQL数据库。例子中主要操作包括...

weixin_34192993的博客 139

利用Matlab高效处理Comsol仿真数据的可视化技巧

本文详细介绍了如何将Comsol仿真数据高效导入Matlab并进行专业可视化与后处理。核心内容包括正确的数据导出格式设置、三维矩阵重构方法、二维截面与三维体渲染技巧,以及基于Matlab的定量分析与批处理自动化流程,帮助工程师和科研人员深度挖掘仿真数据价值,提升工作效率。

weixin_29065791的博客 362

springmvc集成mybatis(超详细)

springmvc集成mybatis(超详细)使用maven创建项目1. 添加mybatis和MySQL的Maven依赖<!-- mybatis 核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0<

Cuber_Q's blogs 1616

这可是全网网工数通方向学习路线最完整,最详细的版本,没有之一

文章篇幅较长,耐心看完你一定有所收获。

最铁头的网工博客 2万+

《C++等级认证CCF-GESP真题解析》专栏总目录

❤️ 专栏名称:《C++等级认证CCF-GESP真题解析》🌸 专栏介绍:中国计算机学会GESP《CCF编程能力等级认证》C++编程(1~8级)历届真题解析。🚀 订阅专栏:订阅后可阅读专栏内所有真题解析,真题持续更新中,欢迎订阅!

人生就是一个不断学习的过程 6300

【MVC框架整合】之 SpringMVC3.2.0+MyBatis3.1.1+Spring3.2.0

1、先整合spring和Mybatis 第一步基本上都是一样加入jar包 创建测试目录 添加junit jar包和log4j配置文件 Log4j的配置文件基本上都是不会变的复制过来就行了 现在就和Hibernate不同的地方了 Mybatis生成映射文件有三种方式,我们做这个就用最简单generator的方式 http://code.google.com/p/m...

weixin_30443895的博客 128

解锁RK3588多屏异显:MIPI+HDMI+EDP混合输出全攻略

本文详细介绍了RK3588处理器在MIPI+HDMI+EDP混合输出配置中的技术实现与应用。作为一款高性能处理器,RK3588凭借其强大的图形处理能力,支持多屏异显功能,可满足智能安防、工业控制等领域的多屏显示需求。文章从硬件连接、设备树配置、内核驱动设置到显示参数调整,系统阐述了配置流程,并针对信号不稳定、显示模式不匹配等常见问题提供了解决方案。通过智能安防监控案例,展示了该技术在提高监控效率方面的实际应用价值。随着技术进步,RK3588多屏异显技术将在更多领域发挥重要作用,为开发者提供灵活多样的显示方案

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2434

springMVC4.x+spring4+Mybatis3整合

文章目录1.各框架在整合过程中的作用整合步骤第一步:导入jar包(springmvc4.x、spring4.x、mybatis3、整合的jar)创建文件结构导入jar包第二步:书写配置文件springmvc.xml、applicationContext.xml、web.xml、mybatisspringmvc.xmlapplicationContext.xmlweb.xmlmybatis第三步:启...

张议的博客 2084

基于STM32设计的智能手环(ESP8266+华为云IOT)_178

为了满足用户对健康监测的需求,手环项目集成了血氧检测、心率检测、体温检测等功能。这些功能采用了专门的传感器模块,如MAX30102、DS18B20等,确保了测量数据的准确性和可靠性。同时,为了方便用户了解自己的运动情况,项目还加入了行走步数统计功能,通过MPU6050模块实现精确计步。

2405

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SSM(Spring4.x.x+SpringMVC4.x.x+Mybatis3.4.x)框架整合

本文是参考SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)修改而来的 一、环境   1.Myeclipse2016   2.Mysql 二、具体步骤   1. 整合Spring和Mybatis     1. 导入所需要的包(需要的包都在后边下载链接里有)     2. 建立jdbc.properties文件 driver=com.mysql.j...

weixin_30305735的博客 110

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Spring集成Mybatis,spring4.x整合Mybatis3.x

Spring集成Mybatis,spring4.x整合Mybatis3.x   ============================== 蕃薯耀 2018年3月14日 http://www.cnblogs.com/fanshuyao/   一、spring.xml配置文件 Xml代码   &lt;?xml version="1.0" encoding="UTF-8"?&gt;   &l...

weixin_34014555的博客 194

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

92.mybatis-spring

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34113237的博客 63

Activiti6.x与SpringMVC整合(1)

本文章是对Activiti6.x与SpringMVC整合,感谢浏览

进击的小猴 2807

SSM框架+自适应实战(通用云平台系统)-Array老师-专题视频课程

该课程是通用云平台实战项目,具体请参考课程的目录了解,课程目录更细节,准确。

AI架构师Array的博客 655

Spring4+SpringMVC4+Mybatis3框架整合

Spring4+SpringMVC4+Mybatis3框架整合

feiwusuoai的博客 2500

Java SpringMVC与MyBatis整合

本文介绍了如何在 Java Web 开发中整合 SpringMVC 和 MyBatis 框架,以构建高效、可维护的 Web 应用。首先,搭建了基本的 Maven 项目结构,包括控制器、服务层、数据访问层和模型等模块。接着,通过 pom.xml 文件添加了 SpringMVC、MyBatis 和数据库驱动等依赖。随后,配置了数据源、MyBatis 工厂和事务管理器等关键组件,并通过 XML 文件进行 Spring 和 SpringMVC 的配置。文章通过一个简单的用户管理示例,详细展示了如何将这两个框架整合

C_V_Better的博客 1141

MyBatis3_Spring4_SpringMvc整合指南

MyBatis3_Spring4_SpringMvc整合指南 1.1MyBatis3_Spring4_SpringMvc整合指南 MyBatis3_Spring4_SpringMvc整合指南加粗样式 一、 添加架包支持 1、 添加Spring4架包 spring-beans-4.3.25.RELEASE.jar 说明:这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操

weixin_53603040的博客 288

Spring+SpringMVC+MyBatis整合

SSM全称Spring+SpringMVC+MyBatis,是spring、spring MVC 、和mybatis框架的整合,为标准的MVC模式,是目前比较主流的Java EE企业级框架,标准的SSM框架有四层,分别是dao(mapper)层,service层,controller层和View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。

这河里吗l的博客 1611

mybatis和springMVC整合

需求 使用springmvc和mybatis完成商品列表查询。 整合思路 springMVC和mybatis的系统架构 第一步:整合dao层 mybatis和spring整合,通过spring管理mapper接口。 使用mapper的扫描器自动扫描mapper接口在spring中进行注册。 第二步:整合service层 通过spring管理 service接口。 使用配置方式将service接口...

weixin_43361158的博客 375
上一篇: 【SpringMVC3.X 总结】3. 处理器映射器、适配器
下一篇: 【SpringMVC3.X 总结】5. Controller的返回值
Rita楠神
博客等级 码龄9年 27粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值