Java-hibernate的Hello World

 hibernate 是对jdbc进行轻量级封装的  orm 框架,充当项目的持久层.

要使用 hibernate首先就需要继续配置,

引包:下载hibernate然后加入jar包

同时引入mysql的jar包

<1> 首先,手动去创建一张测试用的表,这里数据库选择mysql

CREATE TABLE `employee` (
`id` int(10) NOT NULL auto_increment,
`name` varchar(20) NOT NULL,
`email` varchar(20) NOT NULL,
`hiredate` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1;

然后去手动录入数据

<2>创建我们的domain对象

建一个包,名为com.sun.domain,在包下建立一个java文件名为:Employee.java

这里面装的都是表里面的所有的字段

package com.sun.domain;

public class Employee {
	private static final long serialVersionUID = 1L;

	private Integer id;
	private String name;
	private String email;
	private java.util.Date hiredate;

	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public java.util.Date getHiredate() {
		return hiredate;
	}
	public void setHiredate(java.util.Date hiredate) {
		this.hiredate = hiredate;
	}

}

  <3>在com.sun.domain下创建对象和表的映射关系Employee.hbm.xml

<property></property> 标签下name是domain对象的属性名,<column/>是和该对像属性名相对应的表的字段名
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
	<hibernate-mapping package="com.sun.domain">
		<class name="Employee" table="employee" >
		  <id name="id" type="java.lang.Integer">
		 	<generator class="increment"></generator>
		  </id>

		  <property name="name" type="java.lang.String">
		  <column name="name" not-null="true"/>
		  </property>

		  <property name="email" type="java.lang.String">
		  <column name="email" not-null="true"/>
		  </property>

		  <property name="hiredate" type="java.util.Date">
		  <column name="hiredate" not-null="true"/>
		  </property>
		</class>
	</hibernate-mapping>

  <4>手动配置我们的hibernate.cfg.xml文件,该文件用于配置 连接的数据库的类型,driver, 对象关系映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>                <!--数据库的连接-->
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://127.0.0.1:3306/test</property>
                <!--数据库的用户名和密码-->
                <property name="connection.username">root</property>                 <property name="connection.password">123456</property>
		<property name="show_sql">true</property>
		<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
		<mapping resource="com/sun/domain/Employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>

  <5>写一个手动测试文件,因为hibernate是一个数据库持久层框架,所以,不至于web能用,se也能有使用,这里就用se进行测试

创建一个包com.sun.seriver,在下面创建一个文件Student.java

package com.sun.seriver;

import java.util.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.sun.domain.Employee;

public class Student {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Student.delEmpoyee();  //删除
//		Student.upEmpoyee();//更新
//		Student.selectEmpoyee();//查询
//		Student.addEmpoyee();//添加

	}
	private static void delEmpoyee() {
		Configuration cfg=new Configuration();
		SessionFactory sf = cfg.configure("hibernate.cfg.xml").buildSessionFactory();
		Session session = sf.openSession();
		Transaction ts=session.beginTransaction();
		Employee emp=(Employee) session.load(Employee.class, 2);
		session.delete(emp);
		ts.commit();
	}
	private static void upEmpoyee() {
		Configuration cfg=new Configuration();
		SessionFactory sf = cfg.configure("hibernate.cfg.xml").buildSessionFactory();
		Session session = sf.openSession();
		Transaction ts= session.beginTransaction();
		Employee emp=(Employee)session.load(Employee.class, 1);
		emp.setName("usagi");
		ts.commit();

	}
	//SQL SELECT
	private static void selectEmpoyee() {
		Configuration cfg=new Configuration();
		SessionFactory sf = cfg.configure("hibernate.cfg.xml").buildSessionFactory();
		Session session = sf.openSession();
		Employee emp=(Employee) session.load(Employee.class, 2);
		System.out.println(emp.getId()+" "+emp.getName()+" "+emp.getEmail());
		session.close();
	}

	//INSERT SELECT
	private static void addEmpoyee() {
		Employee s = new Employee();
		s.setName("sunzhiyan");
		s.setEmail("[email protected]");
		s.setHiredate(new Date());

		System.out.println("test is ok");
		Configuration cfg=new Configuration();
		SessionFactory sf = cfg.configure("hibernate.cfg.xml").buildSessionFactory();
		Session session = sf.openSession();
		session.beginTransaction();
		session.save(s);
		session.getTransaction().commit();
		session.close();
		sf.close();
	}

}

  这样,基本的hibernate的基本配置和测试就完成了

