SQLXML file
<?XML version= "1.0" encoding= "UTF-8"?><!DOCTYPE Mapper Public "-//mybatis.org//dtd mapper 3.0//en" "Http://mybatis.org/dtd/mybatis-3-mapper.dtd "><Mappernamespace= "Classstudent"> <!--1. Table Query select * FROM class C, teacher t where c.t_id = t.t_id and c.c_id=1 - <SelectID= "GetClass"ParameterType= "int"Resultmap= "Getclassmap">SELECT * from Class C, student s where c.c_id = s.c_id and c.c_id = #{id}</Select> <Resultmaptype= "Com.stone.bean.ClassT"ID= "Getclassmap"> <ID Property= "id"column= "c_id" /> <result Property= "Name"column= "C_name" /> <Collection Property= "List"OfType= "Com.stone.bean.Student"> <ID Property= "id"column= "s_id" /> <result Property= "Name"column= "S_name" /> </Collection> </Resultmap> <!--2. Query two times select * from class where c_id = 1; SELECT * from teacher where t_id = 1 - <SelectID= "GetClass2"Resultmap= "Getclass2map">SELECT * from class where c_id =#{id}</Select> <SelectID= "Getteacher"ParameterType= "int"Resulttype= "Com.stone.bean.Teacher">Select t_id id,t_name name from teacher where T_id=#{id}</Select> <SelectID= "Getstudents"ParameterType= "int"Resulttype= "Com.stone.bean.Student">Select s_id id,s_name name from student where C_id=#{id}</Select> <Resultmaptype= "Com.stone.bean.ClassT"ID= "Getclass2map"> <ID Property= "id"column= "c_id" /> <result Property= "Name"column= "C_name" /> <Association Property= "Teacher"column= "t_id"Select= "Getteacher"> </Association> <Collection Property= "List"column= "c_id"Select= "Getstudents"></Collection> </Resultmap></Mapper>
JavaBean
PackageCom.stone.bean;Importjava.util.List; Public classClasst {Private intID; PrivateString name; PrivateTeacher Teacher; PrivateList<student>list; PublicCLASST (intID, String name, Teacher Teacher) { Super(); This. ID =ID; This. Name =name; This. Teacher =teacher; } Publicclasst () {Super(); } Public intgetId () {returnID; } Public voidSetId (intID) { This. ID =ID; } PublicString GetName () {returnname; } Public voidsetName (String name) { This. Name =name; } PublicTeacher Getteacher () {returnteacher; } Public voidSetteacher (Teacher Teacher) { This. Teacher =teacher; } @Override PublicString toString () {return"Classt [id=" + ID + ", name=" + name + ", teacher=" +Teacher+ ", list=" + list + "]"; } PublicList<student>getList () {returnlist; } Public voidSetlist (list<student>list) { This. List =list; } }
PackageCom.stone.bean; Public classStudent {Private intID; PrivateString name; PublicStudent (intID, String name) { Super(); This. ID =ID; This. Name =name; } PublicStudent () {Super(); } Public intgetId () {returnID; } Public voidSetId (intID) { This. ID =ID; } PublicString GetName () {returnname; } Public voidsetName (String name) { This. Name =name; } @Override PublicString toString () {return"Student [id=" + ID + ", name=" + name + "]"; } }
PackageCom.stone.bean; Public classTeacher {Private intID; PrivateString name; PublicTeacher (intID, String name) { Super(); This. ID =ID; This. Name =name; } PublicTeacher () {Super(); } Public intgetId () {returnID; } Public voidSetId (intID) { This. ID =ID; } PublicString GetName () {returnname; } Public voidsetName (String name) { This. Name =name; } @Override PublicString toString () {return"Teacher [id=" + ID + ", name=" + name + "]"; } }
Test
PackageCom.stone.dao;Importorg.apache.ibatis.session.SqlSession;ImportCom.stone.bean.ClassT;Importcom.stone.db.DBAccess; Public classdbdaoclassstudent { Public Static voidMain (string[] args) {DBAccess DBAccess=NewDBAccess (); Sqlsession sqlsession=NULL; Try{sqlsession=dbaccess.getsqlsession (); String Statement= "Classstudent.getclass"; Object parameter= 1; //Execute SQL statements via sqlsession;Classt Class1 =sqlsession.selectone (statement, parameter); System.out.println (Class1); System.out.println ("======================="); Statement= "Classstudent.getclass2"; Classt Class2=sqlsession.selectone (statement, parameter); System.out.println (Class2); } Catch(Exception e) {e.printstacktrace (); } finally { if(Sqlsession! =NULL) {sqlsession.close (); } } }}
MyBatis a one-to-many correlation query