第二种读取数据库user表的方法是使用java注解的方式。
1.去掉前面文章中的UserMapper.xml,将需要查询数据库表的sql语句加入interface中。
package com.yw.test02;
import org.apache.ibatis.annotations.Select;
public interface UserMapper
{
@Select("SELECT * FROM user WHERE id = #{id}")
User selectUser(int id);
}
2.修改mybatis-config.xml
<?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>
<properties resource="config.properties">
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper class="com.yw.test02.UserMapper"/>
</mappers>
</configuration>
注意修改了下面的部分:
<mappers>
<mapper class="com.yw.test02.UserMapper"/>
</mappers>
3.修改测试类
package com.yw.test02;
import java.io.IOException;
import java.io.InputStream;
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 Test01
{
public static void main(String[] args) throws IOException
{
String resource = "com/yw/test02/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
try
{
// User user = (User) session.selectOne("com.yw.test01.UserMapper.selectUser", 1);
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.selectUser(1);
System.out.println(user);
}
finally
{
session.close();
}
}
}