1.这里面我想先说一下session对象的创建,这个是我们操纵数据库的核心对象,因此首先我们应该获取相应的session对象。

public static Configuration cfg;
public static SessionFactory factory;
public static Session session = null;
static {
//用来读取hibernate.cfg.xml的配置文件
cfg = new Configuration().configure();
//获取工厂
factory = cfg.buildSessionFactory();
//创建对应的session对象
session = factory.openSession();
}

强调一下,这里之所以都用static可以确保我们只生成一个session,而不会出现重复调用的情况。

2.接着就进行了保存操作,试下了数据对象的保存

public static void insertStudentSelection(String studentID,String teacherID){
session.beginTransaction();// 开启事务
Studentselection st=new Studentselection(studentID,teacherID);
session.save(st);
session.getTransaction().commit(); //提交事务之后才能保证数据保存成功
session.close();
}

这里的开启事务是必须的,应为如果我们没有开启事务和保存事务的话,我们对应的数据库保存操作就会失败,同时建立的session也应当在使用完成之后关闭,否则长期使用下去的话会造成连接池溢出等一系列问题,hibernate没有想jdbc一样有自动提交事务的功能,因此我们必须要进行手动的开启和提交。

3.在进行对象提交的时候我出现了一个问题,就是Duplicate entry 'abc' for key 'PRIMARY'错误,这个原因在与我插入的数据的主键与数据库存在的数据重复,因此数据库拒绝插入,下次遇到了就要注意。

4.同是我还对数据库进行查询操作

public static boolean select(Student stu) {
session.beginTransaction();// 开启事务
Criteria cre = session.createCriteria(Student.class);
cre.add(Expression.eq("studentId", stu.getStudentId()));
cre.add(Expression.eq("password", stu.getPassword()));
List<Student> student = cre.list();
if (session.isOpen()) {//关闭事务
session.close();
}
// List<Student> student = session.createCriteria(Student.class).add(
// Example.create(stu)).list();
for (Student stu1 : student) {
System.out.println(stu1);
}
//当发现集合为空的时候则证明为查询到相应的数据
if (student.isEmpty()) {
return false;
} else {
return true;
} }

通过list集合我可以获取返回相应的对象集合,通过foreach语句进行迭代遍历。

Hibernate简单的保存操作的更多相关文章

  1. 【SSH三大框架】Hibernate基础第五篇:利用Hibernate完毕简单的CRUD操作

    这里利用Hibernate操作数据库完毕简单的CRUD操作. 首先,我们须要先写一个javabean: package cn.itcast.domain; import java.util.Date; ...

  2. 菜鸟学习Hibernate——简单的增、删、改、查操作

    上篇博客利用Hibernate搭建起一个简单的例子,把数据库的映射显示了出来在上一篇的博客基础上这篇博客讲述如何利用Hinbernate框架实现简单的数据库操作. 1.加入junit.jar 2.新建 ...

  3. 新秀学习Hibernate——简单的增加、删、更改、检查操作

    部分博客使用Hibernate单的样例,把数据库的映射显示了出来在上一篇的博客基础上这篇博客讲述怎样利用Hinbernate框架实现简单的数据库操作. 1.增加junit.jar 2.新建一个工具类H ...

  4. 基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作

    在前面介绍了很多篇相关的<Bootstrap开发框架>的系列文章,这些内容基本上覆盖到了我这个Bootstrap框架的各个主要方面的内容,总体来说基本达到了一个稳定的状态,随着时间的推移可 ...

  5. 使用Python对Excel表格进行简单的读写操作(xlrd/xlwt)

    算是一个小技巧吧,只是进行一些简单的读写操作.让人不爽的是xlrd和xlwt是相对独立的,两个模块的对象不能通用,读写无法连贯操作,只能单独读.单独写,尚不知道如何解决. #①xlrd(读) #cod ...

  6. Hibernate(八)__级联操作、struts+hibernate+接口编程架构

    级联操作 所谓级联操作就是说,当你进行主对象某个操作时,从对象hibernate自动完成相应操作. 比如: Department <---->Student 对象关系,我希望当我删除一个d ...

  7. Hibernate 一对多 保存和修改数据

    Student和Sclass表,Student外键cid是Sclass的cid create table sclass( cid ) primary key, cname ) )go create t ...

  8. 8天掌握EF的Code First开发系列之2 简单的CRUD操作

    本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 本人的实验环境 ...

  9. Python用Pillow(PIL)进行简单的图像操作

    Python用Pillow(PIL)进行简单的图像操作 颜色与RGBA值 计算机通常将图像表示为RGB值,或者再加上alpha值(通透度,透明度),称为RGBA值.在Pillow中,RGBA的值表示为 ...

随机推荐

  1. EntityFramework 一

    EntityFramework EF核心库 EntityFramework.SqlServer EF针对sqlsever的库 引用 system.Data.Entity   EF相比SQL语句方便,但 ...

  2. css——overflow

    Overflow:属性规定当前内容溢出元素框时发生的事情 1.当内容过多,元素框溢出 1)hidden:隐藏超出部分(overflow: hidden;) 2)auto:有下拉滚动条(overflow ...

  3. Jetty初探

    一.在jetty中部署web应用 Jetty 和 Tomcat 一样都是一个web server的container, 用户可以在里面 deploy 自己的 war 包,然后启动 Jetty, 进而通 ...

  4. ResNet入门

    CNN入门讲解:什么是残差网络Resnet 变种神经网络的典型代表:深度残差网络 深度残差神经网络ResNet 学习笔记 https://blog.csdn.net/loveliuzz/article ...

  5. THINKPHP实现搜索分页保留搜索条件

    使用tp自带的分页类时,里面自带了POST查询条件保留机制,但是之针对于普通的map一维数组,如果包含like,gt等等比较复杂的查询条件则力不从心了. 带入查询条件 如果是POST方式查询,如何确保 ...

  6. Android UI布局之TableLayout

    从字面上了解TableLayout是一种表格式的布局.这样的布局会把包括的元素以行和列的形式进行排列.表格的列数为每一行的最大列数.当然表格里边的单元格是能够为空的. 实例:LayoutDemo 执行 ...

  7. App 签名过期或泄露怎么办?别担心,Google 已经给出解决方案!

    一.序 在将 App 发布到市场之前,很重要的一个步骤就是为 APK 进行签名,大部分时候,这个操作隐藏在了打包的流程中,而不被我们注意到. 签名的作用,除了证明 App 的所有权之外,还可以帮助 A ...

  8. m_Orchestrate learning system---十七、页面美观的关键是什么

    m_Orchestrate learning system---十七.页面美观的关键是什么 一.总结 一句话总结:图片用好看的 1.项目板块化? 就是一个个模块,能复用的话很快的 页面由这一个个模块拼 ...

  9. ES业界优秀实践案例汇总

    ES业界优秀案例汇总 携程 LinkedIn Etsy国外电商CPU(vCore) 70*32 1000*12 4200单日索引数据条数 600亿 500亿 100亿单核处理数据性能/天 2600万/ ...

  10. Another app is currently holding the yum lock; waiting for it to exit…

    yum被锁定无法使用,错误信息截图如下:解决方法:rm -rf /var/run/yum.pid 来强行解除锁定,然后你的yum就可以运行了