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语句进行迭代遍历。

最新文章

  1. HBASE列族不能太多的真相 (一个table有几个列族就有几个 Store)
  2. 应用EF访问SQLite数据
  3. swat主流域文件(file.cio)参数详解——引自http://blog.sciencenet.cn/blog-922140-710636.html
  4. 使用C/C++发展Web系统开源
  5. 图片处理中的Dithering技术
  6. Unity 继承MonoBehaviour脚本 执行顺序 详解
  7. iOS cocos2d游戏引擎的了解之一
  8. Spring事件和监听器
  9. sudo命令
  10. listview添加数据
  11. Android学习之基础知识十—内容提供器(Content Provider)
  12. python---redis在windows安装以及测试
  13. 2012 - AD GC全局编录服务器(Global Catalog)
  14. mysql windows安装资源
  15. HDU 1811 Rank of Tetris(并查集+拓扑排序 非常经典)
  16. 硬盘分区表知识—详解硬盘MBR
  17. 【BZOJ4774/4006】修路/[JLOI2015]管道连接 斯坦纳树
  18. Python3:pyecharts数据可视化插件
  19. CentOS6.5(4)----宿主机无法访问虚拟机中的web服务解决方案
  20. OpenStack之Keystone模块

热门文章

  1. Pyhton二级操作题练习
  2. win10x64位系统中nodejs的安装和配置
  3. WePy--记录使用过程中的一些坑
  4. linux 源码包安装拾遗
  5. java实现组合数_n!_杨辉三角_组合数递推公式_回文数_汉诺塔问题
  6. 2015 Multi-University Training Contest 7 hdu 5372 Segment Game
  7. ASP.NET-dropdownlist默认值
  8. 洛谷 P3047 [USACO12FEB]附近的牛Nearby Cows
  9. Spring中 @Autowired标签与 @Resource标签 的区别(转)
  10. 走进windows编程的世界-----入门篇