spring怎么怎么mybatis

不及物动词 其他 40

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Spring如何集成MyBatis?

    Spring和MyBatis是Java开发中常用的两个框架,它们的结合可以带来很多便利和灵活性。下面我将详细介绍Spring集成MyBatis的步骤和配置。

    Step 1: 添加依赖

    首先,在你的项目中添加Spring和MyBatis的相关依赖。如果你使用的是Maven,可以在pom.xml文件中添加如下依赖:

    <dependencies>
        <!-- Spring 相关依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.10</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.10</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>
        
        <!-- 其他依赖 -->
    </dependencies>
    

    Step 2: 配置数据源

    在Spring集成MyBatis之前,你需要先配置数据库连接信息。可以使用Spring提供的数据源,或者自定义数据源。下面是一个配置MySQL数据源的示例:

    <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="password" />
    </bean>
    

    Step 3: 配置MyBatis的SqlSessionFactory

    在Spring中,MyBatis的SqlSessionFactory可以通过SqlSessionFactoryBean来创建和配置。可以根据需要设置MyBatis的配置、Mapper扫描路径等。下面是一个示例配置:

    <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:mappers/**/*.xml" />
    </bean>
    

    Step 4: 配置MyBatis的MapperScannerConfigurer

    MapperScannerConfigurer是用来扫描和注册MyBatis的Mapper接口的。可以通过配置basePackage属性设置扫描的包路径,并指定SqlSessionFactory。示例如下:

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.example.mapper" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>
    

    Step 5: 创建一个Service层或DAO层的实现类

    在上面的步骤中,已经将MyBatis的Mapper接口进行了扫描和注册。现在,你可以创建一个Service层或DAO层的实现类,并注入对应的Mapper接口。示例代码如下:

    @Service
    public class UserServiceImpl implements UserService {
        
        @Autowired
        private UserMapper userMapper;
        
        // 具体的业务方法实现
        
    }
    

    Step 6: 配置Spring的事务管理

    如果你需要在使用MyBatis的同时进行事务管理,可以通过配置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项目中轻松使用MyBatis进行数据库操作。希望对你有所帮助!

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

    Spring框架提供了集成MyBatis的支持,可以通过配置文件和注解的方式来将MyBatis集成到Spring项目中。下面是Spring如何集成MyBatis的一些步骤和要点:

    1. 添加依赖:在项目的pom.xml文件中添加MyBatis和Spring相关的依赖。例如:
    <dependencies>
        <!-- MyBatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>
        
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.4.2</version>
        </dependency>
    </dependencies>
    
    1. 配置数据源:在Spring的配置文件(如application.properties或application.yml)中配置数据库连接信息和数据源。例如:
    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/mydatabase
        username: root
        password: mypassword
        driver-class-name: com.mysql.cj.jdbc.Driver
    
    1. 创建MyBatis配置文件:创建一个MyBatis的配置文件,用于配置MyBatis相关的参数和设置。例如,创建一个名为mybatis-config.xml的文件,添加以下内容:
    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration>
        <settings>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
        <typeAliases>
            <!-- 配置别名 -->
            <package name="com.example.entity"/>
        </typeAliases>
    </configuration>
    
    1. 创建Mapper接口:创建一个Mapper接口,用于定义数据访问的方法。例如:
    @Repository
    public interface UserMapper {
        User getUserById(int id);
        List<User> getAllUsers();
        void addUser(User user);
        void updateUser(User user);
        void deleteUser(int id);
    }
    
    1. 创建Mapper XML文件:创建一个与Mapper接口对应的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" parameterType="int" resultType="com.example.entity.User">
            SELECT * FROM users WHERE id = #{id}
        </select>
        
        <select id="getAllUsers" resultType="com.example.entity.User">
            SELECT * FROM users
        </select>
        
        <insert id="addUser" parameterType="com.example.entity.User">
            INSERT INTO users (id, name, age) VALUES (#{id}, #{name}, #{age})
        </insert>
        
        <update id="updateUser" parameterType="com.example.entity.User">
            UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}
        </update>
        
        <delete id="deleteUser" parameterType="int">
            DELETE FROM users WHERE id = #{id}
        </delete>
    </mapper>
    
    1. 配置MyBatis和Spring的集成:在Spring的配置文件中配置MyBatis和Spring的集成。例如,创建一个名为MyBatisConfig的配置类,添加以下内容:
    @Configuration
    @MapperScan("com.example.mapper")
    public class MyBatisConfig {
        @Value("${spring.datasource.url}")
        private String url;
    
        @Value("${spring.datasource.username}")
        private String username;
    
        @Value("${spring.datasource.password}")
        private String password;
    
        @Value("${spring.datasource.driver-class-name}")
        private String driverClass;
    
        @Bean
        public DataSource dataSource() {
            // 配置数据源
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setUrl(url);
            dataSource.setUsername(username);
            dataSource.setPassword(password);
            dataSource.setDriverClassName(driverClass);
            return dataSource;
        }
    
        @Bean
        public SqlSessionFactoryBean sqlSessionFactory() throws Exception {
            // 配置MyBatis的SqlSessionFactory
            SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
            sessionFactory.setDataSource(dataSource());
            sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources("classpath*:com/example/mapper/*.xml"));
            sessionFactory.setConfigLocation(new ClassPathResource("mybatis-config.xml"));
            return sessionFactory;
        }
    
        @Bean
        public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
            // 配置MyBatis的SqlSessionTemplate
            return new SqlSessionTemplate(sqlSessionFactory);
        }
    }
    

    通过以上步骤,就完成了Spring和MyBatis的集成。在需要使用数据访问的地方,可以通过注入Mapper接口来进行数据库操作。例如:

    @Autowired
    private UserMapper userMapper;
    
    public User getUserById(int id) {
        return userMapper.getUserById(id);
    }
    

    以上是Spring集成MyBatis的一般步骤和要点,通过配置文件和注解的方式,可以在Spring项目中轻松使用MyBatis进行数据库操作。

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

    Spring与MyBatis的整合是一种常见的Java企业级应用开发方式。Spring作为一个轻量级的容器框架,可以管理和维护各种对象的生命周期,提供依赖注入、面向切面编程等功能。而MyBatis是一种简化数据库访问的持久层框架,可以通过XML或注解配置来映射Java对象和数据库表。

    Spring和MyBatis的整合可以帮助我们更好地管理和维护数据库相关的操作,提升代码的可读性和可维护性。下面将介绍Spring与MyBatis整合的方法和操作流程。

    1. 添加依赖

    首先,需要在项目的pom.xml文件中添加Spring和MyBatis的依赖。具体依赖的版本可以根据项目需要进行选择。

    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.8</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.8</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.26</version>
        </dependency>
    </dependencies>
    
    1. 配置数据源

    在Spring与MyBatis的整合中,通常需要配置数据源。可以使用Spring提供的dataSource来配置数据源,也可以使用第三方的数据源。这里以使用Spring提供的数据源为例。

    application.properties(或application.yml)中添加数据库连接配置。

    spring.datasource.url=jdbc:mysql://localhost:3306/test_db
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
    1. 配置MyBatis

    在Spring与MyBatis的整合中,需要配置SqlSessionFactoryMapperScannerConfigurer

    首先,配置SqlSessionFactory,用于创建SqlSession对象。

    @Configuration
    @MapperScan(basePackages = "com.example.mapper")
    public class MyBatisConfig {
        @Value("${spring.datasource.url}")
        private String url;
      
        @Value("${spring.datasource.username}")
        private String username;
      
        @Value("${spring.datasource.password}")
        private String password;
      
        @Value("${spring.datasource.driver-class-name}")
        private String driverClass;
      
        @Bean
        public DataSource dataSource() {
            DruidDataSource dataSource = new DruidDataSource();
            dataSource.setUrl(url);
            dataSource.setUsername(username);
            dataSource.setPassword(password);
            dataSource.setDriverClassName(driverClass);
            return dataSource;
        }
      
        @Bean
        public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
            SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
            sessionFactory.setDataSource(dataSource);
            return sessionFactory.getObject();
        }
      
        @Bean
        public MapperScannerConfigurer mapperScannerConfigurer() {
            MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer();
            scannerConfigurer.setBasePackage("com.example.mapper");
            return scannerConfigurer;
        }
    }
    

    这里通过@MapperScan注解扫描com.example.mapper包下的Mapper接口。

    1. 编写Mapper接口和映射文件

    在MyBatis中,需要编写Mapper接口和映射文件(或使用注解)来定义数据库表的操作方法和SQL语句。

    public interface UserMapper {
        User selectUserById(Long id);
        void insertUser(User user);
        void updateUser(User user);
        void deleteUser(Long id);
    }
    
    <!-- resources/mapper/UserMapper.xml -->
    <mapper namespace="com.example.mapper.UserMapper">
        <select id="selectUserById" resultType="com.example.model.User">
            SELECT * FROM user WHERE id = #{id}
        </select>
      
        <insert id="insertUser">
            INSERT INTO user (id, name, age) VALUES (#{id}, #{name}, #{age})
        </insert>
      
        <update id="updateUser">
            UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
        </update>
      
        <delete id="deleteUser">
            DELETE FROM user WHERE id = #{id}
        </delete>
    </mapper>
    
    1. 编写Service和Controller

    在Spring中,可以使用@Service注解将Service类声明为Bean,使用@Autowired注解将Mapper接口注入到Service中。

    @Service
    public class UserService {
        @Autowired
        private UserMapper userMapper;
      
        public User getUserById(Long id) {
            return userMapper.selectUserById(id);
        }
      
        public void saveUser(User user) {
            userMapper.insertUser(user);
        }
      
        public void updateUser(User user) {
            userMapper.updateUser(user);
        }
      
        public void deleteUser(Long id) {
            userMapper.deleteUser(id);
        }
    }
    

    在Controller中,可以使用@RestController注解声明一个RestController并处理请求。

    @RestController
    @RequestMapping("/users")
    public class UserController {
        @Autowired
        private UserService userService;
      
        @GetMapping("/{id}")
        public User getUser(@PathVariable Long id) {
            return userService.getUserById(id);
        }
      
        @PostMapping("/")
        public void saveUser(@RequestBody User user) {
            userService.saveUser(user);
        }
      
        @PutMapping("/{id}")
        public void updateUser(@PathVariable Long id, @RequestBody User user) {
            user.setId(id);
            userService.updateUser(user);
        }
      
        @DeleteMapping("/{id}")
        public void deleteUser(@PathVariable Long id) {
            userService.deleteUser(id);
        }
    }
    
    1. 配置Spring MVC

    在Spring与MyBatis的整合中,还需要配置Spring MVC,以使得Controller能够正确地处理请求。

    @Configuration
    @EnableWebMvc
    @ComponentScan(basePackages = "com.example.controller")
    public class WebConfig implements WebMvcConfigurer {
      
        @Override
        public void configureViewResolvers(ViewResolverRegistry registry) {
            registry.jsp().prefix("/WEB-INF/views/").suffix(".jsp");
        }
      
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**").addResourceLocations("/static/");
        }
    }
    
    1. 运行应用

    配置完成后,使用集成开发环境或命令行工具运行应用程序。可以访问http://localhost:8080/users/{id}来测试接口是否正常工作。

    以上就是Spring与MyBatis的整合方法和操作流程。通过整合,可以更方便地使用MyBatis进行数据库操作,并结合Spring的依赖注入和面向切面编程等功能,提升应用的可读性和可维护性。

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

400-800-1024

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

分享本页
返回顶部