spring如何与mybatis整合

worktile 其他 45

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Spring和MyBatis都是非常流行的Java开发框架,它们可以很好地协同工作来简化开发过程。下面我将介绍如何将Spring与MyBatis整合。

    首先,需要在项目的依赖管理中添加Spring和MyBatis的相关依赖。可以通过Maven或Gradle来管理项目依赖,下面是一个示例的Maven依赖配置:

    <dependencies>
        <!-- Spring框架依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        
        <!-- MyBatis依赖 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>
        
        <!-- 数据库驱动依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version>
        </dependency>
    </dependencies>
    

    接下来,需要配置Spring和MyBatis的相关配置文件。在Spring的配置文件中,可以配置数据源和事务管理器,让Spring来管理数据库连接和事务。在MyBatis的配置文件中,需要配置数据库连接信息、Mapper扫描路径等。

    以下是一个示例的Spring配置文件(applicationContext.xml):

    <!-- 配置数据源 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/test" />
        <property name="username" value="root" />
        <property name="password" value="123456" />
    </bean>
    
    <!-- 配置事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>
    

    以下是一个示例的MyBatis配置文件(mybatis-config.xml):

    <configuration>
        <!-- 配置数据源 -->
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.cj.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://localhost:3306/test" />
                    <property name="username" value="root" />
                    <property name="password" value="123456" />
                </dataSource>
            </environment>
        </environments>
        
        <!-- 配置Mapper扫描路径 -->
        <mappers>
            <package name="com.example.mapper" />
        </mappers>
    </configuration>
    

    最后,需要在Spring的配置文件中引入MyBatis的配置文件,并配置扫描Mapper接口的路径。可以使用@MapperScan注解来扫描Mapper接口,或者在XML配置文件中使用<mybatis:scan>标签来配置。

    以下是一个示例的Spring配置文件(applicationContext.xml):

    <!-- 引入MyBatis的配置文件 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:mybatis-config.xml" />
        <property name="mapperLocations" value="classpath:mapper/*.xml" />
    </bean>
    
    <!-- 扫描Mapper接口 -->
    <mybatis:scan base-package="com.example.mapper" />
    

    至此,Spring和MyBatis的整合就完成了。现在可以使用Spring来管理数据库连接和事务,并使用MyBatis进行数据访问。

    希望以上的介绍对你有帮助!如果有任何疑问,请随时告诉我。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Spring与MyBatis的整合主要通过使用Spring的支持来集成MyBatis,其中包括配置MyBatis的数据源、事务管理以及自动注入Mapper等。下面是具体的整合步骤:

    1. 添加依赖:首先,在项目的pom.xml文件中添加Spring和MyBatis的相关依赖项。可以通过Maven或Gradle等构建工具进行添加。

    2. 配置数据源:在Spring的配置文件中配置数据源,以便MyBatis能够连接数据库。可以使用Spring提供的JDBC数据源或者使用第三方的数据源,如Druid或HikariCP。

    3. 配置SqlSessionFactory:配置SqlSessionFactory,这是MyBatis的核心对象,用于创建SqlSession。

    4. 配置Mapper扫描:通过配置MyBatis的Mapper扫描器,使得MyBatis能够自动扫描并加载Mapper接口。可以使用注解或xml配置两种方式。

    5. 配置事务管理:使用Spring的事务管理机制来管理MyBatis的事务。可以通过声明式事务管理或编程式事务管理两种方式进行配置。

    具体的步骤如下:

    1. 添加依赖:
      在pom.xml文件中添加Spring和MyBatis的相关依赖项。例如:

      <dependencies>
          <!-- Spring 相关依赖 -->
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-context</artifactId>
              <version>5.2.8.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-jdbc</artifactId>
              <version>5.2.8.RELEASE</version>
          </dependency>
          <!-- MyBatis 相关依赖 -->
          <dependency>
              <groupId>org.mybatis.spring.boot</groupId>
              <artifactId>mybatis-spring-boot-starter</artifactId>
              <version>2.1.3</version>
          </dependency>
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>8.0.21</version>
          </dependency>
      </dependencies>
      
    2. 配置数据源:
      在Spring的配置文件(如application.xml)中配置数据源。例如,使用Spring JDBC数据源:

      <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
          <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
          <property name="url" value="jdbc:mysql://localhost:3306/dbname" />
          <property name="username" value="username" />
          <property name="password" value="password" />
      </bean>
      
    3. 配置SqlSessionFactory:
      配置SqlSessionFactory,提供MyBatis的核心配置信息和数据源。例如,使用MyBatis的SqlSessionFactoryBean:

      <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
          <property name="dataSource" ref="dataSource" />
          <property name="mapperLocations" value="classpath*:mapper/*.xml" />
      </bean>
      
    4. 配置Mapper扫描:
      配置Mapper扫描器,使得MyBatis能够自动扫描并加载Mapper接口。可以使用注解或xml配置两种方式。例如,使用注解方式:

      <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
          <property name="basePackage" value="com.example.mapper" />
      </bean>
      
    5. 配置事务管理:
      使用Spring的事务管理机制来管理MyBatis的事务。可以通过声明式事务管理或编程式事务管理两种方式进行配置。例如,使用声明式事务管理:

      <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          <property name="dataSource" ref="dataSource" />
      </bean>
      <tx:annotation-driven transaction-manager="transactionManager" />
      

    通过以上步骤,就可以完成Spring与MyBatis的整合。整合后,可以通过注入Mapper接口来使用MyBatis,并由Spring来管理数据源和事务等。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Spring框架和Mybatis框架是两个非常流行的Java框架,在企业应用中经常被使用。将Spring和Mybatis整合以实现数据访问功能的组合,同时能够利用Spring的依赖注入和事务管理等特性,提高开发效率和系统的可维护性。下面将介绍如何将Spring和Mybatis整合,在Spring中配置Mybatis相关的bean,以及在使用中的操作流程。

    一、添加相关依赖

    在pom.xml文件中添加Spring和Mybatis的相关依赖信息,示例如下:

    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.9</version>
        </dependency>
        <!-- Mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
    </dependencies>
    

    二、配置Spring和Mybatis的相关bean

    在Spring的配置文件中,需要配置MyBatis的SqlSessionFactory、DataSource和MapperScannerConfigurer等bean。

    1. 配置数据源

    首先配置数据库连接信息和连接池等,示例如下:

    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis_db"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>
    
    1. 配置Mybatis的SqlSessionFactory
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath*:mapper/*.xml"/>
    </bean>
    

    其中,mapperLocations属性指定了Mybatis的Mapper文件所在的路径。

    1. 配置MapperScannerConfigurer
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.example.dao"/>
    </bean>
    

    这里的basePackage属性需要指定Mapper接口所在的包路径。

    三、创建DAO接口和映射文件

    在com.example.dao包下创建DAO接口和对应的映射文件。

    1. 创建DAO接口
    public interface UserDAO {
        User getUserById(int id);
        List<User> getAllUsers();
        void addUser(User user);
        void updateUser(User user);
        void deleteUser(int id);
    }
    
    1. 创建映射文件

    在resources/mapper目录下创建UserMapper.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">
    <mapper namespace="com.example.dao.UserDAO">
        <resultMap id="UserResultMap" type="com.example.model.User">
            <result column="id" property="id"/>
            <result column="name" property="name"/>
            <result column="age" property="age"/>
            <result column="email" property="email"/> 
        </resultMap>
        
        <select id="getUserById" resultMap="UserResultMap">
            select * from user where id = #{id}
        </select>
        
        <select id="getAllUsers" resultMap="UserResultMap">
            select * from user
        </select>
        
        <insert id="addUser">
            insert into user(name, age, email) values (#{name}, #{age}, #{email})
        </insert>
        
        <update id="updateUser">
            update user set name = #{name}, age = #{age}, email = #{email} where id = #{id}
        </update>
        
        <delete id="deleteUser">
            delete from user where id = #{id}
        </delete>
    </mapper>
    

    四、使用Spring和Mybatis进行数据访问

    在业务逻辑层或服务层中,通过注入UserDAO接口来进行数据访问操作。

    @Service
    public class UserService {
        @Autowired
        private UserDAO userDAO;
        
        public User getUserById(int id){
            return userDAO.getUserById(id);
        }
        
        public List<User> getAllUsers(){
            return userDAO.getAllUsers();
        }
        
        public void addUser(User user){
            userDAO.addUser(user);
        }
        
        public void updateUser(User user){
            userDAO.updateUser(user);
        }
        
        public void deleteUser(int id){
            userDAO.deleteUser(id);
        }
    }
    

    在以上代码中,通过@Autowired注解将UserDAO接口注入到UserService中,然后直接调用UserDAO接口中定义的方法来实现数据访问操作。

    五、配置事务支持

    如果需要使用到事务管理,还需要在Spring的配置文件中配置事务管理器和事务通知等。

    <!-- 配置事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    
    <!-- 开启注解式事务支持 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>
    

    六、总结

    以上就是Spring和Mybatis整合的主要步骤,通过配置Spring的bean对象和Mybatis的SqlSessionFactory等,实现将两个框架组合使用的目的。在使用中,通过注入DAO接口来进行数据库的操作,将业务逻辑与数据访问的实现分离,提高了代码的可维护性和可测试性。同时,结合Spring的依赖注入和事务管理等特性,可以更方便地进行开发和管理。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部