SpringBoot 통합 JDBC 및 MyBatis로

개요

이 문서는 주로 기록 방법 SpringBoot 프로젝트의 JDBC MyBatis로, 나는 모든 후, 간단한 테스트의 통합과 사용에서 사용할 통합하는 방법이며,이 문서의 목적은 오히려 당신이 어떻게 사용하는 방법을 가르쳐 것보다, 통합하는 것입니다. 난 당신이 나와 함께 곰 바랍니다.

통용 배치

JDBC 통합 및 통합 여기 MyBatis로 추가하고 구성 엔티티 클래스해야합니다

데이터베이스 테이블

CREATE TABLE `user`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;
复制代码

Entity 클래스

간단한 사용자 개체 클래스를 추가하고 다음 JDBC의 MyBatis 사용 사용 및 테스트. 시험은 비교적 간단 때 결과를 확인하기 위해 toString 메소드를 추가합니다.

public class User {

    private Integer id;

    private String username;

    private String address;

    public Integer getId() { return id; }

    public void setId(Integer id) { this.id = id; }

    public String getUsername() { return username; }

    public void setUsername(String username) { this.username = username; }

    public String getAddress() { return address; }

    public void setAddress(String address) { this.address = address; }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}
复制代码

구성 받는다는

데이터베이스의 자신의 버전에 따라 MySQL의 버전 (연결 풀로 이해) 알리 클라우드 데이터 소스를 제공하기 위해 설정 드루이드입니다

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.10</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
    <version>8.0.18</version>
</dependency>
复制代码

데이터베이스 구성

데이터베이스 구성 특성은 확실히 덜하지 않습니다.

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mydatabase
复制代码

통합 JDBC

메이븐 의존성

springboot 제공 의존 JDBC 추가

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
复制代码

용도

@Service
public class UserService {

    @Autowired
    JdbcTemplate jdbcTemplate;

    public Integer addUser(User user) {
        return jdbcTemplate.update("insert into user (username,address) values (?,?);",
                user.getUsername(), user.getAddress());
    }

    /**
     * 查询方式一
     * 当类属性和数据库字段不对应时才这样使用
     * @return
     */
    public List<User> getAllUserFirst() {
        return jdbcTemplate.query("select * from user;", new RowMapper<User>() {
            @Override
            public User mapRow(ResultSet resultSet, int i) throws SQLException {
                User user = new User();
                int id = resultSet.getInt("id");
                String address = resultSet.getString("address");
                String username = resultSet.getString("username");
                user.setId(id);
                user.setUsername(username);
                user.setAddress(address);
                return user;
            }
        });
    }

    /**
     * 查询方式二
     * 当类属性和数据库字段对应时就这样使用啦,比上面的简洁很多
     */
    public List<User> getAllUserSecond() {
        return jdbcTemplate.query("select * from user;", new BeanPropertyRowMapper<>(User.class));
    }
}
复制代码

우리는 추가, 수정, 모든 사용 삭제할지 여부를 JDBC 무엇을 기억해야한다 update방법을. 쿼리를 사용하고 있습니다 query. 데이터베이스 필드와 속성이 일치하지 않는 엔티티 클래스 인 경우에, 당신은 위의 코드를 사용할 필요가 查询方式一데이터베이스 엔티티 클래스 속성 필드와 모두 같은이, 위의 코드에서 사용할 수있는 경우는 查询方式二, 간단하고 신속.

테스트

과정을 마친 후, 적은 테스트를 구성, 테스트 클래스는 다음과 같습니다 :

@SpringBootTest
class JdbcApplicationTests {

    @Autowired
    UserService userService;

    @Test
    public void addUser() {
        User user = new User();
        user.setUsername("johnson2");
        user.setAddress("colablog.cn");
        userService.addUser(user);
    }

    public void queryUsers() {
        List<User> allUserFirst = userService.getAllUserFirst();
        System.out.println(allUserFirst);
    }
}
复制代码

통합의 MyBatis

현재 가장 인기있는 지속성은 MyBatis로, 매일 SSM은 누에 고치에서 귀를 듣고, 프레임 워크. 다음과 같이 통합의 MyBatis는 대부분 사용, 통합은 다음과 같습니다

메이븐 의존성

버전은 당신이 볼 수 받는다는 저장소

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.1</version>
</dependency>
复制代码

스캔 매퍼

SpringBoot 매퍼에 대한 경로가 내 가방 검색 경로를 스캔 제공 할 필요가 cn.colablog.mybatis.mapper자신을 추가하는 구성 항목 : 하나의 방법

@Configuration
@MapperScan(basePackages = "cn.colablog.mybatis.mapper")
public class MyBatisConfig {
}
复制代码

두 번째 방법 : 직접 응용 프로그램에 배치

@SpringBootApplication
@MapperScan(basePackages = "cn.colablog.mybatis.mapper")
public class MybatisApplication {
    public static void main(String[] args) {
        SpringApplication.run(MybatisApplication.class, args);
    }
}
复制代码

매퍼 매핑

UserMapper 인터페이스

매퍼 패키지에 cn.colablog.mybatis.mapper추가 UserMapper 인터페이스 디렉토리

@Mapper
public interface UserMapper {
    List<User> getAllUser();
}
复制代码

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.colablog.mybatis.mapper.UserMapper">
    <select id="getAllUser" resultType="com.colablog.mybatis.bean.User">
        select * from user
    </select>
</mapper>
复制代码

세 가지 방법으로 저장 : 방법 1 (기본값은) 기본 디렉토리 자원, 예를 들어,지도에서 Mapper.xml을 찾을 SpringBoot User클래스 자바 디렉토리 경로 cn.colablog.mybatis.mapper. 그런 다음 UserMapper.xml당신은 자원 디렉토리를 둘 필요가 cn.colablog.mybatis.mapper있습니다 :.이 추가 추가 할 수 없습니다 자원 디렉토리 아래, IDEA 개발 도구를 사용하는 경우 :

IDEA는 당신이 이름을 추가하려면이 추가 도움이 될 것입니다 cn.colablog.mybatis.mapper 다음과 같이하여 디렉토리 턴, 저장 위치를 추가 할 필요가 있으므로, 디렉토리 :

두 번째 방법의 구성은 속성의 파일 경로에 저장됩니다

mybatis.mapper-locations=classpath:/mapper/*.xml
复制代码

다음과 같이 저장 위치는 다음과 같습니다

세 가지 방법이 자바 카탈로그에 부하 XML 파일의 pom.xml 자원의 요구에 구성 :

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
        ...
    </build>
复制代码

다음과 같이 인터페이스를 UserMapper 및 저장 위치와 동일한 디렉토리에 저장 할 수 있습니다이 방법 :

제 여기서 끝났다! 다음으로, 나는 관심, SpringBoot에 쓰기 기사를 계속합니다, 당신은 내 이전의 두 볼 수 있습니다 SpringBoot Web篇 오 기사. 기사의 부적절 성에서, 읽어 주셔서 감사 또는 더 나은 제안하는 경우, ♪ 아래 (· ω ·) 테크노를 감사 메시지를 남겨주세요.

개인 블로그 URL : colablog.cn/

당신에게 내 기사 도움, 나는 공공 마이크로 채널 번호에 초점을 맞출 수없는 경우, 처음 기사를 공유하기

마이크로 채널 공개 수

추천

출처juejin.im/post/5dd205b16fb9a01fe847828e