Hibernate 环境搭建

Hibernate 工作流程

1、创建工程并导包

2、在src根目录下创建配置文件:hibernate.cfg.xml(也可以创建在src其他文件夹下,但是在后面的配置中,需要指明路径)

  

 1 <?xml version=‘1.0‘ encoding=‘utf-8‘?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 5 <hibernate-configuration>
 6 <!-- 是用来描述数据库的连接 -->
 7 <session-factory>
 8     <!-- 驱动 -->
 9     <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
10     <!-- url-->
11     <property name="connection.url">jdbc:mysql://localhost:3306/hibernatetest</property>
12     <!-- username -->
13     <property name="connection.username">root</property>
14     <!-- password -->
15     <property name="connection.password">mysql</property>
16 <!--
17         hibernate针对建表的操作
18           update  如果有表,检查表的结构,如果没有则创建
19           create-drop 启动hibernate创建表,结束hibernate删除表
20           create  每次启动都重新创建表
21           validate 每次启动都检查表的结构
22      -->
23     <property name="hbm2ddl.auto">update</property>
24     <!-- 映射文件 -->
25     <mapping resource="cn/test/domain/Person.hbm.xml"/>
26 </session-factory>
27
28 </hibernate-configuration>

3、创建持久化层(一般实现Serializable 接口,并且要有一个默认构造函数【在后面反射中需要用到,否者会报错】)

 1 package cn.test.domain;
 2
 3 import java.io.Serializable;
 4
 5 public class Person implements Serializable {
 6     private long Pid;
 7     private String Pname;
 8     private String Page;
 9     public long getPid() {
10         return Pid;
11     }
12     public void setPid(long pid) {
13         Pid = pid;
14     }
15     public String getPname() {
16         return Pname;
17     }
18     public void setPname(String pname) {
19         Pname = pname;
20     }
21     public String getPage() {
22         return Page;
23     }
24     public void setPage(String page) {
25         Page = page;
26     }
27 }

4、创建映射文件,一般和持久化层在同一个文件夹下,命名方式一般为:持久化层类名.hbm.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 4 <hibernate-mapping>
 5     <!--
 6         class元素是用来描述持久化类
 7            name属性  类的全名
 8             table 该类对应的表名  可以不写,如果不写默认值就是类名
 9             catalog 数据库的名字  一般不用写
10      -->
11      <class name="cn.test.domain.Person" table="person">
12          <!--
13             主键
14               name描述的是属性的名称
15               column  数据库的字段的名称
16               type    类型
17               length  长度
18          -->
19          <id name="Pid" type="java.lang.Long" length="5">
20              <column name="pid"></column>
21              <!--
22                 主键的产生器
23                     increment 由hibernate产生
24              -->
25              <generator class="increment"></generator>
26          </id>
27
28          <!-- property是用来描述一般属性     -->
29          <property name="Pname" type="java.lang.String" length="5">
30              <column name="Pname"></column>
31          </property>
32          <!-- column可以不写,如果不写,默认属性的名称 -->
33          <property name="Page" type="java.lang.String" length="5"></property>
34      </class>
35 </hibernate-mapping>

