mybatis和spring整合框架

本文详细介绍如何将Spring与MyBatis框架进行整合,包括所需jar包、配置文件的设置及Java代码实现,并针对初学者可能遇到的问题提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.mybatis和spring整合的思路:

1.让Spring管理sqlSessionFactory>。

2.让Spring管理mapper代理对象。

  使用spring和mybatis整合开发mapper和原始dao接口。

让spring自动开启事物和关闭事物。

3.让spring管理数据源。

2.整合的框架:

2.jar包

1.spring的jar包

2.mybatis的jar包和数据库驱动包

3.配置文件

1.spring的配置文件

spring配置文件的作用,主要是将配置的bean对象加载到spring容器中。

applicationcontext.xml:

     <?xml version="1.0" encoding="UTF-8"?>
<!-- 加载bean对象的头文件  -->
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
        
        <!-- 让数据源注入到spring框架中去 -->
      <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
      <property name="url" value="jdbc:mysql://localhost:3306/myproject1"></property>
      <property name="username" value="root"></property>
      <property name="password" value="123"></property>
      </bean>
      
      <!-- 让jdbcTemplate注入到spring框架在去 -->
      <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
      <property name="dataSource" ref="dataSource"></property>
      </bean>
      
      <!-- 让sqlSessionFactory工厂类注入到spring框架在去 -->
      <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
      <property name="dataSource" ref="dataSource"></property>

<!--这句话主要是加载mybatis的配置文件,name的名称是固定的,

而value就是mybatis的配置文件名称,注意路径一定要正确,检验正确的方式,Ctrl+鼠标左键 会有下划线。-->
      <property name="configLocation" value="sqlMapconfig.xml"></property>
      </bean>
      
      <!-- 将MyProjectMapper注入到spring容器中 -->
     <bean id="MyProjectMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.zhangyike.dao.MyProjectMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
</beans>

2.mybatis的配置文件

mybatis有两个配置文件。

1.mapper.xml,主要用来写sql语句,这个文件可以有多个,dao层的接口与他对应。

2.SqlMapperConfig.xml在整合后只用来加载mapper.xml配置文件。

SqlMapperConfig.xml:

<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<mappers>
<!-- 有多少个mapper.xml就配多少条mapper!-->
<mapper resource="myp
rojectMapper.xml"/>
</mappers>
</configuration>

myprojectMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace命名空间,为了对sql语句进行隔离,方便管理 ,mapper开发dao方式.

这个namespace的值就是这个mapper对应的dao层接口的路径! -->
<mapper namespace="com.zhangyike.dao.MyProjectMapper">
<!-- 根据id查询用户信息 -->
<!-- 
id:唯一标识 一个statement
#{}:表示 一个占位符,如果#{}中传入简单类型的参数,#{}中的名称随意
parameterType:输入 参数的类型,通过#{}接收parameterType输入 的参数
resultType:输出结果 类型,不管返回是多条还是单条,指定单条记录映射的pojo类型
-->
<!-- <select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
SELECT * FROM USER WHERE id= #{id}

</select> -->

<!-- 根据用户名查询该用户是否注册过 -->
<select id="select_username" parameterType="String"  resultType="Integer">
select count(1) from register where username= #{username}
</select>

</mapper>

4.java代码

1.dao层的mapper接口

public interface MyProjectMapper {
public int select_username(String name);
}

2.测试类

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.zhangyike.dao.MyProjectMapper;


public class Test1 {
public static void main(String[] args) {
// 加载配置文件
ApplicationContext application = new ClassPathXmlApplicationContext("applicationcontext.xml");
//得到mapper类对象
MyProjectMapper mapper = (MyProjectMapper) application.getBean("MyProjectMapper");
//调用mapper的方法。
System.out.println(mapper.select_username("1"));
}
}

5.总结

1.spring、mybatis两个框架结合搭建,主要用spring的IOC和DI容器和mybatis框架操作数据库。

2.对于初学者而言,完整搭建这个框架是不容易的,即使框架搭建出来了,也可能是一头雾水,我将我能想到的

可能出现的问题罗列。

2.1检查jar包,整合新添了mybatis-spring-1.2.2.jar、spring-tx-3.2.0.RELEASE.jar这两个jar包,检查是否导入。

对于jar包问题,使用eclipse时,在项目上有的,就是jar包的问题。

2.2配置文件的路径是否正确,都是新建的source folder文件夹下,而不是普通的文件夹。

2.3applicationcontext.xml中sqlSessionFactory的bean中有一个属性名称固定为configLocation,

值为sqlmapperconfig.xml的路径,这个路径用ctrl+鼠标能够找到。

2.4要把mapper接口配置在applicationcontext.xml中。

2.5 myprojectMapper.xml文件中的namepace是这个mapper.xml对应的mapper接口类,

这个接口类中的方法名是mapper.xml中的bean的id。

2.6SqlMapperConfig.xml主要用来加载mapper文件,这个路径要写正确!

3.加载错误,千万不能心急,一定要沉下心看看错误信息,这是一条最快的方案,提示的很直接,刚开始或许

    很郁闷看不懂,看几次就懂了,对解决问题帮助很大。

4.或许第一次是一头雾水,但是搞清楚每个配置文件的作用,及里面配置的作用,就会有豁然开朗的感觉。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值