整合Spring Boot、MyBatis、逆向工程、JPA和MyBatis Plus

整合Spring Boot、MyBatis、逆向工程、JPA和MyBatis Plus

Spring Boot是一个用于简化Java应用程序开发的框架,而MyBatis是一个流行的持久化框架,它提供了简单且强大的数据库访问功能。本文将介绍如何使用Spring Boot整合MyBatis、逆向工程、JPA和MyBatis Plus,并提供相应的源代码示例。

  1. 项目搭建和依赖配置

首先,我们需要创建一个新的Spring Boot项目。可以使用Spring Initializr(https://start.spring.io/ ↗)进行项目的初始化,选择所需的依赖项:Spring Web、Spring Data JPA、MyBatis和MyBatis Plus。

  1. 配置数据库连接

在application.properties(或application.yml)文件中配置数据库连接信息,例如:

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

创建一个MyBatis的配置类,用于配置MyBatis的相关信息。在该类上使用@Configuration注解,并添加@MapperScan注解指定Mapper接口的扫描路径,例如:

@Configuration
@MapperScan("com.example.mapper")
public class MyBatisConfig {
    
    @Autowired
    private DataSource dataSource;
    
    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        return sessionFactory.getObject();
    }
}
  1. 编写Mapper接口和XML文件

创建Mapper接口和对应的XML文件来定义数据库操作。Mapper接口使用@Mapper注解标记,并定义相应的SQL语句。例如:

@Mapper
public interface UserMapper {
    
    @Select("SELECT * FROM user WHERE id = #{id}")
    User getUserById(Long id);
    
    // 其他数据库操作方法...
}

<mapper namespace="com.example.mapper.UserMapper">
    
    <resultMap id="BaseResultMap" type="com.example.entity.User">
        
        <id column="id" property="id" />
        <result column="username" property="username" />
        
    resultMap>
    
    <select id="getUserById" resultMap="BaseResultMap">
        SELECT * FROM user WHERE id = #{id}
    select>
    
    
    
mapper>
  1. 配置JPA

创建一个JPA的配置类,用于配置JPA的相关信息。在该类上使用@Configuration注解,并添加@EnableJpaRepositories注解指定Repository接口的扫描路径,例如:

@Configuration
@EnableJpaRepositories("com.example.repository")
public class JpaConfig {
    
    @Autowired
    private DataSource dataSource;
    
    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
        emf.setDataSource(dataSource);
        emf.setPackagesToScan("com.example.entity");
        emf.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
        return emf;
    }
    
    @Bean
    public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {
        return new JpaTransactionManager(emf);
    }
}
  1. 编写Entity和Repository

创建Entity类来映射数据库表,并创建对应的Repository接口来定义数据库操作。例如:

@Entity
@Table(name = "user")
public class User {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @Column(nullable = false)
    private String username;
    
    // 其他字段...
    
    // Getter和Setter方法...
}

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    
    // 其他数据库操作方法...
}
  1. 配置MyBatis Plus

创建一个MyBatis Plus的配置类,用于配置MyBatis Plus的相关信息。在该类上使用@Configuration注解,并添加@MapperScan注解指定Mapper接口的扫描路径,例如:

@Configuration
@MapperScan("com.example.mapper")
public class MyBatisPlusConfig {
    
    @Autowired
    private DataSource dataSource;
    
    @Bean
    public MybatisSqlSessionFactoryBean sqlSessionFactory() throws Exception {
        MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        return sessionFactory;
    }
}
  1. 整合Spring Boot和MyBatis Plus

在Spring Boot的主类上添加@MapperScan注解,指定Mapper接口的扫描路径,例如:

@SpringBootApplication
@MapperScan("com.example.mapper")
public class Application {
    
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  1. 使用MyBatis和JPA

在需要使用MyBatis的地方注入Mapper接口,并调用相应的方法进行数据库操作。例如:

@Service
public class UserService {
    
    @Autowired
    private UserMapper userMapper;
    
    public User getUserById(Long id) {
        return userMapper.getUserById(id);
    }
    
    // 其他数据库操作方法...
}

@RestController
@RequestMapping("/users")
public class UserController {
    
    @Autowired
    private UserRepository userRepository;
    
    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        return userRepository.findById(id).orElse(null);
    }
    
    // 其他接口方法...
}

通过以上步骤,我们成功整合了Spring Boot、MyBatis、逆向工程、JPA和MyBatis Plus。你可以根据自己的需求使用适当的方式进行数据库操作。

这是一个基本的示例,你可以根据自己的项目需求进行相应的修改和扩展。希望本文能帮助你顺利整合Spring Boot和MyBatis等框架,并在实际项目中发挥作用。

以上是整合Spring Boot、MyBatis、逆向工程、JPA和MyBatis Plus的详细步骤和代码示例。希望对你有所帮助!

你可能感兴趣的:(spring,boot,mybatis,后端,Java)