>  기사  >  Java  >  MyBatis에서 데이터베이스 연결 구성 방법 분석

MyBatis에서 데이터베이스 연결 구성 방법 분석

WBOY
WBOY원래의
2024-02-19 15:03:221147검색

MyBatis에서 데이터베이스 연결 구성 방법 분석

MyBatis 구성 데이터베이스 연결 단계에 대한 자세한 설명, 특정 코드 예제가 필요합니다.

MyBatis는 Java 개발에 널리 사용되는 인기 있는 오픈 소스 지속성 계층 프레임워크입니다. 데이터베이스 작업을 위해 MyBatis를 사용하는 경우 먼저 데이터베이스 연결을 구성해야 합니다. 이 기사에서는 MyBatis 데이터베이스 연결을 구성하는 방법과 특정 코드 예제를 첨부하는 방법을 자세히 소개합니다.

1. 종속성 추가

먼저 프로젝트에 MyBatis 종속성을 추가합니다. 프로젝트의 pom.xml 파일에 다음 콘텐츠를 추가할 수 있습니다.

<dependencies>
    <!-- MyBatis依赖 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>
    <!-- 数据库驱动依赖,根据你使用的数据库类型选择对应的驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>
</dependencies>

여기서는 MySQL의 공식 드라이버 mysql-connector-java를 사용하여 MySQL 데이터베이스를 예로 들어 보겠습니다.

2. 데이터베이스 생성

MyBatis를 구성하기 전에 해당 데이터베이스와 테이블을 생성해야 합니다. MySQL 명령줄이나 시각적 도구를 사용하여 다음과 같은 데이터베이스를 생성할 수 있습니다:

CREATE DATABASE mybatis_demo;

USE mybatis_demo;

CREATE TABLE user (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    age INT
);

3. MyBatis 구성

프로젝트에 mybatis-config.xml이라는 구성 파일을 생성하여 데이터베이스 연결. 일반적으로 이 파일은 프로젝트의 src/main/resources 디렉터리에 있습니다. mybatis-config.xml的配置文件,用于配置数据库连接。一般情况下,该文件位于项目的src/main/resources目录下。

<?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.cj.jdbc.Driver" />
                <!-- 数据库连接URL -->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis_demo?useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8" />
                <!-- 数据库用户名 -->
                <property name="username" value="root" />
                <!-- 数据库密码 -->
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    <!-- 映射器配置,用于定义SQL语句和Java类之间的映射关系 -->
    <mappers>
        <!-- 可以配置多个映射器,这里以Mapper接口为例 -->
        <mapper resource="com/example/mapper/UserMapper.xml" />
    </mappers>
</configuration>

配置中的<environment></environment>标签用于指定数据库连接环境,可以配置多个数据库连接环境,这里使用了默认的development环境。在<datasource></datasource>标签中,使用了POOLED类型的数据源,表示使用连接池来管理数据库连接。

四、创建Mapper接口

com.example.mapper包下创建一个名为UserMapper.java的接口文件,用于定义SQL语句和Java类之间的映射关系。

public interface UserMapper {
    // 查询所有用户
    List<User> getAllUsers();
    // 根据ID查询用户
    User getUserById(int id);
    // 插入用户
    void insertUser(User user);
    // 更新用户
    void updateUser(User user);
    // 删除用户
    void deleteUser(int id);
}

在该接口中定义了一些常用的数据库操作方法,可以根据实际需求进行扩展。

五、创建Mapper XML文件

com.example.mapper包下创建一个名为UserMapper.xml的XML文件,用于编写SQL语句和映射规则。

