Home >Java >javaTutorial >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.
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!