spring整合mybatis(入门级简单教程2)
2、前期准备:(1)、对mybatis有一定的了解,能够使用其基本功能。(2)、理解spring的相关原理和概念
3、总体的包和类等等
所以,在我们开始之前,请自己下载好相关的jar包,包括
(spring:)
http://repo.spring.io
(mybatis:)
https://github.com/mybatis/mybatis-3/releases
(mybatis-spring:)
https://github.com/mybatis/spring/releases
百度云下载链接
4、配置applicationContext.xml文件:(配置文件里面的前16行是我随便在网上找的,宜多不宜少)
<?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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> <!-- 数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost/test"/> <property name="user" value="root"/> <property name="password" value=""/> </bean> <!-- 注意:这个class是jar包中的 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 关联sqlSessionFacotry, 生成相关的sqlSession; 对mybatis的mapper接口,注入成beans --> <!-- 注意:这个class是jar包中的 --> <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <!-- 注意:这个是value,不是class --> <property name="mapperInterface" value="com.dao.UserMapper"/> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> <!-- 这个和上面的bean是差不多的 --> <bean id="managerMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.dao.ManagerMapper"/> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> <!-- 业务bean --> <bean id="testService" class="com.impl.TestServiceImpl"> <property name="userMapper" ref="userMapper"/> <property name="managerMapper" ref="managerMapper"/> </bean> </beans>
5、models,包括user和manager
public class User { private int id; private String name; private String password; public User(){ } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
package com.models; public class Manager { private int id; private String name; private String password; public Manager(){ } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}
6、mybatis的mapper接口:(没有,也不用实现类)
package com.dao; import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Select; import com.models.User; public interface UserMapper { @Select("SELECT * FROM user WHERE id = #{id}") public User getUser(@Param("id") String userId);}
import org.apache.ibatis.annotations.Select; import com.models.Manager;public interface ManagerMapper { @Select("SELECT * FROM manager WHERE id = #{id}") public Manager getManager(String managerID);}
7、写到这里,我们的工作已经基本上完成了大部分,让我们写一个main函数测试一下:
package com.test; import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext; import com.dao.UserMapper;import com.models.Manager;import com.models.User;import com.service.TestService; public class SpringTest { public static void main(String[] args) { ApplicationContext aa = new FileSystemXmlApplicationContext("classpath:applicationContext.xml"); //在我数据库中的userId有1这一条 User user = (User)aa.getBean(UserMapper.class).getUser("1"); System.out.println(user.getId()); System.out.println(user.getName()); System.out.println(user.getPassword()); }}
8、接下来,我们写事物的业务接口和实现此接口的业务类:
先看业务接口:
package com.service; import com.models.Manager;import com.models.User; public interface TestService { public User doSomeBusinessStuff(String userID); public Manager getManagerBusiness(String managerID);}
再看看实现类:(注意,下面的两个setter方法不能省略,可以省略getter方法)
package com.impl; import com.dao.ManagerMapper;import com.dao.UserMapper;import com.models.Manager;import com.models.User;import com.service.TestService; public class TestServiceImpl implements TestService{ private UserMapper userMapper; private ManagerMapper managerMapper; public void setUserMapper(UserMapper userMapper){ this.userMapper = userMapper; } public void setManagerMapper(ManagerMapper managerMapper) { this.managerMapper = managerMapper; } @Override public User doSomeBusinessStuff(String userID) { return this.userMapper.getUser(userID); } @Override public Manager getManagerBusiness(String managerID) { return this.managerMapper.getManager(managerID); }}
9、因为之前我们已经在applicationContext.xml文件中配置了上面这个业务实现类的bean,所以,我们的工作已经完成,let我们test一下:
package com.test; import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext; import com.dao.UserMapper;import com.models.Manager;import com.models.User;import com.service.TestService; public class SpringTest { public static void main(String[] args) { ApplicationContext aa = new FileSystemXmlApplicationContext("classpath:applicationContext.xml"); /*User user = (User)aa.getBean(UserMapper.class).getUser("1"); System.out.println(user.getId()); System.out.println(user.getName()); System.out.println(user.getPassword());*/ TestService service = aa.getBean(TestService.class); //调用业务实现类的第一个方法 User user = service.doSomeBusinessStuff("1"); System.out.println(user.getId()); System.out.println(user.getName()); System.out.println(user.getPassword()); //调用业务实现类的第二个方法 Manager manager = service.getManagerBusiness("1"); System.out.println("manager info = "+manager.getId()+"; "+manager.getName()+"; "+manager.getPassword()); }}10、跑起来了吗?come on!!!!!
参考文献:http://mybatis.github.io/spring/
##############################################################################
11、前面我们使用annotation配置mybatis的,但是在实际的项目开发中使用xml文件配置的方式比较多。
所以,下面我们在前面的基础之上使用xml文件配置:
(1)、新增加两个文件,也就是mybatis的xml配置文件,是在config.mappers包下面的:
<?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.dao.UserMapper"> <select id="getUser" parameterType="String" resultType="com.models.User"> select * from user where id = #{userID} </select></mapper>
<?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.dao.ManagerMapper"> <select id="getManager" resultType="com.models.Manager" parameterType="String"> Select * From manager where id = #{managerID} </select></mapper>
(3)、修改spring的配置文件applicationContext.xml(只需增加下划线的配置文字即可,也别忘了删掉annotation的配置)
spring整合mybatis(入门级简单教程2)相关推荐
- 最新Spring整合MyBatis详解教程
目录 1.导入相关jar包 1. junit 2. mybatis 3. mysql 4. spring相关 5. aop织入 6. mybatis-spring 7. lombok(选用) 2.回顾 ...
- spring整合mybatis(实现数据的增删改查)
一.专业术语解释 1.spring:是分层的Java SE/EE应用full - stack轻量级开源框架,以IoC(控制反转)和AOP(面向切面编程)为内核,提供展现层spring MVC 和 sp ...
- spring整合mybatis(入门级简单教程1)--在spring中配置c3p0,并成功测试
引子:spring整合mybatis.因为,我们看完(我就是这样的)spring和mybatis之后,本想自己写一个小小的项目,以便加深理解,但是我发现在spring中整合mybatis并不是一件容易 ...
- Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(二:mybatis整合spring)
http://blog.csdn.net/qq598535550/article/details/51703190 二.Spring整合mybatis其实是在mybatis的基础上实现Spring框架 ...
- springboot中整合mybatis及简单使用
springboot中整合mybatis及简单使用 1.引入依赖 2.在applicaiton.yaml中配置数据源以及mybatis 3.创建sql测试表 4.编写mapper接口和mapper.x ...
- Spring 整合 Mybatis 原理
目录 Mybatis的基本工作原理 分析需要解决的问题 Spring中Bean的产生过程 解决问题 解决方案 FactoryBean Import 总结 优化 Mybatis的基本工作原理 在 Myb ...
- Spring整合MyBatis:实现登录功能
一.项目搭建 1.创建 web 项目:spring_mybatis 2.搭建项目的目录结构 3.导入 jar 包 注意: 导入 web/WEB-INF/lib 中,一下 jar 包都需要导入 4.创建 ...
- SSM之二(Spring整合Mybatis)
项目与外界交互大概过程如下图: 一般过程是: 前端发送请求,查询数据.增加数据.修改数据.删除数据 中间件经过处理后,对数据发送请求 数据库返回数据,中间件再对数据处理 中间件响应前端请求 上一节关注 ...
- Spring整合Mybatis之注解方式,(注解整合Junit)
Spring整合Mybatis之注解方式 我有一篇博客详细写了我自己使用xml的方法Spring整合MyBatis,现在我就把核心配置文件中的每个bean的配置使用注解的方式实现 注解整合MyBati ...
- spring整合mybatis基于注解
数据库 /* Navicat MySQL Data Transfer Source Server : mysql Source Server Version : 50549 Sourc ...
最新文章
- PMP考前复习题 系列三
- ipadpro+打开html文件,iPadPro日常基本功能的使用技巧汇总
- mysql注入语句解释,MYSQL注入语句实用精解
- Java线程池ThreadPoolExecutor的实例
- 组合框载入数据库的内容
- a6gpp php,内行人才知道的古董级玛莎拉蒂A6G 2000
- 惠普linux打印驱动怎么安装驱动程序,hp打印机驱动怎么安装 惠普打印机驱动程序安装方法【详解】...
- 一位平凡毕业生的大学四年
- Tomcat启动,提示 The JRE_HOME environment variable is not defined correctly 问题。
- CDN加速是什么?具体有什么用?
- 联想G50-70无线网开关,无线网显示红叉
- L1-1 寻找250(10 分)
- OraDump导出套件
- 用python画七巧板_用turtle画一个七巧板
- Android 应用签名
- @支付宝@微信支付,世界第一要来和你们抢生意了!
- Direct3D 12入门教程之 ---- Direct3D 12初始化流程
- Monkey框架(基础知识篇) - monkey事件介绍
- 获取微信小程序的昵称和手机号
- bootstrap 图标glyphicons图标符号不正常显示解决办法
热门文章
- jQuery Mobile开发1-UI components
- python的虚拟环境
- 亿级PV超大型网站集群架构图形深度揭秘讲解
- linux 网站架构的演变
- Logical Volume Manager in Linux ( Create, Displ...
- 浅谈死链接和错误链接,如何防范死链接发生
- wes 7 gost 下载_南京地铁实现移动5G全覆盖下载速度快到飞起_机房360
- 数字信息化是计算机处理信息的基础,计算机基础
- oracle 全局临时变量,如何解析Oracle PL / SQL中的简单XML片段并将其加载到全局临时表中?...
- 华中科技大学计算机科学卓越班,2016年华中科技大学光电信息科学与工程(卓越计划实验班)专业在江苏录取分数线...