mybatis有一个种面向接口的编程方式,即只写接口,不用写接口实现类。
实现这种编程方式的关键是:
1.mapper文件的命名空间必须是包名.接口名的形式,如:com.obtk.dao.IStudentDao
2.mapper文件里面的select标签的id值必须和接口里面的方法名称要一致
具体案例:
接口:
package com.obtk.dao;
import java.util.List;
import com.obtk.entitys.StudentEntity;
public interface IStudentDao {
List<StudentEntity> queryByGender(String gender);
}
mapper映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.obtk.dao.IStudentDao">
<select id="selectById" parameterType="int" resultType="StudentEntity">
select * from student where stuId=#{stuId}
</select>
<!-- resultType只表示数据库里面一行数据所能够映射的类型 -->
<select id="queryByGender" parameterType="string" resultType="StudentEntity">
select * from student where gender=#{gender}
</select>
</mapper>
测试类:
package com.obtk.test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.obtk.dao.IStudentDao;
import com.obtk.entitys.StudentEntity;
import com.obtk.utils.MybatisUtil;
/**
* 1.mapper文件的命名空间必须是包名.接口名的形式com.obtk.dao.IStudentDao
* 2.mapper文件里面的select标签的id值必须和接口里面的方法名称要一致
* @author Administrator
*/
public class TestQueryMany {
public static void main(String[] args) {
SqlSession session=MybatisUtil.getSession();
IStudentDao stuDao=session.getMapper(IStudentDao.class);
List<StudentEntity> stuList=stuDao.queryByGender("男");
for(StudentEntity stu : stuList){
System.out.println(stu.getStuName()+","+stu.getGender());
}
}
}