hibernate中表的复合主键映射表

本文介绍如何使用Hibernate框架中的composite-id实现成绩表的增删改查操作,包括保存和更新具体的成绩记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

成绩表Cj:学号和课程号是复合主键

映射文件Cj.hbm.xml:

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.cn">
	<class name="Cj" table="CJ">
		<composite-id >
			<key-property name="xh" column="XH" type="string"/>
			<key-property name="kch" column="KCH" type="string"/>
		</composite-id>
		<property name="cj" column="CJ" type="integer"/>
	</class>
</hibernate-mapping>
这里注意用<composite-id>就行了。
保存对象:

public void saveCj(){
	Transaction ts=session.beginTransaction();		 //定义事务
	Cj cj=new Cj();	      //创建POJO类对象
	cj.setXh("081101");   //设置学号
	cj.setKch("001");     //设置课程号
	cj.setCj(80);         //设置成绩
	session.save(cj);      //保存
	ts.commit();          //提交事务
}
修改对象:

public void updateCj1(){
	Transaction ts=session.beginTransaction();
	//根据学号及课程号查询,注意这里是HQL语句,Cj是类名,xh和kch是类中属性
	//关于HQL会在后面讲解
	Query query=session.createQuery("from Cj where xh='081101' and kch='001'");
	Cj cj=(Cj) query.list().get(0); //得到第一个值
	cj.setCj(92);                   //重新赋值成绩
	session.update(cj);		 //修改
	ts.commit();			 //提交事务
}










评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值