<?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="getAllUsers" resultType="com.example.model.User">
        SELECT * FROM user
    </select>
    <!-- 根据ID查询用户 -->
    <select id="getUserById" parameterType="int" resultType="com.example.model.User">
        SELECT * FROM user WHERE id = #{id}
    </select>
    <!-- 插入用户 -->
    <insert id="insertUser" parameterType="com.example.model.User">
        INSERT INTO user (name, age) VALUES (#{name}, #{age})
    </insert>
    <!-- 更新用户 -->
    <update id="updateUser" parameterType="com.example.model.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>

在该XML文件中,使用了namespace属性指定了Mapper接口的全限定名,如果Mapper接口和XML文件位于不同的包下,需要正确配置namespace

六、使用MyBatis进行数据库操作

在Java代码中使用MyBatis进行数据库操作,需要先创建一个SqlSessionFactory对象,然后通过该对象创建一个SqlSession对象,并利用SqlSession对象执行数据库操作。

public class App {
    public static void main(String[] args) {
        // 创建MyBatis配置文件的输入流
        InputStream inputStream = App.class.getResourceAsStream("/mybatis-config.xml");
        // 创建SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        // 创建SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();

        try {
            // 获取UserMapper对象
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            // 调用数据库操作方法
            List<User> users = userMapper.getAllUsers();
            System.out.println(users);
        } finally {
            // 关闭SqlSession
            sqlSession.close();
        }
    }
}

以上代码示例中,通过getResourceAsStream方法获取了MyBatis配置文件的输入流,然后创建了SqlSessionFactory对象。接着,通过openSession方法创建了一个SqlSession对象,在getMapper方法中传入了UserMapper.class,返回一个代理对象,可以通过该对象调用定义在UserMapperrrreee

구성의 <environment></environment> 태그는 데이터베이스 연결 환경을 지정하는 데 사용됩니다. 여기에서는 기본 개발 환경을 구성할 수 있습니다. . <datasource></datasource> 태그에는 POOLED 유형의 데이터 소스가 사용되며 이는 연결 풀이 데이터베이스 연결을 관리하는 데 사용됨을 나타냅니다.

4. Mapper 인터페이스 생성 🎜🎜com.example.mapper 패키지 아래에 UserMapper.java라는 인터페이스 파일을 생성하여 SQL 문과 Java 클래스 간의 매핑 관계를 정의합니다. . 🎜rrreee🎜 이 인터페이스에서 실제 필요에 따라 확장할 수 있는 몇 가지 일반적인 데이터베이스 작업 방법을 정의합니다. 🎜🎜5. 매퍼 XML 파일 생성🎜🎜SQL 문 및 매핑 규칙 작성을 위해 com.example.mapper 패키지 아래에 UserMapper.xml이라는 XML 파일을 생성합니다. 🎜rrreee🎜이 XML 파일에서 namespace 속성은 Mapper 인터페이스의 정규화된 이름을 지정하는 데 사용됩니다. Mapper 인터페이스와 XML 파일이 다른 패키지에 있는 경우 namespace를 올바르게 구성해야 합니다. 🎜🎜6. 데이터베이스 작업에 MyBatis 사용🎜🎜Java 코드에서 데이터베이스 작업에 MyBatis를 사용하려면 먼저 <code>SqlSessionFactory 객체를 생성한 다음 SqlSession 객체를 생성해야 합니다. 이 개체를 통해 SqlSession 개체를 사용하여 데이터베이스 작업을 수행합니다. 🎜rrreee🎜위 코드 예시에서는 getResourceAsStream 메소드를 통해 MyBatis 구성 파일의 입력 스트림을 얻은 후 SqlSessionFactory 객체가 생성됩니다. 다음으로 openSession 메서드를 통해 SqlSession 개체가 생성되고 UserMapper.classgetMapper 메서드에 전달됩니다. . UserMapper 인터페이스에 정의된 메소드를 호출할 수 있는 프록시 객체를 반환합니다. 🎜🎜지금까지 MyBatis에서 데이터베이스 연결을 구성하는 단계를 자세히 소개하고 구체적인 코드 예제를 첨부했습니다. 이 글이 여러분이 MyBatis를 이해하고 사용하는 데 도움이 되기를 바랍니다. 🎜

위 내용은 MyBatis에서 데이터베이스 연결 구성 방법 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.