輸出引數resultType
1.簡單型別(八個基本型別+String)
/MyBatisProject3/src/org/myy/mapper/studentMapper.xml
<select id="queryStudentCount" resultType="int"> select count(1) from student1 </select>
/MyBatisProject3/src/org/myy/mapper/StudentMapper.java
int queryStudentCount();
/MyBatisProject3/src/org/myy/test/Test.java
//Connection - SqlSession操作Mybatis//conf.xml->reader Reader reader = Resources.getResourceAsReader("conf.xml"); //reader->sqlSession //可以通過build的第二引數 指定資料庫環境 SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader,"development"); SqlSession session = sessionFactory.openSession(); StudentMapper studentMapper= session.getMapper(StudentMapper.class); int count=studentMapper.queryStudentCount(); System.out.println(count); session.close();
2.輸出引數為實體物件型別
/MyBatisProject3/src/org/myy/mapper/studentMapper.xml
<select id="queryStuByStuno" parameterType="int" resultType="student"> select * from student1 where stuno=${value}</select>
/MyBatisProject3/src/org/myy/mapper/StudentMapper.java
Student queryStuByStuno(int stuno);
/MyBatisProject3/src/org/myy/test/Test.java
//Connection - SqlSession操作Mybatis //conf.xml->reader Reader reader = Resources.getResourceAsReader("conf.xml"); //reader->sqlSession //可以通過build的第二引數 指定資料庫環境 SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader,"development"); SqlSession session = sessionFactory.openSession(); StudentMapper studentMapper = session.getMapper(StudentMapper.class); Student student=studentMapper.queryStuByStuno(1); System.out.println(student); session.close();
3.輸出引數為實體物件型別的集合:雖然輸出型別為集合,但是resultType依然寫集合的元素型別()
/MyBatisProject3/src/org/myy/mapper/studentMapper.xml
<select id="queryAllStudent" resultType="student"> select * from student1 </select>
/MyBatisProject3/src/org/myy/mapper/StudentMapper.java
List<Student> queryAllStudent();
/MyBatisProject3/src/org/myy/test/Test.java
// Connection - SqlSession操作Mybatis // conf.xml->reader Reader reader = Resources.getResourceAsReader("conf.xml"); // reader->sqlSession // 可以通過build的第二引數 指定資料庫環境 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader, "development"); SqlSession session = sessionFactory.openSession(); StudentMapper studentMapper = session.getMapper(StudentMapper.class); List<Student> students = studentMapper.queryAllStudent(); System.out.println(students); session.close();
4.輸出引數型別為HashMap
Hashmap本身是一個集合,但是可以存放多個元素
但是根據提示發現,返回值為Hashmap時,查詢的結果只能是一個學生(no,name)
->結論:一個HashMap對應一個學生的多個元素(多個屬性)
/MyBatisProject3/src/org/myy/mapper/studentMapper.xml
<select id="queryAllStudentOutByHashMap" resultType="HashMap"> select stuno "no",stuname "name" from student1 </select>
/MyBatisProject3/src/org/myy/mapper/StudentMapper.java
List<HashMap<String, Object>> queryAllStudentOutByHashMap();
/MyBatisProject3/src/org/myy/test/Test.java
// Connection - SqlSession操作Mybatis // conf.xml->reader Reader reader = Resources.getResourceAsReader("conf.xml"); // reader->sqlSession // 可以通過build的第二引數 指定資料庫環境 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader, "development"); SqlSession session = sessionFactory.openSession(); StudentMapper studentMapper = session.getMapper(StudentMapper.class); List<HashMap<String, Object>> studentMap = studentMapper.queryAllStudentOutByHashMap(); System.out.println(studentMap); session.close();
resultType:一般情況下
resultMap:實體類的屬性、資料表的欄位:型別、名字不同時
當屬性名和欄位名不一致時,除了使用resultMap以外,還可以使用resultType+HashMap
a.result
/MyBatisProject3/src/org/myy/mapper/studentMapper.xml
<select id="qureyStudentById" parameterType="int" resultMap="qureyStudentByIdMap"> select id,name from student1 where id=#{id} </select> <resultMap type="student" id="qureyStudentByIdMap"> <!--指定類中的屬性和表中的欄位對應關係 --> <id property="stuNo" column="id"/> <result property="stuName" column="name"/> </resultMap>
/MyBatisProject3/src/org/myy/mapper/StudentMapper.java
Student qureyStudentById(int stuno);
/MyBatisProject3/src/org/myy/test/Test.java
// Connection - SqlSession操作Mybatis // conf.xml->reader Reader reader = Resources.getResourceAsReader("conf.xml"); // reader->sqlSession // 可以通過build的第二引數 指定資料庫環境 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader, "development"); SqlSession session = sessionFactory.openSession();
StudentMapper studentMapper = session.getMapper(StudentMapper.class); Student student = studentMapper.qureyStudentById(1); System.out.println(student); session.close();
b.resultType+HashMap
/MyBatisProject3/src/org/myy/mapper/studentMapper.xml
<select id="qureyStudentByIdWithHashMap" parameterType="int" resultType="HashMap"> select id "stuNo",name "stuName" from student1 where id=#{id}
</select>
/MyBatisProject3/src/org/myy/mapper/StudentMapper.java
Student qureyStudentByIdWithHashMap(int stuno);
/MyBatisProject3/src/org/myy/test/Test.java
// Connection - SqlSession操作Mybatis // conf.xml->reader Reader reader = Resources.getResourceAsReader("conf.xml"); // reader->sqlSession // 可以通過build的第二引數 指定資料庫環境 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader, "development"); SqlSession session = sessionFactory.openSession(); StudentMapper studentMapper = session.getMapper(StudentMapper.class); Student student = studentMapper.qureyStudentByIdWithHashMap(1); System.out.println(student); session.close();
注意:如果n個欄位,發現其中某一個欄位始終為預設值,則可能是表的欄位和類的屬性名字寫錯。