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 相关文章推荐
分析Netty直接内存原理及应用
Jun 14 Java/Android
详解Spring事件发布与监听机制
Jun 30 Java/Android
浅谈resultMap的用法及关联结果集映射
Jun 30 Java/Android
分析ZooKeeper分布式锁的实现
Jun 30 Java/Android
JUnit5常用注解的使用
Jul 02 Java/Android
Java异常处理try catch的基本用法
Dec 06 Java/Android
Java9新特性之Module模块化编程示例演绎
Mar 16 Java/Android
Android studio 简单计算器的编写
May 20 Java/Android
java实现自定义时钟并实现走时功能
Jun 21 Java/Android
springboot读取resources下文件的方式详解
Jun 21 Java/Android
Java服务调用RestTemplate与HttpClient的使用详解
Jun 21 Java/Android
SpringBoot项目部署到阿里云服务器的实现步骤
Jun 28 Java/Android
Java中常用解析工具jackson及fastjson的使用
Java中使用Filter过滤器的方法
Jun 28 #Java/Android
浅谈Python魔法方法
Java实现二维数组和稀疏数组之间的转换
深入理解java.lang.String类的不可变性
springboot拦截器无法注入redisTemplate的解决方法
Java中PriorityQueue实现最小堆和最大堆的用法
You might like
用PHP实现验证码功能
2006/10/09 PHP
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
php操作redis缓存方法分享
2015/06/03 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
js闭包实例汇总
2014/11/09 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
Vue2 使用 Echarts 创建图表实例代码
2017/05/18 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
python flask实现分页效果
2017/06/27 Python
Python基于matplotlib绘制栈式直方图的方法示例
2017/08/09 Python
python实现基于SVM手写数字识别功能
2020/05/27 Python
python http基本验证方法
2018/12/26 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
加拿大最大的箱包及旅游配件零售商:Bentley Leathers
2017/07/19 全球购物
上课说话检讨书大全
2014/01/22 职场文书
端午节活动策划方案
2014/03/09 职场文书
团支部建设方案
2014/05/02 职场文书
教师职位说明书
2014/07/29 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
纪委立案决定书
2015/06/24 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python