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 相关文章推荐
SpringBoot2 参数管理实践之入参出参与校验的方式
Jun 16 Java/Android
ConstraintValidator类如何实现自定义注解校验前端传参
Jun 18 Java/Android
Jackson 反序列化时实现大小写不敏感设置
Jun 29 Java/Android
jackson json序列化实现首字母大写,第二个字母需小写
Jun 29 Java/Android
java协程框架quasar和kotlin中的协程对比分析
Feb 24 Java/Android
alibaba seata服务端具体实现
Feb 24 Java/Android
SpringBoot2零基础到精通之数据与页面响应
Mar 22 Java/Android
java项目构建Gradle的使用教程
Mar 24 Java/Android
Java 写一个简单的图书管理系统
Apr 26 Java/Android
Android Studio实现带三角函数对数运算功能的高级计算器
May 20 Java/Android
ConditionalOnProperty配置swagger不生效问题及解决
Jun 14 Java/Android
Java使用HttpClient实现文件下载
Aug 14 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
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
jQuery checkbox全选/取消全选实现代码
2009/11/14 Javascript
javascript demo 基本技巧
2009/12/18 Javascript
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
javascript日期格式化方法汇总
2015/10/04 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
9种改善AngularJS性能的方法
2017/11/28 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
解决Python3中的中文字符编码的问题
2018/07/18 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
CSS3实现文字描边的2种方法(小结)
2020/02/14 HTML / CSS
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
全世界最美丽的四星和五星级酒店预订:Prestigia.com
2017/11/15 全球购物
法律顾问服务方案
2014/05/15 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书