日期:2014-05-16  浏览次数:20364 次

跟我一起学Mybatis之(五)----具体的操作

这次呢,主要是介绍使用,不介绍翻译了,先大概介绍一下:

?

<select id="selectPerson" parameterType="int" resultType="hashmap">
SELECT * FROM PERSON WHERE ID = #{id}
</select>

?上面的这个生命将会调用selectPerson,有一个参数的类型是int类型的,返回的结果是HashMap类型的(key是列明,value是对应的数据库中的数据值)

?

请注意:

#{id}

?这将会告诉MyBatis创建一个PreparedStatement参数,在JDBC里面,这样的参数在SQL语句中将被定义为“?”形式,正如java中的定义:

?

?

String selectPerson = "SELECT * FROM PERSON WHERE ID=?";
PreparedStatement ps = conn.prepareStatement(selectPerson);
ps.setInt(1,id);

也可以如下详细的 进行参数设置:

?

?

<select
id="selectPerson"
parameterType="int"
parameterMap="deprecated"
resultType="hashmap"
resultMap="personResultMap"
flushCache="false"
useCache="true"
timeout="10000"
fetchSize="256"
statementType="PREPARED"
resultSetType="FORWARD_ONLY">

下面是我的代码,包括xml中的定义以及java代码的测试:

?

?

?

<select id="selectOnePerson" parameterType="int" resultType="com.ggg.henushang.entity.Person">
		select * from Person where id = #{id}
	</select>

??dao中的定义:

?

??

Person selectOnePerson(int id);

?测试代码:

	@Test
	public void testGetOnePerson(){
		Person p = session.selectOne("com.ggg.henushang.dao.PersonDao.selectOnePerson",1);
		System.out.println(p);
		Assert.assertNotNull(p);
	}

?

?

?

?

这便是一个基本查询的完成。

?

?

?

?

?

?