MyBatis是一款优秀的持久化框架,它通过XML或注解将Java对象映射到关系数据库中的数据。一般来说,MyBatis的配置文件主要包括以下几个方面:数据源、事务管理、映射文件以及全局配置。
数据源配置
数据源是MyBatis配置文件中最基本的部分,我们需要在配置文件中指定数据源的连接信息。
<configuration>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
</configuration>
事务管理配置
在MyBatis中,我们可以通过配置来管理事务。
<configuration>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 配置事务管理器 -->
<transactionManager type="JDBC">
<dataSource type="Pooled">
<property name="driver" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</transactionManager>
</configuration>
映射文件配置
在MyBatis中,我们需要将Java对象映射到数据库中的数据表。这需要我们编写映射文件来进行配置。
<configuration>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 配置事务管理器 -->
<transactionManager type="JDBC">
<dataSource type="Pooled">
<property name="driver" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</transactionManager>
<!-- 加载映射文件 -->
<mappers>
<mapper resource="com/example/mapping/UserMapper.xml"/>
<mapper resource="com/example/mapping/OrderMapper.xml"/>
</mappers>
</configuration>
示例1:映射文件
我们假设有一个User表,包含以下字段:id, name, age。
创建Java对象
我们需要创建对应的Java对象,代码如下:
public class User {
private int id;
private String name;
private int age;
// getter和setter方法省略
}
配置映射文件
创建一个UserMapper.xml映射文件,设置id、name和age的映射。
<!-- 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.example.mapping.UserMapper">
<!-- 根据id查询用户信息 -->
<select id="getUserById" resultType="User">
select * from user where id=#{id}
</select>
<!-- 向User表中插入一行数据 -->
<insert id="insertUser" parameterType="User">
insert into user(id, name, age) values(#{id}, #{name}, #{age})
</insert>
</mapper>
调用映射文件
例子中使用Java代码调用UserMapper.xml映射文件:
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = factory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// 查询用户信息
User user = userMapper.getUserById(1);
System.out.println(user.getName() + ", " + user.getAge());
// 插入用户信息
User newUser = new User();
newUser.setId(2);
newUser.setName("Tom");
newUser.setAge(25);
userMapper.insertUser(newUser);
// 提交事务
sqlSession.commit();
// 关闭SqlSession
sqlSession.close();
示例2:注解方式
通过注解的方式,我们可以在Java类中直接进行数据操作。
创建Java对象
继续使用上例中的User类。
SQL语句的注解
我们可以在Java类的方法中使用SQL语句的注解,这样MyBatis就会自动执行SQL语句。
public interface UserMapper {
// 查询用户信息
@Select("SELECT * FROM user WHERE id=#{id}")
public User getUserById(int id);
// 插入用户信息
@Insert("INSERT INTO user(id, name, age) VALUES(#{id}, #{name}, #{age})")
public void insertUser(User user);
}
调用注解
使用Java代码调用UserMapper接口的方法,代码如下:
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = factory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// 查询用户信息
User user = userMapper.getUserById(1);
System.out.println(user.getName() + ", " + user.getAge());
// 插入用户信息
User newUser = new User();
newUser.setId(2);
newUser.setName("Tom");
newUser.setAge(25);
userMapper.insertUser(newUser);
// 提交事务
sqlSession.commit();
// 关闭SqlSession
sqlSession.close();
以上,就是MyBatis配置文件的写法和简单使用的完整攻略,包括数据源、事务管理、映射文件以及注解方式的操作,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis配置文件的写法和简单使用 - Python技术站