Rumah  >  Artikel  >  Java  >  Menganalisis cara mengkonfigurasi sambungan pangkalan data dalam MyBatis

Menganalisis cara mengkonfigurasi sambungan pangkalan data dalam MyBatis

WBOY
WBOYasal
2024-02-19 15:03:221207semak imbas

Menganalisis cara mengkonfigurasi sambungan pangkalan data dalam MyBatis

Penjelasan terperinci tentang langkah-langkah sambungan pangkalan data konfigurasi MyBatis, contoh kod khusus diperlukan

MyBatis ialah rangka kerja lapisan kegigihan sumber terbuka yang popular, digunakan secara meluas dalam pembangunan Java. Apabila menggunakan MyBatis untuk operasi pangkalan data, anda perlu mengkonfigurasi sambungan pangkalan data terlebih dahulu. Artikel ini akan memperkenalkan secara terperinci cara mengkonfigurasi sambungan pangkalan data MyBatis, dan melampirkan contoh kod tertentu.

1. Tambahkan tanggungan

Pertama, tambahkan tanggungan MyBatis pada projek anda. Anda boleh menambah kandungan berikut pada fail pom.xml projek:

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

Di sini kami mengambil pangkalan data MySQL sebagai contoh, menggunakan pemacu rasmi MySQL mysql-connector-java.

2. Cipta pangkalan data

Sebelum mengkonfigurasi MyBatis, anda perlu mencipta pangkalan data dan jadual yang sepadan. Anda boleh menggunakan baris arahan MySQL atau alatan visual untuk mencipta pangkalan data, seperti:

CREATE DATABASE mybatis_demo;

USE mybatis_demo;

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

3. Konfigurasikan MyBatis

Buat fail konfigurasi bernama mybatis-config.xml dalam projek untuk mengkonfigurasi sambungan pangkalan data. Secara amnya, fail ini terletak dalam direktori src/main/resources projek. 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

Teg <environment></environment> dalam konfigurasi digunakan untuk menentukan persekitaran sambungan pangkalan data berbilang boleh dikonfigurasikan Persekitaran development lalai digunakan di sini . Dalam teg <datasource></datasource>, sumber data jenis POOLED digunakan, menunjukkan bahawa kumpulan sambungan digunakan untuk mengurus sambungan pangkalan data.

4 Cipta antara muka Mapper 🎜🎜Buat fail antara muka bernama UserMapper.java di bawah pakej com.example.mapper untuk mentakrifkan pernyataan SQL dan perhubungan pemetaan kelas Java di antara mereka . 🎜rrreee🎜 Mentakrifkan beberapa kaedah operasi pangkalan data biasa dalam antara muka ini, yang boleh dikembangkan mengikut keperluan sebenar. 🎜🎜5. Cipta fail XML Mapper🎜🎜Buat fail XML bernama UserMapper.xml di bawah pakej com.example.mapper untuk menulis penyata SQL dan peraturan pemetaan. 🎜rrreee🎜Dalam fail XML ini, atribut namespace digunakan untuk menentukan nama yang layak sepenuhnya bagi antara muka Mapper Jika antara muka Mapper dan fail XML terletak dalam pakej yang berbeza, namespace perlu dikonfigurasikan dengan betul. 🎜🎜6 Gunakan MyBatis untuk operasi pangkalan data🎜🎜Untuk menggunakan MyBatis untuk operasi pangkalan data dalam kod Java, anda perlu mencipta objek <code>SqlSessionFactory dahulu, dan kemudian mencipta objek SqlSession melalui objek ini, dan gunakan objek SqlSession untuk melaksanakan operasi pangkalan data. 🎜rrreee🎜Dalam contoh kod di atas, aliran input fail konfigurasi MyBatis diperoleh melalui kaedah getResourceAsStream, dan kemudian objek SqlSessionFactory dicipta. Seterusnya, objek SqlSession dibuat melalui kaedah openSession dan UserMapper.class dihantar dalam kaedah getMapper . Mengembalikan objek proksi melalui kaedah yang ditakrifkan dalam antara muka UserMapper boleh dipanggil. 🎜🎜Setakat ini, kami telah memperkenalkan secara terperinci langkah-langkah untuk mengkonfigurasi sambungan pangkalan data dalam MyBatis, dan melampirkan contoh kod khusus. Saya harap artikel ini dapat membantu anda memahami dan menggunakan MyBatis. 🎜

Atas ialah kandungan terperinci Menganalisis cara mengkonfigurasi sambungan pangkalan data dalam MyBatis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn