紧接着昨天的继续做删除,修改操作。
修改学生属性
//修改学生信息
@Test
public void updateStudent()
{
Grade g=new Grade("java二班","java软件开发二班");
Session session=HibernateUtil.getSession();
Transaction tx=session.beginTransaction();
Student stu = (Student)session.get(Student.class, 1);
g.getStudents().add(stu);
session.save(g);
tx.commit();
HibernateUtil.closeSession(session);
}
删除学生信息
//删除学生信息
@Test
public void deleteStudent()
{
Session session =HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
Student stu=(Student)session.get(Student.class, 2);
session.delete(stu);
tx.commit();
HibernateUtil.closeSession(session);
}
set元素的常用属性
单向多对一关联
多对一的关系数据库中的外间参照关系最匹配,即在乙方的表中的一个外键参照另一个表的主键。
实现方法:
通过在多方持有一方的引用实现,需要在“多”的一端使用<many-to-one>配置(在映射文件中添加)
然后再多的多方中添加一方的属性
双向关联关系
但是最下面多了俩条update语句,这是由于班级在处理一对多的关联关系二产生的,但是这是完全没有必要的,因为在Insert语句中已经进行了关联关系,这样是非常影响性能的,而为了处理这个问题,我们用inverse属性来去掉这俩句话。
inverse属性
<!-- 配置单向的一对多关联关系,设置inverse属性为true,由多方维护关联关系-->
<set name="students" table="STUDENT" inverse="true">
<!-- 指定关联的外键列 -->
<key column="gid"></key>
<one-to-many class="hibernate.Student"/>
</set>
运行结果发现最后的update语句不再执行。但是这样还有一个问题,班级与学生设置了关联关系,班级知道有哪些学生,那么当我们保存班级的时候,班级就理应把班级中的学生自动保存到数据库当中进行一个级联的关系,但是在这并没有,而是我们需要手动的进行保存学生,这就需要我们进行一个级联的配置
cascade属性
我们在grade.hbm.xml文件中配置cascade属性如下所示:
<!-- 配置单向的一对多关联关系,设置inverse属性为true,由多方维护关联关系,当进行保存和更新时级联操作所关联的对象-->
<set name="students" table="STUDENT" inverse="true" cascade="save-update">
<!-- 指定关联的外键列 -->
<key column="gid"></key>
<one-to-many class="hibernate.Student"/>
</set>
然后在测试文件中删除session.save(学生对象)的操作,发现运行后自动进行了级联关联保存操作,学生信息保存到了数据库中。
如何在eclipse for jave中添加数据库连接,如图所示点击右上角+图标,选择Database Development点击OK进入Date Source Explorer视图
右击DatabaseConnections -->new(新建数据连接)-->Mysql选择next
然后点击右上角的+如图所示选择好数据库驱动包,配置好连接的数据库与数据库密码,点击Test Connection进行连接测试,显示测试通过,点击Ok点击finish:
此时连接建立完毕出现如图所示画面,右击想查询的表Data-->Sample Contents即可查看数据库数据,表示与数据库连接成功即可进行hibernate的逆向工程:
在项目中导入hibernate的核心jar包以及hibernate注解与实体jar包
windows-->show view-->other
选择Hibernate Configurations,如图所示,在空白处右击,选择add Configuration
project:就是你要逆向工程的项目
DataBase Connection 之前配置的连接的数据库
Configuration file 生成的hibernate核心配置文件
然后点击apply ---Ok即可
然后转向Exporter
然后点击apply--->Run即可生成反向映射