[学习笔记] MyBatis_01: MyBatis配置文件

8 篇文章 0 订阅
2 篇文章 0 订阅

MyBatis配置文件

MyBatis主配置文件, 只有一份, 名字任意, 一般为mybatis-config.xml

MyBatis映射文件, 有多份, 名字一般为XxxMapper.xml, Xxx表示模型对象

主配置文件

包括 连接池, 事务等全局的配置如关联映射日志, 插件等

<?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>
 	
 	<!-- 1. 配置数据库环境 -->
 	<environments default="dev">
 		<!-- 以后事务管理器和连接池都是交给Spring框架来管理 -->
 		<environment id="dev">
 			<!-- ① 事务管理器 -->
 			<transactionManager type="JDBC" />
 			<!-- ② 连接池-->
 			<dataSource type="POOLED">
 				<property name="driver" value="com.mysql.jdbc.Driver"/>
 				<property name="url" value="jdbc:mysql://localhost:3306/mybatis-demo" />
 				<property name="username" value="root"/>
 				<property name="password" value="1092568516"/>
 			</dataSource>
 		</environment>
 	</environments>
 	<!-- 2. 关联映射文件 -->
 	<mappers>
 		<mapper resource="com/gx/mybatis/hello/UserMapper.xml" />
 	</mappers>
 </configuration>

约束文件

MyBatis主配置文件的约束文件(mybatis-3.x.x.jar中):org\apache\ibatis\builder\xml\mybatis-3-config.dtd

MyBatis映射文件的约束文件(mybatis-3.x.x.jar中):org\apache\ibatis\builder\xml\mybatis-3-mapper.dtd

xml需要dtd约束, 约束指向网络路径:

  1. 联网后, 自动缓存路径文件到本地
  2. 无法联网, 需要配置dtd文件位置

映射文件

映射文件主要包含 该对象的CRUD操作的配置SQL

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 不同的mapper文件, namespace不一样 -->
<mapper namespace="com.gx.mybatis.hello.UserMapper">
	<!-- 
		SELECT元素: 用于写查询SQL:
			-id属性: 唯一标识, 用于表示某一条SQL语句
					id属性和mapper的namespace唯一表示了应用中某一条SQL语句
			-parameterType属性: 表示执行SQL需要的参数类型(可以省略)
			-resultType: 结果集中的每一条语句封装成什么对象
	 -->
	 <select id="get" parameterType="java.lang.Long" resultType="com.gx.mybatis.hello.User">
	 	SELECT * FROM t_user WHERE id = #{id}
	 </select>
</mapper>

测试代码

public class App {
	//get one
	@Test
	public void testGet() throws Exception{
		//1. 从classpath路径去加载全局配置文件: mybatis-config.xml
		InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
		//2. 创建SqlSessionFactory, 类似DataSource
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		//3. 创建SqlSession, 类似Connectionx`
		SqlSession session = factory.openSession();
		//4. 具体操作
		User user = session.selectOne("com.gx.mybatis.hello.UserMapper.get", 1l);
		System.out.println(user);
		//5. 关闭SqlSession
		session.close();
	}
}

查询全部

测试代码:

	//Get all
	@Test
	public void testGetAll() throws Exception{
		//1. 从classpath路径去加载全局配置文件: mybatis-config.xml
		InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
		//2. 创建SqlSessionFactory, 类似DataSource
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		//3. 创建SqlSession, 类似Connection
		SqlSession session = factory.openSession();
		
		//4. 具体操作
		List<User> users = session.selectList("com.gx.mybatis.hello.UserMapper.getAll");
		for (User u : users) {
			System.out.println(u);
		}
		
		//5. 关闭SqlSession
		session.close();
	}

只有第4步不同

映射文件代码:

	 <select id="getAll" resultType="com.gx.mybatis.hello.User">
	 	SELECT * FROM t_user
	 </select>

resultType 属性中的值不用修改, 因为resultType表示的是把结果集每一行封装为什么对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值