使用mybatis的Mapper开发dao层,可以只写一个接口,不用自己实现定的接口,由动态代理自动帮忙实现接口,极大的提高了开发效率
使用Mapper开发的注意事项
- namespace必须和Mapper接口类路径一致
- id必须和Mapper接口方法名一致
- parameterType必须和接口方法参数类型一致
- resultType必须和接口方法返回值类型一致
<mapper namespace="com.ctbu.dao.CustomerDao">
<!--根据cust_id查询客户-->
<select id="queryCustomerById" parameterType="Int" resultType="com.ctbu.domain.Customer">
SELECT * FROM `customer` WHERE cust_id = #{cust_id}
</select>
</mapper>
这是定义的接口(其中的名称必须遵循上面的规范,否则无法使用)
public interface CustomerDao {
public Customer queryCustomerById(Integer id);
}
编写测试类进行测试
public class MappTest {
@Test
public void test01(){
SqlSession session = MyUtils.openSession();
CustomerDao mapper = session.getMapper(CustomerDao.class);
Customer customer = mapper.queryCustomerById(17);
System.out.println(customer);
}
}
这样,即使我们自己没有实现我们写的接口,却一样的可以查询数库