下面我将详细讲解“基于Mybatis的配置文件入门必看篇”的完整攻略。
前言
MyBatis是一款优秀的持久层框架,它对JDBC做了很好的封装,使得开发者可以只关注SQL本身,而不需要花费精力去处理JDBC带来的诸多问题。MyBatis通过SqlSession对象直接与数据库进行交互。而SqlSessionFactoryBuilder和SqlSessionFactory就分别是用来创建SqlSession的构造器和工厂。
配置文件解析
MyBatis的配置文件一般为mybatis-config.xml,该文件中定义了MyBatis全局配置信息,例如环境、数据源、插件等。
环境配置
MyBatis的环境配置主要是为应用配置一系列的数据源的,MyBatis中包含两个重要的环境对象。
- SqlSessionFactoryBuilder,它会根据配置文件来创建SqlSessionFactory对象。
- SqlSessionFactory,它是一个线程安全的类,用来创建包含了JDBC事务连接的SqlSession实例。
示例代码:
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
上面的示例配置中,UNPOOLED是数据源的类型,表示使用了非连接池的数据源。在dataSource标签中,我们定义了连接数据库的相关属性,包括驱动、URL、用户名和密码。
数据库映射配置
MyBatis的数据库映射配置主要是为SQL语句提供映射关系,Mapper文件定义了SQL语句与Java程序中接口的关系。
示例代码:
<mappers>
<mapper resource="com/example/mapper/OrderMapper.xml" />
<mapper resource="com/example/mapper/ItemMapper.xml" />
</mappers>
上面的示例配置中,我们使用resource属性来指定Mapper文件的路径。
实例
下面我们以查询用户信息为例,来演示如何使用MyBatis。
创建POJO类
首先我们需要创建一个Java类,用来表示用户的信息。
public class User {
private Long id;
private String name;
private Integer age;
// setter and getter ...
}
创建Mapper文件
Mapper文件可以使用XML或Java注解来编写。为了方便演示,我们这里使用XML来编写Mapper文件。
<!-- resources/com.example.mapper/UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectUser" resultType="com.example.entity.User">
select * from user where id = #{id}
</select>
</mapper>
上面的示例中,我们定义了一个id为selectUser的查询,查询结果返回一个Java对象User。
配置MyBatis
将上述的两个文件放在正确的位置上后,我们需要将其配置到MyBatis中。
<?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="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml" />
</mappers>
</configuration>
上述配置中,我们指定了数据源和Mapper文件的路径。
编写代码
最后我们来编写一个Java的测试类,测试上述查询方法是否可以正常工作。
public class App {
public static void main(String[] args) throws IOException{
InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(stream, "development");
SqlSession sqlSession = factory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.selectUser(1L);
System.out.println(user);
sqlSession.close();
}
}
运行结果
经过以上配置,最终输出结果为:
User{id=1, name='Tom', age=20}
至此,我们完成了使用MyBatis查询用户信息的全过程。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于Mybatis的配置文件入门必看篇 - Python技术站