spring怎么连接mybatis

不及物动词 其他 44

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    连接Spring和MyBatis主要有以下几个步骤:

    1. 添加必要的依赖:首先,在项目的pom.xml文件中添加Spring和MyBatis的相关依赖。
    <!-- 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>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.7</version>
    </dependency>
    
    1. 配置Spring和MyBatis:在Spring的配置文件中,添加MyBatis相关的配置。
    <!-- 配置数据源 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>
    
    <!-- 配置MyBatis的SqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>
    
    <!-- 配置MyBatis的MapperScannerConfigurer -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.example.mapper"/>
    </bean>
    
    <!-- 配置事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    
    <!-- 开启注解事务管理 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>
    
    1. 编写Dao接口和Mapper映射文件:在Dao接口中定义CRUD操作的方法,在Mapper映射文件中编写SQL语句和映射规则。
    public interface UserDao {
        User getUserById(Long id);
        void addUser(User user);
        void updateUser(User user);
        void deleteUser(Long id);
    }
    
    <!-- UserDao.xml -->
    <mapper namespace="com.example.mapper.UserDao">
        <select id="getUserById" parameterType="java.lang.Long" resultType="com.example.entity.User">
            SELECT * FROM user WHERE id = #{id}
        </select>
        <insert id="addUser" parameterType="com.example.entity.User">
            INSERT INTO user (id, name, age) VALUES (#{id}, #{name}, #{age})
        </insert>
        <update id="updateUser" parameterType="com.example.entity.User">
            UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
        </update>
        <delete id="deleteUser" parameterType="java.lang.Long">
            DELETE FROM user WHERE id = #{id}
        </delete>
    </mapper>
    
    1. 编写Service层:在Service层中使用自动注入的方式,调用Dao层的方法。
    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private UserDao userDao;
    
        @Override
        public User getUserById(Long id) {
            return userDao.getUserById(id);
        }
    
        @Override
        public void addUser(User user) {
            userDao.addUser(user);
        }
    
        @Override
        public void updateUser(User user) {
            userDao.updateUser(user);
        }
    
        @Override
        public void deleteUser(Long id) {
            userDao.deleteUser(id);
        }
    }
    
    1. 编写Controller层:在Controller层中通过自动注入Service层的对象,处理HTTP请求。
    @RestController
    @RequestMapping("/user")
    public class UserController {
    
        @Autowired
        private UserService userService;
    
        @GetMapping("/{id}")
        public User getUser(@PathVariable("id") Long id) {
            return userService.getUserById(id);
        }
    
        @PostMapping("/")
        public void addUser(@RequestBody User user) {
            userService.addUser(user);
        }
    
        @PutMapping("/")
        public void updateUser(@RequestBody User user) {
            userService.updateUser(user);
        }
    
        @DeleteMapping("/{id}")
        public void deleteUser(@PathVariable("id") Long id) {
            userService.deleteUser(id);
        }
    }
    

    这样,Spring和MyBatis就成功连接起来了。在Controller层中,通过调用Service层的方法来访问数据库。同时,通过配置MyBatis的映射文件,可以实现SQL语句的编写和数据的映射。

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

    连接Spring和MyBatis可以通过配置文件进行实现。下面是实现连接的步骤:

    1. 引入相关依赖
      首先,需要确保在项目的构建文件中,引入了Spring和MyBatis的相关依赖。可以使用Maven或Gradle等构建工具进行依赖管理。

    2. 配置数据源
      在Spring的配置文件中,需要配置MyBatis使用的数据源。可以使用Spring提供的数据源,例如org.springframework.jdbc.datasource.DriverManagerDataSource,也可以使用其他第三方数据源,例如com.zaxxer.hikari.HikariDataSource。配置数据源的用户名、密码、URL等信息。

    3. 配置SessionFactory
      在Spring的配置文件中,需要配置MyBatis的SessionFactory。SessionFactory是MyBatis的主要接口,用于创建数据库会话。可以使用Spring提供的org.mybatis.spring.SqlSessionFactoryBean来配置SessionFactory。

    4. 配置Mapper扫描器
      在Spring的配置文件中,需要配置MyBatis的Mapper扫描器。Mapper扫描器用于自动扫描和注册MyBatis的Mapper接口,以便在应用程序中使用。可以使用Spring提供的org.mybatis.spring.mapper.MapperScannerConfigurer来配置Mapper扫描器。

    5. 配置事务管理器
      如果需要在应用程序中使用事务,还需要配置Spring的事务管理器。可以使用Spring提供的事务管理器,例如org.springframework.jdbc.datasource.DataSourceTransactionManager,来管理数据库事务。

    通过以上步骤,就可以完成Spring和MyBatis的连接。在应用程序中,就可以使用MyBatis的Mapper接口来执行数据库操作。

    以下是一个示例的Spring配置文件,用于连接Spring和MyBatis:

    <!-- 配置数据源 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/mydatabase" />
        <property name="username" value="root" />
        <property name="password" value="password" />
    </bean>
    
    <!-- 配置SessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations" value="classpath*:mapper/*.xml" />
    </bean>
    
    <!-- 配置Mapper扫描器 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.example.mapper" />
    </bean>
    
    <!-- 配置事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>
    

    注意:以上配置文件中的相关类路径和文件路径需要根据实际情况进行调整。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Spring与MyBatis是一个常见的Java开发框架组合。Spring作为一个轻量级的容器和框架,用于实现依赖注入和面向切面编程,而MyBatis则是一个优秀的持久层框架,用于简化数据库操作。

    下面将分为四个部分,介绍Spring如何连接MyBatis:配置环境、创建数据库连接、配置MyBatis和配置Spring。

    一、配置环境

    在开始使用Spring和MyBatis之前,请确保已配置好以下环境:

    1. Java开发环境已正确安装并配置;
    2. Maven或Gradle已安装并已创建项目;
    3. 已添加Spring和MyBatis的依赖。

    二、创建数据库连接

    首先,需要确保已正确创建数据库连接。可以使用数据库连接池,例如Apache Commons DBCP、HikariCP等。以下是使用Apache Commons DBCP创建数据库连接的示例:

    import org.apache.commons.dbcp2.BasicDataSource;
    
    public class DatabaseConnection {
        private static BasicDataSource dataSource;
    
        static {
            dataSource = new BasicDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
            dataSource.setUsername("root");
            dataSource.setPassword("password");
        }
    
        public static BasicDataSource getDataSource() {
            return dataSource;
        }
    }
    

    三、配置MyBatis

    1. 创建Mapper接口,将SQL语句和方法绑定:
    public interface UserMapper {
        User getUserById(int id);
        void insertUser(User user);
        void updateUser(User user);
        void deleteUser(int id);
    }
    
    1. 创建Mapper XML文件,编写对应的SQL语句。例如,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.mapper.UserMapper">
        <!-- 查询用户 -->
        <select id="getUserById" resultType="com.example.entity.User">
            SELECT * FROM user WHERE id = #{id}
        </select>
        
        <!-- 插入用户 -->
        <insert id="insertUser" parameterType="com.example.entity.User">
            INSERT INTO user (name, age)
            VALUES (#{name}, #{age})
        </insert>
        
        <!-- 更新用户 -->
        <update id="updateUser" parameterType="com.example.entity.User">
            UPDATE user SET name = #{name}, age = #{age}
            WHERE id = #{id}
        </update>
        
        <!-- 删除用户 -->
        <delete id="deleteUser" parameterType="int">
            DELETE FROM user WHERE id = #{id}
        </delete>
    </mapper>
    
    1. 配置数据库连接和MyBatis相关信息。例如,将数据库参数和Mapper文件路径添加到MyBatis配置文件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>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
                    <property name="username" value="root"/>
                    <property name="password" value="password"/>
                </dataSource>
            </environment>
        </environments>
    
        <mappers>
            <mapper resource="com/example/mapper/UserMapper.xml"/>
        </mappers>
    </configuration>
    

    四、配置Spring

    1. 创建Spring配置文件,例如spring-config.xml,配置MyBatis相关信息:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="
              http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
              http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
        <context:component-scan base-package="com.example.service"/>
    
        <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
            <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
            <property name="username" value="root"/>
            <property name="password" value="password"/>
        </bean>
    
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <property name="configLocation" value="classpath:mybatis-config.xml"/>
        </bean>
    
        <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
            <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
            <property name="mapperInterface" value="com.example.mapper.UserMapper"/>
        </bean>
    </beans>
    
    1. 创建Service和Controller类,依赖注入Mapper接口:
    @Service
    public class UserService {
        @Autowired
        private UserMapper userMapper;
    
        public User getUserById(int id) {
            return userMapper.getUserById(id);
        }
    
        public void insertUser(User user) {
            userMapper.insertUser(user);
        }
    
        public void updateUser(User user) {
            userMapper.updateUser(user);
        }
    
        public void deleteUser(int id) {
            userMapper.deleteUser(id);
        }
    }
    
    @Controller
    public class UserController {
        @Autowired
        private UserService userService;
    
        @RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
        @ResponseBody
        public User getUserById(@PathVariable("id") int id) {
            return userService.getUserById(id);
        }
    }
    

    以上是连接Spring和MyBatis的步骤。配置好后,可以通过访问Controller中的URL来测试连接和数据库操作。

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

400-800-1024

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

分享本页
返回顶部