ResultMap:用于类的属性和表的列名不一样时返回结果属性为空,通过ResultMap来定义类的属性和表的类的映射关系,就可以解决属性名和列值不同的问题
StudentDao接口:
package com.bjpowernode.dao;
import com.bjpowernode.domain.Student;
import com.bjpowernode.vo.CustomObject;
import com.bjpowernode.vo.QueryParama;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface StudentDao {
//查询学生
Student selectById(Integer id);
//定义方法,查询结果是一个自定义类型对象CustomObject
CustomObject selectById2(@Param("stuid") Integer id);
//查询数目,查询结果是Long类型
long countStudnet();
//查询结果返回是一个Map
Map
StudentDao.xml:
ProvinceDao接口:
package com.bjpowernode.dao;
import com.bjpowernode.vo.ProvinceCity;
import java.util.List;
public interface ProvinceDao {
List selectProvinceCityLis(Integer provinceId);
}
ProvinceDao.xml:
select p.id ,p.name,c.id cid,c.name cname FROM province p INNER JOIN city c ON p.id=c.provinceid WHERe p.id=#{pid}
CustomObject类:
package com.bjpowernode.vo;
public class CustomObject {
private Integer cid;
private String cname;
private String email;
private Integer age;
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getName() {
return cname;
}
public void setName(String name) {
this.cname = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "CustomObject{" +
"cid=" + cid +
", cname='" + cname + ''' +
", email='" + email + ''' +
", age=" + age +
'}';
}
}
ProvinceCity类:
package com.bjpowernode.vo;
public class ProvinceCity {
private Integer id;
private String name;
private Integer cid;
private String cname;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
@Override
public String toString() {
return "ProvinceCity{" +
"id=" + id +
", name='" + name + ''' +
", cid=" + cid +
", cname='" + cname + ''' +
'}';
}
}
QueryParama类:
package com.bjpowernode.vo;
public class QueryParama {
private Object p1;
private Object p2;
public Object getP1() {
return p1;
}
public void setP1(Object p1) {
this.p1 = p1;
}
public Object getP2() {
return p2;
}
public void setP2(Object p2) {
this.p2 = p2;
}
}
主配置文件 myBatis.xml
MyTest:
package com.bjpowernode;
import com.bjpowernode.dao.ProvinceDao;
import com.bjpowernode.dao.StudentDao;
import com.bjpowernode.domain.Student;
import com.bjpowernode.utils.MybatisUtil;
import com.bjpowernode.vo.CustomObject;
import com.bjpowernode.vo.ProvinceCity;
import com.bjpowernode.vo.QueryParama;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MyTest {
//查询测试
@Test
public void testSelectById(){
//获取SqlSession
SqlSession session= MybatisUtil.getSqlSession();
//获取dao代理
StudentDao dao=session.getMapper(StudentDao.class);
//调用方法
Student student=dao.selectById(1005);
System.out.println("student="+student);
//4.关闭SqlSession对象
session.close();
}
//自定义对象进行查询id
@Test
public void testSelectById2(){
//获取SqlSession
SqlSession session= MybatisUtil.getSqlSession();
//获取dao代理
StudentDao dao=session.getMapper(StudentDao.class);
//调用方法
CustomObject co =dao.selectById2(1001);
System.out.println("CustomObject="+co);
//4.关闭SqlSession对象
session.close();
}
//返回记录数
@Test
public void testCountStudent(){
//获取SqlSession
SqlSession session= MybatisUtil.getSqlSession();
//获取dao代理
StudentDao dao=session.getMapper(StudentDao.class);
//调用方法
Long nums=dao.countStudnet();
System.out.println("nums="+nums);
//4.关闭SqlSession对象
session.close();
}
//返回Map集合
@Test
public void testSelectMap(){
//获取SqlSession
SqlSession session= MybatisUtil.getSqlSession();
//获取dao代理
StudentDao dao=session.getMapper(StudentDao.class);
//调用方法
Map
第一个测试结果:
2.
3.
4.
5.



