mybatis是ibatis的升级版,spring也有自带mybatis的orm。所以,搭建ibatis的框架也会有多种方式(我这里mybatis是3.0的,ibatis是2.3的,spring是3.0的,数据库是mysql)。下面介绍3中方式
1,只是用mybatis3。
2,使用mybatis3+spring3(使用mybatis的SqlSessionFactory )。
3,使用ibatis2.3+spring(使用spring自带的ibatis)
spring的orm包中只有ibatis,没有mybatis。而mybatis和ibatis还是有些区别的,比如配置文件属性不同。
第一种方式(只使用mybatis):
1)jar包:
cglib-2.2.jar
asm-3.1.jar
mysql-connector-java-3.1.13.jar
mybatis-3.0.5.jar
junit.jar
2)mybatis配置文件:
[html]view plaincopy
1.
>
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
40.
41.
46.
52. 3.JNDI:这个数据源的实现是为了使用如Spring或应用服务器这类的容器,
容器可以集中或在外部配置数据源,然后放置一个JNDI上下文的引用
53. -->
54.
55.
56.
57.
58.
59.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
其中
加载事务配置
注:关于JNDI的配置,见tomcat的几种JNDI配置方法
3)mybatis的sql映射配置文件:
[html]view plaincopy
1.
2.
3."https://www.sodocs.net/doc/b26873880.html,/dtd/mybatis-3-mapper.dtd">
4.
5.
6.
7.
18.
19.
37.引用另外的缓存
38. -->
39.
40.
41.
55.
56.
57.
58. select * from tables where URL_ID = #{id}
59.
60.
61.
64.
65.
68.
69.
70. select
71. from tables where URL_ID = #{id}
72.
73.
74.
75.
76.
104.
105.
106.
107.
108.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121. > 122. 123.
124.
125.
126.
127.
128.
129.
130.
131. -->
132.
133.
138. -->
139.
140.
146.
147. SELECT FLOOR(1 + (RAND() * 1000000));
148.
149. insert into table values(xx,xx);
150.
151.
152.
153.
154.
155.
4)测试方法:
[java]view plaincopy
1.public void testSelect(){
2.
3.try {
4. Reader reader = Resources.getResourceAsReader("mybatis-config-ma
ppings.xml");
5. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuild
er().build(reader,"development1");
6. SqlSession session = sqlSessionFactory.openSession();
7. PageAccessURL pageAccessURL =(PageAccessURL)session.selectOne("s
electPageAccessURL2", 70001);
8.//
9.// PageAccessURL page = new PageAccessURL();
10.// page.setUrlId("70001");
11.// page.setUrl("warrantAndCbbcInfo.jsp");
12.// PageAccessURL pageAccessURL =(PageAccessURL)session.selectOne("s
electPageAccessURLByClass",page);
13.
14. session.close();
15. reader.close();
16. System.out.println(pageAccessURL.getUrl());
17. } catch (IOException e) {
18. System.out.println(e);
19. }
20. }
SqlSessionFactory sqlSessionFactory = new
SqlSessionFactoryBuilder().build(reader,"development1"); 后面的development1是前面讲的数据源配置方式之一。如果要测试jndi的,则要通过容器加载后进行。
第二种方式(mybatis3.0+spring3.0,spring自带的orm中,只有ibatis的,没有mybatis,所以使用mybatis3和spring整合的话只能用SqlSessionFactory 了);
1)jar包:
mybatis-3.0.5.jar
mysql-connector-java-3.1.13.jar
cglib-2.2.jar
asm-3.1.jar
aopalliance-1.0.jar
commons-logging-1.1.1.jar
hsqldb-1.8.0.10.jar
jstl-1.2.jar
log4j-1.2.16.jar
mybatis-spring-1.0.1.jar
spring-aop-3.0.5.RELEASE.jar
spring-asm-3.0.5.RELEASE.jar
spring-beans-3.0.5.RELEASE.jar
spring-context-3.0.5.RELEASE.jar
spring-core-3.0.5.RELEASE.jar
spring-expression-3.0.5.RELEASE.jar
spring-jdbc-3.0.5.RELEASE.jar
spring-tx-3.0.5.RELEASE.jar
spring-web-3.0.5.RELEASE.jar
stripes-1.5.6.jar
commons-dbcp-1.2.2.jar
commons-pool-1.3.jar
junit.jar
2)spring配置文件:
applicationContext.xml
[html]view plaincopy
1.
2.
3.
4.
5.
6.
applicationContext.xml
[html]view plaincopy
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15. stroy-method="close"> 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
29.
30.
31.
32.
33.
34.
关于spring的其他数据源配置,这里就不写了。
4)mybatis的配置文件:
[html]view plaincopy
1.
2.
3."https://www.sodocs.net/doc/b26873880.html,/dtd/mybatis-3-config.dtd">
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
使用了spring管理的话,这里就不用设置数据源等其他配置了
5)mybatis的sql映射文件配置:
同方式一配置的sql映射文件配置
6)配置DAO层:
[java]view plaincopy
1.public class PageAccessURLManager {
2.
3.
4.private SqlSessionFactory sqlSessionFactory ;
5.
6.public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
7.this.sqlSessionFactory = sqlSessionFactory;
8. }
9.
10.public PageAccessURL getPageAccessURL(int url_id){
11. PageAccessURL page = (PageAccessURL)sqlSessionFactory.openSession().
selectOne("selectPageAccessURL",url_id);
12. System.out.println(page.getUrl());
13.return page;
14. }
15.}
7)测试:
[java]view plaincopy
1.public void testSelect() {
2. ApplicationContext tx = new ClassPathXmlApplicationContext("applicationC
ontext.xml");
3. PageAccessURLManager page = (PageAccessURLManager)tx.getBean("pageAccess
URLManager");
4. page.getPageAccessURL(123456);
5.}
第三种方式(ibatis2.3+spring3):
1)jar包:
mysql-connector-java-3.1.13.jar
log4j-1.2.16.jar
org.springframework.aop-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.orm-3.0.5.RELEASE.jar
org.springframework.web-3.0.5.RELEASE.jar
org.springframework.web.servlet-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.context.support-3.0.5.RELEASE.jar
commons-logging-1.1.1.jar
spring-asm-3.0.5.RELEASE.jar
spring-expression-3.0.5.RELEASE.jar
spring-jdbc-3.0.5.RELEASE.jar
spring-tx-3.0.5.RELEASE.jar
commons-dbcp-1.2.2.jar
commons-pool-1.3.jar
ibatis-2.3.0.677.jar
junit.jar
2)spring配置文件:
applicationContext.xml
[html]view plaincopy
1.
2.
3.
4.
5.
6.
applicationContext-dao.xml
[html]view plaincopy
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16. stroy-method="close"> 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
30.
31.
32.
33.
34.
35.
3)ibatis配置文件:
[html]view plaincopy
1.
2.
3.
4.
5. https://www.sodocs.net/doc/b26873880.html,zyLoadingEnabled="true"maxRequests="32"maxSessions="10" 7.maxTransactions="5"useStatementNamespaces="false"/> 8. 9. 10. 11. 12. 13. 14. 4)ibatis的sql映射配置文件: [html]view plaincopy 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. select * from PAGE_ACCESS_URL where URL_ID = #id# 12. 13. 14. 17. 18. 19. 20. select 21. from PAGE_ACCESS_URL where URL_ID = #id# 22. 23. 24. 25. 26. SELECT FLOOR(1 + (RAND() * 1000000)); 27. 28. insert into table values(xx,xx); 29. 30. 31. 5)配置DAO层: [html]view plaincopy 1.public class PageAccessURLManager { 2. 3. private SqlMapClient sqlMapClient ; 4. public void setSqlMapClient(SqlMapClient sqlMapClient) { 5.this.sqlMapClient = sqlMapClient; 6. } 7. 8. public void getPageAccessURL(int urlId) throws SQLException{ 9. PageAccessURL page = (PageAccessURL)this.sqlMapClient.queryForObject ("selectPageAccessURL", urlId); 10. System.out.println(page.getUrl()); 11. } 12. 13.} 注意:请仔细对比mybatis和ibatis的配置区别 本科生毕业设计 (论文) 外文翻译 原文标题MVC Design Pattern for the multi framework distributed applications using XML, spring and struts framework 译文标题使用XML,Spring和struts以MVC为设计模式的多分布式应用程序框架 作者所在系别计算机与遥感信息技术学院 作者所在班级B12511 作者姓名王硕 作者学号20124051117 指导教师姓名耿炎 指导教师职称院长 完成时间2015 年1 月 北华航天工业学院教务处制 译文标题使用XML,Spring和struts以MVC为设计模式的多分布式应用程序框 架 原文标题MVC Design Pattern for the multi frameworkdistributed applications using XML, spring and struts framework 作者Praveen Gupta 译名普利文·古塔国籍印度 原文出处International Journal on Computer Science and Engineering 使用XML,Spring和struts以MVC为设计模式的多分布式应用程序框架 摘要:模型-视图-控制器(MVC)是一个基本的设计模式,用来分离用户界面与业务的逻辑。近些年来,应用程序的规模越来越大,而MVC设计模式可以弱耦合不同应用层的程序。本文提出了一种基于J2EE平台上的网络,它扩展了MVC、XML 的应用程序框架,易于维护。这是一个包括表示层、业务层、数据持久层和数据库层的多系统层,由于其代码的具有独立性,可维护性和可重用性大大提升。在本文中,我们使用MVC实现spring和struts框架。我们的研究显示,应用多个框架设计应用程序时,使用MVC概念能使应用程序转变为更容易、较单一的框架。 关键字:MVC,Spring,XML 一介绍 近些年来,web是非常复杂的问题。因为公司和组织越来越多,不同类型的通讯设备也越来越多,特别当业务要求应用程序使用web和许多通信设备的时候,网络编程的性能越加重要。所以在互联网上,在增加负载的数据的同时,我们必须照顾体系结构的问题。让我们简要讨论到目前为止MVC的研究。 1.1没有MVC 在web开发的初始阶段,页面被用来设计html,其中Html是纯文本。这是第一个在互联网上工作的标记语言。今天仍然是基于块的所有互联网的编程语言。用户必须实现与静态页面交互,信息手动写在页面时必须改变。随着时间增长,语言和页面可以按照用户需求相互作用,页面也会有相应的变化。 1.2 MVC模式一 第一个重大变化是由于架构的流行,引入了MVC模式。这种具有控制演示、业务逻辑和流程的架构是以页面为中心,以Java语言为服务器的页面程序。逻辑就是在这个模型概念中介绍的。Java bean和scriptlet、表达式等业务逻辑都是以硬性编码的形式存在的。页面里的所有代码都是用jsp编写的。让我们假设,我们想传输基于我们收到数据时的jsp的情况。 图一页面导航MVC-1框架 1.3 MVC模式二 模型1架构能够解决一些网络和网络编程的问题,但仍有很多东西丢失。它是集中jsp页面的导航,从而能进一步发展的体系结构的观点。在这个过程中未来发 实验:Mybatis框架 学号: 222016CCCCCCCC 姓名:CCCC 班级:二年纪:2016级 专业:计算机科学与技术 实验目的: 基本掌握mybatis持久层框架,对数据库进行操作 实验环境:tomcat9.0、eclipse、Mybatis、mysql、Navicat for Mysql、windows10OS、JDK1.8.0 实验内容: 一、数据库操作 1、新建数据库mybatis,UTF-8字符集 2、新建表user 3、对user表添加数据,并保存 二、Java项目 1、创建Web工程mybatisdemo并拷贝jar包: 2、在src下建立Configuration.xml文件,文件代码如下: Mybatis总结 1.mybatis的简单概述: 1.1mybatis简单概述: MyBatis 是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的XML 或注解来配置和映射原生信息,将接口和Java 的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 1.2 功能架构: 分为三层: (1).API接口层:定义api接口,外部人员通过这个接口来调用方法从而操纵数据库。 (2).数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。 (3).基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数 据处理层提供最基础的支撑。 2.mybatis快速入门: a. 添加jar包: mybatis asm-3.3.1.jar cglib-2.2.2.jar commons-logging-1.1.1.jar log4j-1.2.16.jar mybatis-3.1.1.jar slf4j-api-1.6.2.jar slf4j-log4j12-1.6.2.jar mysql驱动 mysql-connector-java-5.1.7-bin.jar b. 建库+表: create database mybatis; use mybatis; CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT); INSERT INTO users(NAME, age) VALUES('Tom', 12); INSERT INTO users(NAME, age) VALUES('Jack', 11); Springmvc+mybatis框架配置 (内含日志+多数据源配置+事务配置+maven配置)1spring-mvc.xml SSM基础框架搭建(SpringMVC+Spring+Mybatis) SSM框架简述 到现在用了SSM框架也有一段时间了,对于基础的使用已经基本习惯,这段时间也多多少少搭了很多遍基础框架,当然每一次的搭建都会比原先搭建的东西更多些,也会更加完善,我相信大家也会从搭建的过程中成长去学到很多东西,SSM框架网上也有很多教程,不过我相信每个编写以及阅读的人总会从相似的文章中学到不同的东西. SSM框架基础概念 Spring 这里不得不说Spring非常强大,Spring拥有这IOC(控制反转,依赖注入)和AOP(面向切面编程)这两个强大的功能,这两个功能使框架足够的解耦,通过工厂模式和bean的配置完成对象的注入并且由bean生成的对象是单例的 SpringMVC SpringMVC分离了控制器,验证器,Servlet分发器,模型对象等 Mybatis Mybatis解除了程序与代码的耦合度,在一定程度上简化了sql的管理,只需要在XML中进行相应SQL的编写即可,Mybatis提供了相应的映射,配置起来更加容易 SSM基础框架搭建 这里就直接介绍SSM框架如何搭建了,至于环境配置和MAVEN项目的创建可以参考我的博客,也可以参考环境搭建,MAVEN项目搭建,下面开始搭建的教程,可能是对于上文链接博客的整合的完善与一些细微错误的纠正吧。 引入相关的JRA包 MyBatis整合Spring 开发环境: System:Windows WebBrowser:IE6+、Firefox3+ JavaEE Server:tomcat5.0.2.8、tomcat6 IDE:eclipse、MyEclipse 8 Database:MySQL 开发依赖库: JavaEE5、Spring 3.0.5、Mybatis 3.0.4、myBatis-spring-1.0、junit4.8.2 Email:hoojo_@https://www.sodocs.net/doc/b26873880.html, Blog:https://www.sodocs.net/doc/b26873880.html,/IBM_hoojo https://www.sodocs.net/doc/b26873880.html,/ 1、首先新建一个WebProject 命名为MyBatisForSpring,新建项目时,使用JavaEE5 的lib库。然后手动添加需要的jar包,所需jar包如下: 2 springmvc+spring+mybatis整合 首先在整合这个框架的时候,想想其一般的步骤是怎样的,先有个步骤之后,不至于在后面的搞混了,这样在整合的时候也比较清晰些。 然后我们就细细的一步一步来整合。 1 创建一个Web项目。 2 导入Mybatis3、Spring4、SpringMVC4、连接数据库(我使用的数据库是mysql)的jar包。 我所用的包: spring-websocket-4.2.0.RELEASE.jar 3 创建Mybatis3、Spring4、SpringMVC4、连接数据库的配置文件。 4 配置web.xml 1 2 SSI框架搭建 SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6 编号:SSI-SMVC3-S3-I3 版本:V1.0 级别:公开 编写时间:2016-02-17 目录 1导言 (1) 1.1目的 (1) 1.2范围 (1) 1.3说明 (1) 2搭建SpringMVC (2) 2.1搭建所需jar包 (2) 2.2其他依赖包 (3) 2.3搭建步骤 (4) 2.3.1创建项目 (4) 2.3.2导入jar包 (6) 2.3.3配置web.xml (7) 2.3.4配置spring-servlet.xml (9) 2.3.5配置applicationContext.xml (10) 2.3.6配置log4j.properties (10) 3整合mybatis (10) 3.1整合所需jar包 (10) 3.2其他依赖包 (11) 3.3整合步骤 (11) 3.3.1导入jar包 (11) 3.3.2配置config.properties (11) 3.3.3配置spring-dataSource.xml (12) 3.3.4 配置applicationContext.xml (15) 3.3.5配置mybatis-config.xml (16) 3.3.6创建实体model (17) 3.3.7创建实例化dao (19) 3.3.8 创建业务服务service (21) 3.3.9创建控制层controller (23) 3.3.10页面代码 (28) 3.3.11启动项目 (37) 1导言 1.1 目的 本文档是根据个人的工作经验搭建的轻量级SSI框架,也是实际应用中比较全面的基础框架,用于指导SSI框架初学者学习搭建SSI框架,希望能给各位使用者提供帮助,同时也希望朋友们尽量去帮助其他人。 1.2 范围 本次框架搭建的版本是SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6,数据库采用的是mysql,在eclipse开发工具下搭建直接搭建的web项目,页面采用的是h5,ajax实现数据访问,如果页面为jsp等,则修改controller的返回类型即可。 1.3 说明 本文档是个人总结的经验,仅供参考学习,同时欢迎朋友们一起沟通学习,文档中会对使用的jar做详细解说,对配置的过程使用图文说明,因为SSI博大精深,很多知识在搭建过程中没有使用到,只是一个基础框架的搭建,能测试通过就可以,所以对于高要求的开发,需要自己添加jar、增加方法和配置,同时文档中出现的纰漏希望朋友们等指正。 开发环境eclipse-jee-indigo-SR1-win32-dic,Tomcat7.0,JDK1.7,mysql。 mybatis 第一天mybatis的基础知识 课程安排: mybatis和springmvc通过订单商品案例驱动 第一天:基础知识(重点,内容量多) 对原生态jdbc程序(单独使用jdbc开发)问题总结 mybatis框架原理(掌握) mybatis入门程序 用户的增、删、改、查 mybatis开发dao两种方法: 原始dao开发方法(程序需要编写dao接口和dao实现类)(掌握) mybaits的mapper接口(相当于dao接口)代理开发方法(掌握)mybatis配置文件SqlMapConfig.xml mybatis核心: mybatis输入映射(掌握) mybatis输出映射(掌握) mybatis的动态sql(掌握) 第二天:高级知识 订单商品数据模型分析 高级结果集映射(一对一、一对多、多对多) mybatis延迟加载 mybatis查询缓存(一级缓存、二级缓存) mybaits和spring进行整合(掌握) mybatis逆向工程 1对原生态jdbc程序中问题总结 1.1环境 java环境:jdk1.7.0_72 eclipse:indigo mysql:5.1 1.2创建mysql数据 sql_table.sql:记录表结构 sql_data.sql:记录测试数据,在实际企业开发中,最后提供一个初始化数据脚本 1.3jdbc程序 使用jdbc查询mysql数据库中用户表的记录。 创建java工程,加入jar包: 数据库驱动包(mysql5.1) 上边的是mysql驱动。 下边的是oracle的驱动。 程序代码: 1.4问题总结 1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。 设想:使用数据库连接池管理数据库连接。 2、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护。 设想:将sql语句配置在xml配置文件中,即使sql变化,不需要对java代码进行重新编译。 3、向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护。设想:将sql语句及占位符号和参数全部配置在xml中。 SSM框架——详细整合教程(Spring+SpringMVC+MyBatis) 最近在学习Spring+SpringMVC+MyBatis的整合。以下是参考网上的资料自己实践操作的详细步骤。 1、基本概念 1.1、Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 1.2、SpringMVC Spring MVC属于SpringFrameWork的后续产品,已经融合在 Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。 1.3、MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由 apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis 是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和 Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口 和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 1.Mybatis入门 从一个jdbc程序开始 public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { //加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); //通过驱动管理类获取数据库链接 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?charac terEncoding=utf-8", "root", "mysql"); //定义sql语句 ?表示占位符 String sql = "select * from user where username = ?"; //获取预处理statement preparedStatement = connection.prepareStatement(sql); //设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值 preparedStatement.setString(1, "王五"); //向数据库发出sql执行查询,查询出结果集 resultSet = preparedStatement.executeQuery(); //遍历查询结果集 while(resultSet.next()){ System.out.println(resultSet.getString("id")+" "+resultSet.getString("username")); } } catch (Exception e) { e.printStackTrace(); }finally{ //释放资源 if(resultSet!=null){ try { resultSet.close(); } catch (SQLException e) { SpringMvc与Mybatis整合1.目的 学习SpringMvc与Mybatis怎样整合在一起。 2.环境准备 1)jdk版本:jdk1.7或jdk1.8 2)IDE:eclipse 3)Tomcat:Apache Tomcat v7.0 4)数据库:mysql及navicat for mysql 3.整合 3.1.新建一个web项目 注意:这里选择Dynamic Web Module 2.5 ,因为2.5是主流,默认在eclipse的WebContent \WEB-INF\目录下创建web.xml的,而3.0则默认没有web.xml文件 3.2.添加整合所需的jar包 注:所有的包已经放到文件jar里面了 3.3.web.xml配置 3.3.1.代码如下: spring-mybatis.xml 【黑马程序员】Mybatis工作原理 引言 在mybatis的基础知识中我们已经可以对mybatis的工作方式窥斑见豹(参考:《MyBatis————基础知识》)。但是,为什么还要要学习mybatis的工作原理?因为,随着mybatis框架的不断发展,如今已经越来越趋于自动化,从代码生成,到基本使用,我们甚至不需要动手写一句SQL就可以完成一个简单应用的全部CRUD操作。从原生mybatis到mybatis-spring,到mybatis-plus再到 mybatis-plus-spring-boot-starter。spring在发展,mybatis同样在随之发展。 万变的外表终将迷惑人们的双眼,只要抓住核心我们永远不会迷茫! 工作原理原型图 用最直观的图,来征服你的心! 工作原理解析 mybatis应用程序通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件(也 可以用Java文件配置的方式,需要添加@Configuration)中构建出SqlSessionFactory(SqlSessionFactory是线程安全的); 然后,SqlSessionFactory的实例直接开启一个SqlSession,再通过SqlSession实 例获得Mapper对象并运行Mapper映射的SQL语句,完成对数据库的CRUD和 事务提交,之后关闭SqlSession。 说明:SqlSession是单线程对象,因为它是非线程安全的,是持久化操作的独享 对象,类似jdbc中的Connection,底层就封装了jdbc连接。 详细流程如下: 1、加载mybatis全局配置文件(数据源、mapper映射文件等),解析配置文件,MyBatis基于XML配置文件生成Configuration,和一个个MappedStatement(包括了参数映射配置、动态SQL语句、结果映射配置),其对应着 [置顶] Spring+SpringMVC+Mybatis+Mysql整合实例 标签:SpringSpringMVCMybatisMysql整合 2015-05-17 18:06 2183人阅读评论(10) 收藏举报分类: Spring(24) 版权声明:本文为博主林炳文Evankaka原创文章,转载请注明出处https://www.sodocs.net/doc/b26873880.html,/evankaka 目录(?)[+]林炳文Evankaka原创作品。转载请注明出处https://www.sodocs.net/doc/b26873880.html,/evankaka 本文要实现Spring+SpringMVC+Mybatis+Mysql的一个整合,实现了SpringMVC控制访问的页面,将得到的页面参数传递给Spring中的Mybatis的bean类,然后查找Mysql数据的功能,并通过JSP显示出来。建议可以先看笔者另一文章Mybatis与Spring整合创建Web项目。笔者觉得整合过程中问题比较多的还是Spring+Mybatis的整合,SpringMVC的整合还是比较简单。Spring Spring 是一个开源框架,Spring 是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的JavaBean 来完成以前只可能由EJB 完成的事情。然而, Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从Spring 中受益。简单来说,Spring 是一个轻量级的控制反转(IoC )和面向切面(AOP )的容器框架。 SpringMVC Spring MVC 属于SpringFrameWork 的后续产品,已经融合在Spring Web Flow 里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。 MyBatis MyBatis 本是apache 的一个开源项目iBatis , 2010 年这个项目由apache software foundation 迁移到了google code ,并且改名为MyBatis 。MyBatis 是一个基于Java 的持久层框架。iBATIS 提供的持久层框架包括SQL Maps 和Data Access Objects (DAO )MyBatis 消除了几乎所有的JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的XML 或注解用于配置和原始映射,将接口和Java 的POJOs (Plain Old Java Objects ,普通的Java 对象)映射成数据库中的记录。 使用的版本:Mybatis-3.2.8 Spring3.2.9 SpringMVC 3.2.9 SSM+dubbo分布式框架的详细搭建与讲解 一、什么是dubbo? 两台服务器A、B,分别部署不同的应用a,b。当A服务器想要调用B服务器上应用b提供的函数或方法的时候,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义传达调用的数据。--RPC。 Dubbo是基于RPC的高性能和透明化的RPC远程服务调用方案。 二、为什么使用dubbo? Dubbo原理有点类似以前tomcat集群,不过与tomcat集群比起来dubbo优势在于:一次编译,到处运行。 三、系统框架如下: 四、框架内容:SpringMVC+Spring+Mybatis+Mysql+JDK1.7数据库使用的是 mysql,安装步骤省略 五、项目工程结构目录(父工程和子工程) 其中,parent是pom文件的父工程,common是jar包,里面存放interface,bean,dao等公用内容。 controller控制层和service业务层是war包,也就是各分为一个Tomcat。A:创建父工程 B:创建common工程,在Packaging时选择jar C:创建controller和service的步骤和common一样,不过Packaging选择war,完成后会出现以下报错 原因是webapp下没有WEB_INF文件夹和web.xml文件,自己创建web.xml(配置内容下面会有) D:导入JAR包 parent项目pom.xml导入所有jar包的坐标,service和controller会依赖common,所以在common的pom文件中加入要引入的jar包。因为太多,此处省略,到时候可以看源码 因为公用jar放在了common里,所以在controller和service的pom,xml文件中都加入common的依赖: JAVA WEB后台一般可分为控制层、服务层、持久层三层架构。 这里我们使用springmvc实现控制层,使用spring @service注解实现服务层,使用Apache DBCP项目的jdbc数据源,使用spring jdbc事务管理,使用mybatis实现持久层sql开发。 一、环境配置 1、pom.xml依赖配置 spring项目依赖: DBCP项目依赖: jackson项目依赖(实现json到javabean转换) 附件上传项目依赖(可选): mybatis项目依赖: 2、web.xml配置 3、spring bean上下文配置文件springmvc-mybatis.xml配置: 其中, mvc:annotation-driven声明用于支持 MappingJackson2HttpMessageConverter ,实现controller方法参数及返回值支持json到javabean的自动转换。 context:component-scan,用于自动扫描并加载对应包下注解类的bean。multipartResolver,用于声明及配置附件上传,如果没有附件上传,可以不配置该元素。 dataSource,数据源配置,这里使用的DBCP数据源。 txManager,事务管理配置。 tx:annotation-driven,声明支持注解方式的事务管理sqlSessionFactory,配置mybatis的sqlSessionFactory mybatis:scan,配置mybatis自动扫描对应包下的mapper xml文件。 二、示例项目开发 1、建表SQL create table user( user_id int, user_name varchar(50), user_sex char(1), address varchar(100) ); 2、java代码结构 分为controller、service、dao、data四个包。 controller为控制层,service为服务层,dao为持久层,data为javabean。 1)UserController类 package springtest.SpringMvcMybatisTest.controller;Spring和MyBatis的外文翻译..
Mybatis框架实验报告
Mybatis总结
SpringMvc +Mybatis最全的配置
SSM基础框架搭建(SpringMVC+Spring+Mybatis)
MyBatis 3 整合Spring3、SpringMVC
springmvc+spring+mybatis整合
SpringMVC+Spring+Mybatis框架配置详细步骤(eclipse普通版)
mybatis入门教程(一)(超简单)
Spring+SpringMVC+MyBatis的整合
mybatis笔记(超详细全面)
SpringMvc与Mybatis整合
spring-mybatis.xml配置文件
【黑马程序员】Mybatis工作原理
SpringMVC+Mybatis+MySQL项目搭建
springMVC+Spring+Mybatis+dubbo分布式框架的详细搭建与讲解
基于springmvc+spring+mybatis搭建JAVA WEB后台开发环境