mybatis05-1对1关联查询简单例子

设置映射文件

<select id="getUsersFull" parameterType="int" resultMap="UserResultmap">
		select * from user,information where user.informationid=information.id and
		user.id = #{id}
</select>
<resultMap type="bean.User" id="UserResultmap">
		<id property="id" column="id" />
		<result property="name" column="name" />
		<result property="pass" column="pass" />
		<association property="info" javaType="bean.Information">
			<id property="id" column="id" />
			<result property="userid" column="user_id" />
			<result property="qqnum" column="qq_num" />
			<result property="phonenum" column="phone_num" />
		</association>
</resultMap>
  • 也就是先用sql进行关联表查询,再用 resultmap进行 返回结果的封装。

这个表查询的是 user 以及其关联的信息,所以,user 的bean中要有一个字段来存储 information

package bean;



public class User{

	private String id;
	private String name;
	private String pass;
	private Information info;
	public User(String id, String name, String pass) {
		super();
		this.id = id;
		this.name = name;
		this.pass = pass;
	}
	
	public Information getInfo() {
		return info;
	}

	public void setInfo(Information info) {
		this.info = info;
	}

	public User() {
		super();
	}

	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPass() {
		return pass;
	}
	public void setPass(String pass) {
		this.pass = pass;
	}
	

	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", pass=" + pass + ", info=" + info + ", toString()="
				+ super.toString() + "]";
	}
	
}

调用

static String resource = "config.xml";

	@Test
	public void test() {
		Reader reader = null;
		try {
			reader = Resources.getResourceAsReader(resource);
		} catch (IOException e) {

			e.printStackTrace();
		}
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
		SqlSession session = sessionFactory.openSession();
	    User user = session.selectOne("test.getUsersFull",1);
	    System.out.println(user);
	    session.close();
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值