Home >Java >javaTutorial >Analyze how to configure database connection in MyBatis

Analyze how to configure database connection in MyBatis

WBOY
WBOYOriginal
2024-02-19 15:03:221222browse

Analyze how to configure database connection in MyBatis

Detailed explanation of the steps for MyBatis to configure database connection requires specific code examples

MyBatis is a popular open source persistence layer framework that is widely used in Java development. When using MyBatis for database operations, you first need to configure the database connection. This article will introduce in detail how to configure MyBatis database connection, and attach specific code examples.

1. Add dependencies

First, add MyBatis dependencies to your project. You can add the following content to the project's pom.xml file:

<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>

Here we take the MySQL database as an example, using MySQL's official driver mysql-connector-java.

2. Create a database

Before configuring MyBatis, you need to create the corresponding database and tables. You can use the MySQL command line or visual tools to create a database, for example:

CREATE DATABASE mybatis_demo;

USE mybatis_demo;

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

3. Configure MyBatis

Create a file named mybatis-config.xml in the project Configuration file, used to configure database connections. Generally, this file is located in the src/main/resources directory of the project.

<?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>

The <environment></environment> tag in the configuration is used to specify the database connection environment. Multiple database connection environments can be configured. The default development environment is used here. In the <datasource></datasource> tag, a data source of type POOLED is used, indicating that the connection pool is used to manage database connections.

4. Create Mapper interface

Create an interface file named UserMapper.java under the com.example.mapper package for Define the mapping relationship between SQL statements and Java classes.

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

Some common database operation methods are defined in this interface, which can be expanded according to actual needs.

5. Create Mapper XML file

Create an XML file named UserMapper.xml under the com.example.mapper package, use Used to write SQL statements and mapping rules.

<?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>

In this XML file, the namespace attribute is used to specify the fully qualified name of the Mapper interface. If the Mapper interface and the XML file are located in different packages, they need to be configured correctly namespace.

6. Use MyBatis for database operations

To use MyBatis for database operations in Java code, you need to first create a SqlSessionFactory object, and then create a ## through the object. #SqlSession object, and use the SqlSession object to perform database operations.

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();
        }
    }
}

In the above code example, the input stream of the MyBatis configuration file is obtained through the

getResourceAsStream method, and then the SqlSessionFactory object is created. Then, a SqlSession object is created through the openSession method, UserMapper.class is passed in the getMapper method, and a proxy object is returned. , you can call methods defined in the UserMapper interface through this object.

So far, we have introduced in detail the steps to configure the database connection in MyBatis, and attached specific code examples. I hope this article will help you understand and use MyBatis.

The above is the detailed content of Analyze how to configure database connection in MyBatis. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn