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(j2ee)能用,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("999@qq.com");
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的基本配置和测试就完成了

Java-hibernate的Hello World的更多相关文章

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

    hibernate 简介:hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库.hibernate核心接口 ...

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

    hibernate 简介:hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库.hibernate核心接口 ...

  3. Java Hibernate 之 Session 状态

    Session接口是Hibernate向程序提供操纵数据库的最主要接口,是单线程对象,它提供了基本的保存.更新.删除和查询方法.它有一个缓存,保存了持久化对象,当清理缓存时,按照这些持久化对象同步更新 ...

  4. java Hibernate 处理 oracle xmltype类型

    网上关于如何处理oracle xmltype类型的博客很多,我现在分享的是针对具体业务来的,我在oracle数据库entity表中detail插入了一条xmltype类型的数据 xml的详细内容如下: ...

  5. Java Hibernate中的悲观锁和乐观锁的实现

    锁(locking) 业务逻辑的实现过程中,往往需要保证数据访问的排他性.如在金融系统的日终结算 处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中 (可能是几秒种, ...

  6. java+hibernate+mysql

    实体类News package org.mythsky.hibernatedemo; import javax.persistence.*; @Entity @Table(name="new ...

  7. java Hibernate UUID代码

    package mypack; import java.io.Serializable; import java.net.InetAddress; /** * 唯一主键生成办法.从Hibernate中 ...

  8. Java Hibernate 5.3.x

    SchemeExport Hibernate根据实体类和实体类映射文件自动生成表结构. 示例代码: <?xml version='1.0' encoding='utf-8'?> <! ...

  9. java Hibernate 用法

    Hibernate 用法总结: import java.io.Serializable; import java.sql.SQLException; import java.util.Collecti ...

  10. [Java] Hibernate

    背景 持久化技术框架 封装了JDBC做数据库相关功能开发的重复性工作 比如创建连接,关闭连接,把字段逐一映射到属性中等 使用 在数据库中创建表 创建java project 导入hibernate依赖 ...

随机推荐

  1. Python之re模块

    参考:http://www.cnblogs.com/PythonHome/archive/2011/11/19/2255459.html 这个模块提供了与 Perl 相似l的正则表达式匹配操作.Uni ...

  2. C++ Prime:指针和const

    与引用一样,也可以令指针指向常量或非常量,类似于常量引用,指向常量的指针不能用于改变其所指对象的值.要想存放常量对象的地址,只能使用指向常量的指针: const double pi = 3.14; / ...

  3. 字符串匹配的KMP算法(转)

    转载:http://kb.cnblogs.com/page/176818/ 字符串匹配是计算机的基本任务之一. 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE&quo ...

  4. bzoj2257

    不难发现其实这个捣鼓过程就是一个辗转相减所以最小燃料是瓶容量的最小公约数然后穷举约数即可 ..] of longint; n,k,x,i,m,j,t:longint; procedure sort(l ...

  5. BZOJ_1798_&_Codevs_2216_[AHOI_2009]_行星序列_(线段树)

    描述 BZOJ: http://www.lydsy.com/JudgeOnline/problem.php?id=1798 Codevs: http://codevs.cn/problem/2216/ ...

  6. [ZOJ 3631] Watashi's BG

    Watashi's BG Time Limit: 3 Seconds      Memory Limit: 65536 KB Watashi is the couch of ZJU-ICPC Team ...

  7. HDOJ -- 4632 区间DP

    Palindrome subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65535 K (Java/ ...

  8. 论SOA架构的几种主要开发方式【转】

           面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使用.服务层是SOA的基础,可以直接被应用调用,从而有效控制系 ...

  9. java常用重构优化总结--自己亲身体验

    代码重构  6大原则:    单一职责原则(一个类最好最好只有一种行为动机,太多承担职责会导致耦合度太高).    开放封闭原则(功能可以扩展,但是不可以内部修改).    依赖倒转原则(应该依赖抽象 ...

  10. Bootstrap+MetroNic_1.5.4 Head meta

    Bootstrap+MetroNic_1.5.4 HTML <meta> 标签设定含义: <meta http-equiv="X-UA-Compatible" c ...