时间: 2024-11-05 19:32:31

Java-hibernate的Hello World的相关文章

java,hibernate和sql server对应的数据类型(zz)

转自:http://blog.csdn.net/moonsheep_liu/article/details/6049195java,hibernate和sql server对应的数据类型(zz),布布扣,bubuko.com

Java:hibernate入门(一)

一Java三层结构 1 web层:struts框架 2 service层:Spring框架 3  dao层 :hibernate框架 相当于MVC的思想 1 M:模型èhibernate框架 2 V:视图èstruts框架 3 C:控制器èSpring框架 1:Hibernate是对JDBC进一步封装 不需要复杂的jdbc代码,不需要写sql语句也能实现 没有使用hibernate如下: Jdbc: public static final String URL="jdbc:mysql://loc

JAVA Hibernate工作原理及为什么要用

hibernate 简介:hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库.hibernate核心接口session:负责被持久化对象CRUD操作sessionFactory:负责初始化hibernate,创建session对象configuration:负责配置并启动hibernate,创建SessionFactoryTransaction:负责事物相关的操作Query和Criteria接口:负责

[Java]Hibernate所需要的jar包和作用释义

hibernate 需要的jar包 1)hibernate3.jar: Hibernate的核心库,没有什么可说的,必须使用的jar包 2)cglib-asm.jar: CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包 3)dom4j.jar: dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源代  

java hibernate关联查询返回一个集合,转换成json报json死循环处理

public String user(HttpServletRequest request) {        // 集合先过滤对,只取想要的对象        JsonConfig config = new JsonConfig();        config.setJsonPropertyFilter(new PropertyFilter() {            public boolean apply(Object arg0, String arg1, Object arg2) {

Java Hibernate 之 Session 状态

Session接口是Hibernate向程序提供操纵数据库的最主要接口,是单线程对象,它提供了基本的保存.更新.删除和查询方法.它有一个缓存,保存了持久化对象,当清理缓存时,按照这些持久化对象同步更新数据库. 注意:session的某些方法(persist,load)不会立即把改动写入数据库,而是缓存到session的一级缓存中,除非显示调用flush,或者关闭session时才会更新到数据库 临时状态(Transient):没与session关联 持久化状态(Persistent):与sess

JAVA Hibernate工作原理及为什么要用(转)

hibernate 简介:hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库.hibernate核心接口session:负责被持久化对象CRUD操作sessionFactory:负责初始化hibernate,创建session对象configuration:负责配置并启动hibernate,创建SessionFactoryTransaction:负责事物相关的操作Query和Criteria接口:负责

java hibernate sql

Hibernate真是垃圾! 如果开发者自己利用反射 通过SQL语句返回 实体对象也不会做的这么垃圾. createSQLQuery(sql).addEntity(Entity.getClass) sql在数据库查询分析器中正常运行,要想在Hibernate中正常执行还要好多东西要做.(垃圾中的战斗机!) where条件中的字段必须 在select中出现. 无奈目前有一些公司用Hibernate,框架写好不对应不行啊.

java hibernate 调用oracle存储过程

1.hibernate 调用存储过程 各种方法 http://www.cnblogs.com/jerryxing/archive/2012/04/28/2475762.html 如果底层数据库(如Oracle)支持存储过程,也可以通过存储过程来执行批量更新.存储过程直接在数据库中运行,速度更加快.在Oracle数据库中可以定义一个名为batchUpdateStudent()的存储过程,代码如下: create or replace procedure batchUpdateStudent(p_a

Java Hibernate 主键生成10大策略

本文将介绍Hibernate中主键生成的几种策略方案,有需要的朋友可以参考一下. 1.自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识 使用SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段,要设定sequence(MySQL 和 SQL Server 中很常用) 数据库中的语法如下: MySQL:create table t_u