mybatis——使用sql标签封装字段

当我们需要多次重复使用某些sql字段时,我们可以将它封装到sql标签中,以减少代码量

mybati-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "mybatis-3-config.dtd" >
<configuration>
	<!-- 数据库环境 -->
	<environments default="development">
		<environment id="development">
			<!-- 采用JDBC管理器方式 -->
			<transactionManager type="JDBC"/>
				<!-- POOLED采用mybatis内部连接池方式 -->
				<dataSource type="POOLED">
					<property name="username" value="root"/>
					<property name="url" value="jdbc:mysql://localhost:3306/test"/>
					<property name="driver" value="com.mysql.jdbc.Driver"/>
					<property name="password" value="1234"/>
				</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="studentMapping.xml"/>
	</mappers>
</configuration>

studentMapping.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="mybatis.student">
	<!-- 字段封装到sql标签中 -->
	<sql id="studentField">id,name,password,school,major</sql>

	<select id="getAll" resultType="map">
		select
		<include refid="studentField"/>
		from
		t_student
	</select>
	
	<select id="getById" resultType="map" parameterType="int">
		select
		<include refid="studentField"/>
		from
		t_student where id=#{0}
	</select>
</mapper>

test

package com.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;



public class test {

	public static void main(String[] args) throws IOException {
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		SqlSession sqlSession = sqlSessionFactory.openSession();
		
		List<Map> list = sqlSession.selectList("getAll");
		for (int i = 0; i < list.size(); i++) {
			Map map = list.get(i);
			System.out.println(map.get("id")+"__"+map.get("name")+"__"+
			map.get("password")+"__"+map.get("school")+"__"+map.get("major"));
		}
		System.out.println();
		System.out.println();
		
		
		list = sqlSession.selectList("getById", 5);
		for (int i = 0; i < list.size(); i++) {
			Map map = list.get(i);
			System.out.println(map.get("id")+"__"+map.get("name")+"__"+
					map.get("password")+"__"+map.get("school")+"__"+map.get("major"));
		}
		
	}
}

猜你喜欢

转载自blog.csdn.net/Milan__Kundera/article/details/81813534