MyBatis和Sprint的整合实例

8 篇文章 0 订阅
4 篇文章 0 订阅

今天我们的目标是实现mybatis和spring的整合使用.在学习中我们了解到myBatis框架是针对数据库进行的操作是持久性框架,而spring框架的核心是IOC,那么我怎样结合到之前我们做的实例多对一,这个实例中我们用了myBatis框架就可以在这个基础上改。spring框架用得最多的是IOC那什可以把对象交给容器了,就有接口和主配置中的基础环境配置。

 

 

实现mybatis和spring整合的步骤:

        注意:要导myBatis与spring整合jar包:

https://download.csdn.net/download/qq_43265746/10808009

 

步骤一、创建2张表,用于测试说明,分别是user和Groups。User表有id,name,phone三个字段。Groups表有g_id,group两个字段.

步骤二、创建上述2张表所对应的实体类。(提示:order实体类需要一个User实体类类型的属性)

public class User {
	private int id;
	private String name;
	private int phone;
	private List<Group> group;
}
public class Group {
	private int pid;
	private String group;
	private User user;
}

步骤三、创建实体类映射文件.里面写的sql语句是两张表的联合查询语句.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "mybatis-mapper" "mybatis-3-mapper.dtd" >
<mapper namespace="com.zy.san.dao.IUser">

	<resultMap type="Group" id="myMapp">
		<result property="pid" column="p_id"/>
		<result property="group" column="group"/>
		
		<association property="user" column="id" javaType="User">
			<result property="id" column="id"/>
			<result property="name" column="name"/>
			<result property="phone" column="phone"/>
		</association>
	</resultMap>

	<select id="getid" parameterType="int" resultMap="myMapp">
		select `user2`.*,`groups`.* from user2,groups where user2.id=groups.g_id and groups.g_id=#{id}
	</select>
</mapper>

步骤四、创建mybatis的主配置文件(提示:因为我们要用spring整合,所以该配置文件里面的第二部分,也就是基础环境配置的部分交给了spring来管理,所以在spring配置文件中写,就不写在mybatis主配置文件里面了。)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "mybatis-config" "mybatis-3-config.dtd" >
<configuration>
	<typeAliases>
		<typeAlias type="com.zy.san.Bean.Group" alias="Group"/>
		<typeAlias type="com.zy.san.Bean.User" alias="User"/>
	</typeAliases>
	<!--这里原来的基本数据类型,现在写到spring主配置文件中-->
	<mappers>
		<mapper resource="com/zy/san/dao/mapperGroup.xml"/>
	</mappers>
</configuration>

步骤五、编写好mybatis层需要用的接口,并在接口中定义好相应的方法

package com.zy.san.dao;

import java.util.List;

import com.zy.san.Bean.Group;

public interface IUser {
	public List<Group> getid(int id);
}

步骤六、编写好spring的主配置文件(原先我们只是配置几个bean,现在不行了,因为我们集成了mybatis,所以还要配置mybatis基础环境配置的部分,也就是加载驱动的路径啊,连接数据库的路径啊,用户名啊、密码啊、事务管理啊之类的)。然后还要配置接口层

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
		<property name="url" value="jdbc:mysql://localhost:3306/lianxi"></property>
		<property name="username" value="root"></property>
		<property name="password" value="密码"></property>
	</bean>
	
	<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--dataSource属性指定要用到的连接池-->
		<property name="dataSource" ref="dataSource"></property>
		<!--configLocation属性指定mybatis的核心配置文件-->
		<property name="configLocation" value="gonfig.xml"></property>
	</bean>
	
	<bean id="MapperFactory" class="org.mybatis.spring.mapper.MapperFactoryBean">
         <!--sqlSessionFactory属性指定要用到的SqlSessionFactory实例-->
		<property name="sqlSessionFactory" ref="sqlSession" ></property>
		<!--mapperInterface属性指定映射器接口,用于实现此接口并生成映射器对象-->
		<property name="mapperInterface" value="com.zy.san.dao.IUser"></property>
	</bean>

步骤七、编写测试类(首先读取srping主配置文件获得一个spring容器对象,通过spring容器对象调用getbean方法得到bean对象,通过bean对象调用其方法完成调用数据层的操作。)

public class Test {

	public static void main(String[] args) {
       
	 ApplicationContext ac= new ClassPathXmlApplicationContext("spring.xml");
	 
	 IUser iu= (IUser) ac.getBean("MapperFactory");
     
	 List<Group> g=iu.getid(1);

	 for(Group ser:g){
		 System.out.println(ser.getGroup());
		 User u=ser.getUser();
		 System.out.println(u.getId());
	 }
	 

	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值