4、测试

  

 1 public class MyTest {
 2     private static SessionFactory sessionFactory;
 3     static{
 4         Configuration configuration=new Configuration();
 5         //加载配置文件
 6         configuration.configure();
 7         //采用工厂模式创建SessionFactory
 8          sessionFactory=configuration.buildSessionFactory();
 9     }
10     @Test
11     public void testSave(){
12         Session session=sessionFactory.openSession();
13         //开启事物
14         Transaction transaction=session.beginTransaction();
15         Person person=new Person();
16         person.setPname("张三");
17         person.setPage("56");
18         session.save(person);//保存
19         transaction.commit();//提交事务
20         session.close();
21     }
22
23     @Test
24     public void testUpdate(){
25         Session session=sessionFactory.openSession();
26         Transaction transaction=session.beginTransaction();
27         //方法一:推荐;先获取要更新的对象,再更新
28         Person person=(Person) session.get(Person.class, 1L);//获取原来的值
29         person.setPage("100");
30         session.update(person);//更新
31
32         //方法二:不推荐;创建一个新的对象,覆盖旧的数据
33 //        Person person=new Person();
34 //        person.setPid(1L);
35 //        person.setPage("101");
36 //        session.update(person);
37         transaction.commit();
38         session.close();
39     }
40
41     @Test
42     public void testQuery(){
43         Session session=sessionFactory.openSession();
44         List<Person> list= session.createQuery("from Person").list();
45         System.err.println(list.size());
46     }
47
48     @Test
49     public void testQueryById(){
50         Session session=sessionFactory.openSession();
51         long l=1;
52         Person person= (Person) session.get(Person.class, l);
53         System.err.println(person.getPname()+"**********"+person.getPage());
54     }
55
56     @Test
57     public void testDelete(){
58         Session session=sessionFactory.openSession();
59         Transaction transaction=session.beginTransaction();
60          //方法一:
61 //        Person person= (Person) session.get(Person.class, 1L);
62 //        session.delete(person);
63         //方法二:
64         Person person=new Person();
65         person.setPid(1L);
66         session.delete(person);
67         transaction.commit();
68         session.close();
69     }
时间: 2024-10-29 04:24:02

Hibernate 环境搭建的相关文章

Hibernate学习之——Hibernate环境搭建

之前在写关于安卓闹钟的教程,写了一半就没后一半了,其实自己也没做好,在校外实习,校内毕业实习又有任务,只能先放放了,等毕业实习结束之后,在继续安卓闹钟开发之旅,相信这个时间不会很久的.现在毕业实习用到的SSH框架(Struts+Spring+Hibernate),自己没有多少时间去好好学习,但是还是想把学到的东西记录下来. 一.Hibernate简介 1.什么是Hibernate? Hibernate是数据持久层的一个轻量级框架.数据持久层的框架有很多比如:iBATIS,myBatis,Nhib

hibernate环境搭建及配置文件

首先要下载好hibernate文件包 然后新建项目: 1.导入jar包(打开下载好的文件包,找到lib文件下的required文件包,里面有jar包) 注意:初学者可以暂时copy一下代码. 2.新建一个class文件,内容如下: public class Person { //类的属性 private Integer id; private String name; private String password; private Date birthday; //无参构造函数 public

Hibernate环境搭建超详细

前言 环境搭建其实可以简单到导入相关jar包即可. 但是对于学习来说,这个环境搭建的内容还是挺多的,目的是提供一个让我们如何快速学习和掌握类库的学习环境.作为程序猿,学习和使用类库是必须掌握的技能.如何快速的学习和使用类库,这里有很多经验和技巧.比方说参照官方文档中教程.api.在ide中加入如javadoc支持等等. 官方文档是我们学习一个类库中最重要的手段和途径,书籍.博客教程的作者都是根据官方文档来学习这些类库的.官方文档提供了最新的.系统的.最准确的学习资料.虽然这些文档有很多都是英文的

Hibernate环境搭建+struts整合

说明:本文档,是和struts2+hibernate的整合示例. lib下还有struts2的jar包,本示例没有显示.struts2的搭建参考struts2的环境搭建 一下载hibernate的jar包,并将相关jar包导入的项目web-inf的lib下 二:配置hibernate.cfg.xml文档 1 <!DOCTYPE hibernate-configuration PUBLIC 2 "-//Hibernate/Hibernate Configuration DTD 3.0//EN

hibernate环境搭建

持久化概念: 持久化就是把数据(如内存中的对象)同步保存到数据库或某些存储设备中(如磁盘文件中.XML数据文件中)等等. 在软件的分层体系结构中,持久化层是与数据库打交道的逻辑层. JDBC-的问题: 代码繁琐: 一个插入对象的例子 public void addAccount(final Account account) throws DAOException,AccountAlreadyExistException{ final Connection conn=getConnection()

springmvc+spring-data-jpa+hibernate环境搭建与配置

1.JPA诞生的缘由是为了整合第三方ORM框架,建立一种标准的方式,百度百科说是JDK为了实现ORM的天下归一,目前也是在按照这个方向发展,但是还没能完全实现.在ORM框架中,Hibernate是一支很大的部队,使用很广泛,也很方便,能力也很强,同时Hibernate也是和JPA整合的比较良好,我们可以认为JPA是标准,事实上也是,JPA几乎都是接口,实现都是Hibernate在做,宏观上面看,在JPA的统一之下Hibernate很良好的运行. 2.使用springmvc+spring-data

Spring+Springmvc+Hibernate环境搭建与配置

这里给出JavaWeb项目Spring+Springmvc+Hibernate框架环境的搭建与配置,方便以后快速创建项目.下面是以本人的一个项目为例给出的配置,不同项目具体的结构都是可以按一下结构完成的,至于配置内容则需要按照具体的项目需求更改部分内容.需要注意的是,本项目是以使用注解为前提完成的项目. 一.项目目录 首先说明一下,本项目是maven项目,采用Spring+Springmvc+Hibernate的框架,前端模板引擎采用thymeleaf,html代码存放在下面结构的templat

spring+hibernate环境搭建

整体项目结构如图: src各个包是按照springMVC建立包格式建立的,如下图: entity层的代码:有Book.java 和 Account.java package com.elgin.spring.hibernate.entity; public class Book { private int id; private String bookName; private String isbn; private float price; private int stock; public

Struts2+Spring+Hibernate环境搭建

struts-2.3.20 spring-4.1.4 hibernate-4.3.8 slf4j-1.7.10 1.在MySQL中建立数据库 mysql> create database myoa default character set utf8 2.在MyEclipse中建立Web Project 在项目上右键-Properties,设置编码为UTF-8. 3.配置Struts2 拷贝jar包(依照示例,另aopalliance.jar). 在web.xml中写入Struts Filter