Spring整合Mybatis的全过程


Posted in Java/Android onJune 28, 2021

1.Spring配置文件

1.1配置数据库连接池

<!--读取文件-->
	 <util:properties id="config" location="classpath:Config/db.properties"/>
	 
	 <!--配置数据库连接池-->
	 <bean id="source" class="org.apache.commons.dbcp.BasicDataSource">
	 		<property name="driverClassName" value="#{config.drivername}"/>
	 		<property name="url" value="#{config.url}"/>
	 		<property name="username" value="#{config.name}"/>
	 		<property name="password" value="#{config.password}"/>
	 		<property name="maxActive" value="#{config.maxActive}"/>
	 		<property name="maxWait" value="#{config.maxWait}"/>
	 </bean>

1.2配置数据源工厂

<!--配置sqlsessionFactoryBean-->
	 <bean id="sqlsession" class="org.mybatis.spring.SqlSessionFactoryBean">
	 
	 
	 		<!--配置映射文件(操作sql语句的文件)的位置-->
	 		<property name="mapperLocations" value="classpath:mapper/user-mapper.xml"/>
	 		
	 		
	 		<!-- 将连接池注入到该数据源属性中-->
	 		<property name="dataSource" ref="source"/>		
	 		
	 </bean>

1.3配置MapperScannerConfigurer

​ 配置MapperScannerConfigurer,扫描指定包及其子包下面的所有Mapper映射器,然后调用SqlSession的getMapper()方法,将该映射器纳入到spring管理,默认的id是映射器首字母小写的接口名。

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	 	<property name="basePackage" value="fyjz.com.springMybatis.mapper"/>
	 </bean>

2.书写映射器(接口)

package fyjz.com.springMybatis.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import fyjz.com.springMybatis.entry.User;

public interface UserMapper {
	//用户登录
	int addUser(User user);
	
	//根据用户id查询用户数据
	User selectUserById(int id);
	
	//查询所有用户数据
	List<User> findAllUser();
	
	//根据用户名和密码查询用户数据,返回map集合
	Map<String,Object> findUserByNameAndPwd(@Param("name")String name,@Param("pwd")String pwd); 
}

3.书写user-mapper.xml映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" 
 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
 
 
 <!--映射文件(映射器的全名:包名.类名)-->
 <mapper namespace="fyjz.com.springMybatis.mapper.UserMapper">
 
 	<!--实体类和数据库字段名不一致,完成字段名的对应-->
 	<resultMap type="fyjz.com.springMybatis.entry.User" id="rm">
 			<result property="id" column="id"/>
 			<result property="userName" column="user_name"/>
 			<result property="userPwd" column="user_pwd"/>
 			<result property="money" column="money"/>
 			<result property="age" column="age"/>
 		</resultMap>
 	
 	
 	<!-- 添加用户信息 -->
 	<insert id="addUser" parameterType="fyjz.com.springMybatis.entry.User"> 
 		insert into u_user values(null,#{userName},#{userPwd},#{money},#{age});
 	</insert>
 	
 	
 	
 		
 	<!-- 根据用户id查询用户数据 -->	
 	<select id="selectUserById" resultMap="rm">
 		select * from u_user where id=#{id};
 	</select>
 	
 	
 	<!-- 查询所有用户数据 -->
 	<select id="findAllUser" resultMap="rm">
 		select * from u_user;
 	</select>
 	
 	<!--  根据用户名和密码查询用户数据,返回map集合-->
 	<select id="findUserByNameAndPwd" resultType="map">
 		select * from u_user where user_name=#{name} and user_pwd=#{pwd};
 	</select>
 	
 </mapper>

4.结果演示

1.加载Spring配置文件并生成javaBean对象

ApplicationContext ac;
	UserMapper dao;
	@Before
	@Test
	public void test01() throws SQLException{
		//加载xml配置文件
		ac=new ClassPathXmlApplicationContext("spring-dao.xml");
		//获取spring管理的javaBean对象userMapper
		dao=ac.getBean("userMapper",UserMapper.class);
	}

2.添加用户信息

@Test
	public void test02(){
		User u=new User(0, "uzi","52147893", 52360, 50);
		int n=dao.addUser(u);
		System.out.println(n);
	}

Spring整合Mybatis的全过程

插入成功,后台返回1

3.根据用户id查询用户数据

@Test
	public void test03(){
		User u=dao.selectUserById(1);
		System.out.println(u);
	}

Spring整合Mybatis的全过程

查找成功

4.查询所有用户数据

@Test
	public void test04(){
		List<User> list=dao.findAllUser();
		System.out.println(list);
	
	}

Spring整合Mybatis的全过程

查询到所有的用户数据

5.根据用户名和密码查询用户数据,返回map集合

@Test
	public void test05(){
		Map<String,Object> map=dao.findUserByNameAndPwd("何倩","125521");
		System.out.println(map);
	}

Spring整合Mybatis的全过程

查询成功

以上就是Spring整合Mybatis的详细内容,更多关于Spring整合Mybatis的资料请关注三水点靠木其它相关文章!

Java/Android 相关文章推荐
java设计模式--原型模式详解
Jul 21 Java/Android
mybatis3中@SelectProvider传递参数方式
Aug 04 Java/Android
logback 实现给变量指定默认值
Aug 30 Java/Android
使用Spring处理x-www-form-urlencoded方式
Nov 02 Java/Android
聊聊SpringBoot自动装配的魔力
Nov 17 Java/Android
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
Jan 18 Java/Android
java项目构建Gradle的使用教程
Mar 24 Java/Android
java如何实现获取客户端ip地址的示例代码
Apr 07 Java/Android
Android开发手册TextInputLayout样式使用示例
Jun 10 Java/Android
使用Postman测试需要授权的接口问题
Jun 21 Java/Android
Spring Cloud OpenFeign模版化客户端
Jun 25 Java/Android
Java Redisson多策略注解限流
Sep 23 Java/Android
Java中常用解析工具jackson及fastjson的使用
Java中使用Filter过滤器的方法
Jun 28 #Java/Android
浅谈Python魔法方法
Java实现二维数组和稀疏数组之间的转换
深入理解java.lang.String类的不可变性
springboot拦截器无法注入redisTemplate的解决方法
Java中PriorityQueue实现最小堆和最大堆的用法
You might like
php Try Catch异常测试
2009/03/01 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
2020/08/06 PHP
javascript中的几个运算符
2007/06/29 Javascript
jquery 日期分离成年月日的代码
2010/05/14 Javascript
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
2016/12/08 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
python多线程用法实例详解
2015/01/15 Python
Python版微信红包分配算法
2015/05/04 Python
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
python中快速进行多个字符替换的方法小结
2016/12/15 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
Python谱减法语音降噪实例
2019/12/18 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
Python字典实现伪切片功能
2020/10/28 Python
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
Melissa鞋马来西亚官方网站:MDreams马来西亚
2018/04/05 全球购物
即将毕业大学生自荐信
2014/01/24 职场文书
数学检讨书1000字
2014/02/24 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS