吉林省天正科技骗局:Hibernate学习笔记
来源:百度文库 编辑:偶看新闻 时间:2024/05/03 15:53:30
目前spring+hibernate+struts是JSP开发比较热门的搭配啦,今天熟悉了Hibernate顺便做个记录,算个学习文档.
环境Eclipse(3.2)+myEclipse(6.0)+Hibernate(3.1)
新建立Web Project text.
添加Hibernate
添加数据库映射
插入数据
session = HibernateSessionFactory.getSession();
Admin admin = new Admin();
admin.setName("test");
admin.setPassword("test");
Transaction tx = session.beginTransaction();
session.save(admin);
session.flush();
tx.commit();
HibernateSessionFactory.closeSession();
更新数据(选择更新)
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
String hqlUpdate = "update Admin c set c.password = :newPassword where c.id = :id";
int updateEntities = session.createQuery(hqlUpdate)
.setString("newPassword", "gooogle")
.setLong("id", 2)
.executeUpdate()
;
tx.commit();
HibernateSessionFactory.closeSession();
删除数据
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
Admin setAdmin = new Admin();
setAdmin.setId(3);
session.delete(setAdmin);
tx.commit();
session.close();
读取数据(根据ID)
Admin admin = new Admin();
admin.setId(2);
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
admin = (Admin) session.get(Admin.class, admin.getId());
tx.commit();
session.close();
out.println(admin.getPassword());
读取数据(List)
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
List aList = session.createCriteria(Admin.class).addOrder(Order.desc("id")).list();
tx.commit();
session.close();
Iterator getIterator = aList.iterator();
while(getIterator.hasNext())
{
Admin av = (Admin) getIterator.next();
out.println(av.getName());
out.println("------");
out.println(av.getPassword());
out.println("
");
}
读取数据(Limit)
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
List aList = session.createCriteria(Admin.class).addOrder(Order.desc("id")).setFirstResult(2).setMaxResults(3).list();
tx.commit();
session.close();
Iterator getIterator = aList.iterator();
while(getIterator.hasNext())
{
Admin av = (Admin) getIterator.next();
out.println(av.getName());
out.println("------");
out.println(av.getPassword());
out.println("
");
}
基本的几种形态操作明白的差不多了.
唯一的要注意的一点就是关于PostgreSQL的使用bigserial做自增型的序列会导致Hibernate无法插入数据,报告一个异常错误为:could not get next sequence value
我在pgAdmin在数据库状态的时候运行了这么一条错误的语句 realtion "hibernate_sequence" does not exist select nextval("hibernate_sequence")
玩过PostgreSQL都知道 select nextval("hibernate_sequence") 是获取一个序列值下一个值.但是跟本没有这个序列名字.当然是错误的插入不进去..最后查阅手册里面发现可以在属性文件可以添加.就是那个你的表的映射的xml(xxx.hbm.xml)文件可以添加的
admin_id_seq
这样OK插入没问题!
环境Eclipse(3.2)+myEclipse(6.0)+Hibernate(3.1)
新建立Web Project text.
添加Hibernate
添加数据库映射
插入数据
session = HibernateSessionFactory.getSession();
Admin admin = new Admin();
admin.setName("test");
admin.setPassword("test");
Transaction tx = session.beginTransaction();
session.save(admin);
session.flush();
tx.commit();
HibernateSessionFactory.closeSession();
更新数据(选择更新)
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
String hqlUpdate = "update Admin c set c.password = :newPassword where c.id = :id";
int updateEntities = session.createQuery(hqlUpdate)
.setString("newPassword", "gooogle")
.setLong("id", 2)
.executeUpdate()
;
tx.commit();
HibernateSessionFactory.closeSession();
删除数据
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
Admin setAdmin = new Admin();
setAdmin.setId(3);
session.delete(setAdmin);
tx.commit();
session.close();
读取数据(根据ID)
Admin admin = new Admin();
admin.setId(2);
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
admin = (Admin) session.get(Admin.class, admin.getId());
tx.commit();
session.close();
out.println(admin.getPassword());
读取数据(List)
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
List aList = session.createCriteria(Admin.class).addOrder(Order.desc("id")).list();
tx.commit();
session.close();
Iterator getIterator = aList.iterator();
while(getIterator.hasNext())
{
Admin av = (Admin) getIterator.next();
out.println(av.getName());
out.println("------");
out.println(av.getPassword());
out.println("
");
}
读取数据(Limit)
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
List aList = session.createCriteria(Admin.class).addOrder(Order.desc("id")).setFirstResult(2).setMaxResults(3).list();
tx.commit();
session.close();
Iterator getIterator = aList.iterator();
while(getIterator.hasNext())
{
Admin av = (Admin) getIterator.next();
out.println(av.getName());
out.println("------");
out.println(av.getPassword());
out.println("
");
}
基本的几种形态操作明白的差不多了.
唯一的要注意的一点就是关于PostgreSQL的使用bigserial做自增型的序列会导致Hibernate无法插入数据,报告一个异常错误为:could not get next sequence value
我在pgAdmin在数据库状态的时候运行了这么一条错误的语句 realtion "hibernate_sequence" does not exist select nextval("hibernate_sequence")
玩过PostgreSQL都知道 select nextval("hibernate_sequence") 是获取一个序列值下一个值.但是跟本没有这个序列名字.当然是错误的插入不进去..最后查阅手册里面发现可以在属性文件可以添加.就是那个你的表的映射的xml(xxx.hbm.xml)文件可以添加的
admin_id_seq
这样OK插入没问题!
关于hibernate学习与找工作
hibernate
O/RMapping和Hibernate学习
如何学习开源的Hibernate
学习Hibernate之前 必须掌握什么知识
如何做学习笔记
司法鉴定学习笔记范文
学习型班组学习笔记
hibernate和EJB的学习是否可以相互替代?
Struts、Spring和Hibernate的学习该如何安排?
查找先进性教育的学习笔记
牛津9A学习笔记
PRO-E的学习笔记
怎么写团章学习笔记?
求一学习笔记软件
哪里有英语学习笔记?
PRO-E的学习笔记
高中怎样做学习笔记
求中级物流师的学习笔记
有机化学学习笔记 这本书有吗?
学习JSP中的EJB、Hibernate、Spring三者该选哪个比较好?
java, jsp, struts, weblogic ,Hibernate, j2ee ,xml,等等,学习的最好顺序是什么
hibernate 问题
hibernate 异常