微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mybatis入门程序2

实现根据id查询用户

使用的sql:

SELECT * FROM `user` WHERE id = 1

在user.xml中添加select标签,编写sql

<?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">
<!-- namespace:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->
<mapper namespace="test">

	<!-- id:statement的id 或者叫做sql的id-->
	<!-- parameterType:声明输入参数的类型 -->
	<!-- resultType:声明输出结果的类型,应该填写pojo的全路径 -->
	<!-- #{}:输入参数的占位符,相当于jdbc的? -->
	<select id="queryUserById" parameterType="int"
		resultType="cn.itcast.mybatis.pojo.User">
		SELECT * FROM `user` WHERE id  = #{id}
	</select>

</mapper>

测试程序:

测试程序步骤:

 1. 创建sqlSessionFactoryBuilder对象

 2. 加载sqlMapConfig.xml配置文件

 3. 创建sqlSessionFactory对象

 4. 创建sqlSession对象

 5. 执行sqlSession对象执行查询获取结果User

 6. 打印结果

 7. 释放资源

public class MybatisTest {
	private sqlSessionFactory sqlSessionFactory = null;

	@Before
	public void init() throws Exception {
		// 1. 创建sqlSessionFactoryBuilder对象
		sqlSessionFactoryBuilder sqlSessionFactoryBuilder = new sqlSessionFactoryBuilder();

		// 2. 加载sqlMapConfig.xml配置文件
		InputStream inputStream = Resources.getResourceAsstream("sqlMapConfig.xml");

		// 3. 创建sqlSessionFactory对象
		this.sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
	}

	@Test
	public void testQueryUserById() throws Exception {
		// 4. 创建sqlSession对象
		sqlSession sqlSession = sqlSessionFactory.openSession();

		// 5. 执行sqlSession对象执行查询获取结果User
		// 第一个参数是User.xml的statement的id,第二个参数是执行sql需要的参数;
		Object user = sqlSession.selectOne("queryUserById", 1);

		// 6. 打印结果
		System.out.println(user);

		// 7. 释放资源
		sqlSession.close();
	}
}

实现根据用户名模糊查询用户

查询sql

SELECT * FROM `user` WHERE username LIKE '%王%'

方法一:在User.xml配置文件添加如下内容

<!-- 如果返回多个结果,mybatis会自动把返回的结果放在list容器中 -->
	<!-- resultType的配置和返回一个结果的配置一样 -->
	<select id="queryUserByUsername1" parameterType="string"
		resultType="cn.itcast.mybatis.pojo.User">
		SELECT * FROM `user` WHERE username LIKE #{username}
	</select>
        @Test
	public void testQueryUserByUsername1() throws Exception {
		// 4. 创建sqlSession对象
		sqlSession sqlSession = sqlSessionFactory.openSession();

		// 5. 执行sqlSession对象执行查询获取结果User
		// 查询多条数据使用selectList方法
		List<Object> list = sqlSession.selectList("queryUserByUsername1", "%王%");

		// 6. 打印结果
		for (Object user : list) {
			System.out.println(user);
		}

		// 7. 释放资源
		sqlSession.close();
	}

方法二:

在User.xml配置文件添加如下内容

        <!-- 如果传入的参数是简单数据类型,${}里面必须写value -->
	<select id="queryUserByUsername2" parameterType="string"
		resultType="cn.itcast.mybatis.pojo.User">
		SELECT * FROM `user` WHERE username LIKE '%${value}%'
	</select>
@Test
public void testQueryUserByUsername2() throws Exception {
	// 4. 创建sqlSession对象
	sqlSession sqlSession = sqlSessionFactory.openSession();

	// 5. 执行sqlSession对象执行查询获取结果User
	// 查询多条数据使用selectList方法
	List<Object> list = sqlSession.selectList("queryUserByUsername2", "王");

	// 6. 打印结果
	for (Object user : list) {
		System.out.println(user);
	}

	// 7. 释放资源
	sqlSession.close();
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。