初步认识,只是简单的按照说明文档做了增删改查的Junit测试。
1.首先初始化一个Hibernate的sessionfactory,
private static SessionFactory hibernateSesseionFactory = createHiSessionFactory();
//private static int count = 0;
//单例模式
private HibernateUtil(){
}
public synchronized static SessionFactory getHibernateSessionInstance(){
if(hibernateSesseionFactory == null){
hibernateSesseionFactory = createHiSessionFactory();
}
return hibernateSesseionFactory;
}
@SuppressWarnings("deprecation")
public static SessionFactory createHiSessionFactory(){
SessionFactory sessionFactory = null;
try {
sessionFactory = new Configuration().configure().buildSessionFactory();
//System.out.println("第 " + count + " 个");
} catch (Exception e) {
System.out.println("create hibernate session failed:" + e.getMessage());
}
return sessionFactory;
}
2.创建相应的javabean,数据实体,使用注解的方案执行
@Entity
@Table(name="user")
public class User implements Serializable{
private static final long serialVersionUID = 3517536107453191566L;
private int userId;
private String userName;
private int age;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return this.getUserId() + "--" + this.getUserName() + "--" + this.getAge();
}
}
创建测试类:
private static SessionFactory sessionFactory = HibernateUtil.getHibernateSessionInstance();
@Ignore
@Test
public void testCreate(){
//Session session = sessionFactory.getCurrentSession();
Session session = sessionFactory.openSession();
String name = "test";
Long start = System.currentTimeMillis();
for(int i = 0; i < 1000; i++){
String userName = name + i;
int age = 20;
session.beginTransaction();
User user = new User();
user.setAge(age);
user.setUserName(userName);
session.save(user);
session.getTransaction().commit();
}
System.out.println(System.currentTimeMillis() - start);
session.close();
}
/**
* 查所有
*/
@Ignore
@Test
public void testQuery(){
Session session = sessionFactory.openSession(); //use getCurrentSession will encounter exception: createSQLQuery is not valid without active transaction
//session.getTransaction().begin();
List<Object> list = session.createQuery("from User where id < 100").list();
for(int i = 0; i < list.size(); i++){
User user = (User) list.get(i);
System.out.println(user.getUserName());
}
//session.getTransaction().commit();
session.close();
}
//hibernate的连表查询,在取数据表名的应避开mysql数据库中的关键名称
@Test
public void testQueryCondition2(){
Session session = sessionFactory.openSession();
String hql = "select users.userId, users.userName, users.age, orders.orderInfo, orders.ordersId from User users left join Orders orders on orders.userId = users.userId where users.userName = :userName";
Query query = session.createSQLQuery(hql);
query.setString("userName", "test6");
List<Object> list = query.list();
for(int i = 0; i < list.size(); i++){
Object user = list.get(i);
System.out.println(user.toString());
}
}
//条件查询
@Test
public void testConditionQuery(){
Session session = sessionFactory.openSession();
//Criteria query = sesson.createCriteria(User.class).add(Restrictions.eq("userName", "test1"));
Criteria query = session.createCriteria(User.class)
//.add(Restrictions.like("userName", "%t1%"))
.add(Restrictions.ilike("userName", "%update%"))
.addOrder(Order.desc("userId"));
List<User> list = query.list();
session.getTransaction().begin();
//获取符合条件的记录的主键
for(int i = 0; i < list.size(); i++){
int count = 1;
User user = list.get(i);
//session.delete(user); //delete object
user.setUserName("update name" + i); //重置属性值
session.update(user); //更新属性值
count++;
System.out.println(user.toString());
}
session.getTransaction().commit();
}
//------------------------多对一表关系-------------------------//
@Ignore
@Test
public void testOrder(){
Session session = sessionFactory.getCurrentSession();
Date date = new Date();
try {
for(int i = 1; i < 11; i++){
for(int j = 0; j < 2; j++){
if(i > 0){
session = sessionFactory.openSession();
}
session.getTransaction().begin();
Orders order = new Orders();
order.setUserId(i);
//order.setOrdersId((sdf.format(date)));
order.setOrdersId("ORDERID" + i + j);
order.setOrderInfo("this is orders from Amazon");
System.out.println(order.toString());
session.save(order);
session.getTransaction().commit();
//Thread.sleep(200000);
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
session.close();
}
}
hibernate.cfg.xml中配置隐射实体
最后就可以通过简单的java代码来对数据库进行增删改查的操作
分享到:
相关推荐
基于Hibernate的简单留言本是一个基本的Web应用程序,它使用Hibernate作为数据持久化层,用户可以通过该系统进行留言、查看留言以及回复等操作。这个系统展示了如何在实际项目中应用Hibernate来管理数据库交互。 ...
**hibernate简单的入门案例** Hibernate 是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中操作数据库的强大工具。这个入门案例将带你了解如何使用Hibernate进行基本的操作,包括配置、...
**Hibernate简介** Hibernate是一个强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得...`testHiberbateJava`项目就是一个很好的学习资源,通过实际操作,你可以更深入地理解Hibernate的CRUD操作。
【Hibernate 简单 PPT 总结】 Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作。通过提供一套API和元数据,Hibernate允许开发者将业务对象直接映射到数据库表,从而避免了...
这个“hibernate_first”压缩包提供了一个适合初学者的简单实例,帮助理解Hibernate的基础用法。以下是关于Hibernate入门的一些关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库中的表映射为Java类的过程,...
这个“Hibernate简单的demo”涵盖了Hibernate的基础用法,包括配置、实体映射、Session和Transaction的使用,以及基本的CRUD操作。对于初学者来说,通过这个demo可以了解到Hibernate的核心概念和基本操作,为进一步...
在本文中,我们将深入探讨如何在MyEclipse中配置并使用Hibernate进行数据库操作。Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者通过Java对象来操作数据库,避免了直接编写SQL语句的繁琐过程。 首先...
总的来说,"student+hibernate简单项目(表无关联)"是一个基础的Java Web开发项目,通过Struts2处理用户请求,利用Hibernate操作数据库,最终在MySQL中存储和检索数据。这个项目对于初学者来说,是学习和理解三大...
总结来说,"一个Hibernate的简单实例"是Java开发者学习Hibernate框架的起点,它涵盖了从配置文件设置到实体类设计,再到数据库操作的基本步骤。通过这个实例,你可以深入理解Hibernate如何将Java对象和数据库表进行...
通过深入学习和实践这个入门案例,你将能够熟练掌握Hibernate的基本操作,为进一步学习更复杂的数据库操作和高级特性打下坚实基础。记得在实践中不断尝试和调试,以便更好地理解和掌握Hibernate的精髓。
【标题】"最简单的Hibernate工程"揭示了这个项目的核心是介绍和实现了一个基本的Hibernate框架应用。Hibernate,作为Java领域中的一个流行ORM(对象关系映射)工具,它允许开发者用面向对象的方式来处理数据库,从而...
这个类展示了如何使用Hibernate的简单操作,如`get()`, `add()`, `del()`, 和 `update()`方法,这些方法调用了基类的抽象方法,进一步简化了DAO层的实现。 在Hibernate中,对象的状态分为瞬时状态、持久状态和脱管...
本项目是一个专门为初学者设计的hibernate简单工程示例,旨在帮助初学者快速理解并掌握Hibernate的基本用法。 **1. Hibernate简介** Hibernate是Java领域的一个对象关系映射(ORM)框架,它通过提供一种对象化的...
在“hibernate简易网上银行”项目中,我们利用Hibernate技术来构建一个简单但功能完整的网上银行系统。这个系统能够帮助用户进行基本的银行交易操作,如存款、取款、转账等,同时实现数据持久化,确保信息的安全存储...
在本教程中,我们将深入探讨Hibernate的基本概念、配置以及如何在实际项目中进行简单使用。 一、Hibernate概述 Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发人员将Java对象模型与关系型数据库进行...
【hibernate3 最简单实现项目】 在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本项目基于Hibernate3,将介绍如何实现最简单的查询功能,并且提供了必要的jar包以供...
综上所述,"hibernate最简单源代码"示例将涵盖以上关键概念,帮助初学者了解如何使用Hibernate框架进行数据库操作。通过阅读和实践这些源代码,你可以更好地理解Hibernate的工作原理,为实际项目开发打下坚实的基础...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库操作。在Java编程环境中,Hibernate 提供了一种桥梁,将复杂的SQL语句与Java对象之间进行解耦,使得开发者可以更专注于...
在本"struts2+hibernate简单例子"中,我们将学习以下关键知识点: 1. **Struts2配置**:首先,我们需要配置Struts2的核心文件`struts.xml`,定义Action类、结果类型以及拦截器栈。这包括设置包、添加Action元素,...
Hibernate是一个开源的对象关系映射(ORM)框架,它封装了JDBC(Java Database Connectivity)的复杂性,并允许Java开发者以面向对象的方式操作数据库。Hibernate框架被广泛应用于企业级Java应用程序中,可以与...