注解实现一对一mysql_MyBatis的一对一关联关系(注解形式)

1、映射接口public interface CardMapper

{

@Select("SELECT * FROM tb_card WHERE ID = #{id} ")

Card selectCardById(Integer id);

}public interface PersonMapper

{

@Select("SELECT * FROM tb_person WHERE ID = #{id}")

@Results(

{ @Result(id = true, column = "id", property = "id"), @Result(column = "name", property = "name"),

@Result(column = "sex", property = "sex"), @Result(column = "age", property = "age"),

@Result(column = "card_id", property = "card", one = @One(select = "cn.mybatis.mydemo4.mapper.CardMapper.selectCardById", fetchType = FetchType.EAGER)) })

Person selectPersonById(Integer id);

}

2、引入映射接口

3、工具类public class MySqlSessionFactory

{

private static SqlSessionFactory sqlSessionFactory = null;

// 初始化创建SqlSessionFactory对象

static

{

try

{

// 读取mybatis-config.xml文件

InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");

sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

}

catch (Exception e)

{

e.printStackTrace();

}

}

// 获取SqlSession对象的静态方法

public static SqlSession getSqlSession()

{

return sqlSessionFactory.openSession();

}

// 获取SqlSessionFactory的静态方法

public static SqlSessionFactory getSqlSessionFactory()

{

return sqlSessionFactory;

}

}

4、测试代码public class App

{

public static void main(String[] args) throws Exception

{

// 获取Session实例

SqlSession session = MySqlSessionFactory.getSqlSession();

// 获取PersonMapper实例

PersonMapper pm = session.getMapper(PersonMapper.class);

// 根据id查询Person对象,同时需要获得关联的Card对象

Person p = pm.selectPersonById(1);

// 查看查询到的Person对象

System.out.println(p);

// 查看查询到的关联的Card对象

System.out.println(p.getCard());

// 提交事务

session.commit();

// 关闭Session

session.close();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值