spring+mybatis整合开发

第一步:在spring配置文件中创建datasource数据源

<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!--配置数据库信息-->
    </bean>

第二步:创建sqlsessionbuilder

<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
        <property name="dataSource" ref="datasource"/>
        <property name="configLocation" value="classpath:"/>
        <!-- mybatis配置文件,但可以直接在bean中配置 -->
    </bean>

第三步:创建sqlsessiontemplate

<bean id="session" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>

 第四步:将自己的实现类交给spring托管

类似于Service层

public class UserDaoImpl implements UserDao{
    SqlSession session;

    public SqlSession getSession() {
        return session;
    }

    public void setSession(SqlSession session) {
        this.session = session;
    }

    public void addUser(User user){
        UserDao userDao = session.getMapper(UserDao.class);
        userDao.addUser(user);
    }
}
<bean class="UserDaoImpl" id="userDao">
        <property name="session" ref="session"/>
    </bean>
<!--由spring托管-->

 如果UserDaoImpl继承了SqlSessionFactory类 则可以不用注入sqlsession,直接注入sqlsessionfactory即可,sqlsessionfactory类有getsqlsession方法

 

 

注意:mybatis-config.xml的标签应该按顺序编写 否则bean可能会生成失败

mybatis spring 默认自动提交事务

 

 

pom.xml需要导入的包

spring mybatis-spring mybatis mysql-connector-java spring-jdbc(连接池)

 

 

 

整合:applicationContext.xml

<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-2.5.xsd">
<!--   定义数据源 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="url" value="jdbc:mysql://127.0.0.1/lesson_get"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    </bean>
<!--  定义sqlsessionfactory  -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

        <!--set注入,把数据库连接池付给dataSource属性-->
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
    </bean>
<!--  定义sqlsession  -->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>
<!--  让spring管理Service  -->
    <bean id="bookService" class="com.dronff.Service.BookServiceImpl">
        <property name="sqlSession"  ref="sqlSession"/>
    </bean>
</beans>
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
    <typeAliases>
        <package name="com.dronff.pojo"/>
    </typeAliases>

    <mappers>
        <mapper resource="com/dronff/dao/BookDaoMapper.xml"/>
    </mappers>
</configuration>

 

 
posted @ 2022-03-11 20:12  dronff  阅读(36)  评论(0)    收藏  举报