接前文,操作数据库,通过session.selectOne查询user的id,sql语句被隐藏在UserMapper.xml里了,那么session.selectOne又通过UserMapper.selectUserById参数检索到了隐藏的sql语句,通过参数值1指配给参数id。
//操作数据库 executor执行
User user = session.selectOne("UserMapper.selectUserById", 1);
System.out.println(user);
UserMapper.xml里的mapper内容修改如下:
<mapper namespace="UserMapper">
<select id="selectUserById" parameterType="Integer" resultType="com.zzz.bean.User">
select * from user where u_id = #{id}
</select>
</mapper>
这就是mybatis的风格。
再来一个模糊查询,需要更改的还是操作数据库那段代码
//操作数据库 executor执行
List<User> list = session.selectList("UserMapper.selectUserByName", "王");
for (User u : list) {
System.out.println(u);
}
UserMapper.xml里的mapper内容增加一个select标签,在模糊查询中,参数名value是固定的,否则会报错:
<select id="selectUserByName" parameterType="String" resultType="com.zzz.bean.User">
select * from user where u_username like '%${value}%'
</select>
为了显示详细日志,在src文件下添加一个log4j.properties配置文件,内容如下:
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n