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 将PPT幻灯片转为HTML文件的实现思路
Jun 11 Java/Android
Java实现斗地主之洗牌发牌
Jun 14 Java/Android
分析Netty直接内存原理及应用
Jun 14 Java/Android
Java数据结构之链表相关知识总结
Jun 18 Java/Android
Java设计模式之享元模式示例详解
Mar 03 Java/Android
springboot 自定义配置 解决Boolean属性不生效
Mar 18 Java/Android
Spring Boot接口定义和全局异常统一处理
Apr 20 Java/Android
解决Springboot PostMapping无法获取数据的问题
May 06 Java/Android
springboot为异步任务规划自定义线程池的实现
Jun 14 Java/Android
详解Spring Security如何在权限中使用通配符
Jun 28 Java/Android
java.util.NoSuchElementException原因及两种解决方法
Jun 28 Java/Android
Java中的Kafka为什么性能这么快及4大核心详析
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
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
PHP 超链接 抓取实现代码
2009/06/29 PHP
PHP 批量删除数据的方法分析
2009/10/30 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
js中数组Array的一些常用方法总结
2013/08/12 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
javascript下拉框选项单击事件的例子分享
2015/03/04 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
原生javascript实现读写CSS样式的方法详解
2017/02/20 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
jQuery实现的手风琴侧边菜单效果
2017/03/29 jQuery
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
pandas修改DataFrame列名的方法
2018/04/08 Python
设置python3为默认python的方法
2018/10/31 Python
基于numpy中数组元素的切片复制方法
2018/11/15 Python
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
MAC Cosmetics巴西官方网站:M·A·C彩妆
2019/04/18 全球购物
行政主管岗位职责
2013/11/18 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
宣传标语大全
2014/07/01 职场文书
2014年市场部工作总结
2014/11/25 职场文书
运动员入场前导词
2015/07/20 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang