Hibernate_4.2.4_Helloword
来源:互联网 发布:mac 简体双拼输入法 编辑:程序博客网 时间:2024/05/21 00:48
这是基于Hibernate4.2.4的Helloword基本例子,使用Jdk1.8+eclipse+Hibernate插件
1.使用eclipse创建一个简单的Java项目:
2.创建lin包
导入hibernate-release-4.2.4.Final\lib\required里面的全部的jar包。
3.在src目录下面创建hibernate.cfg.xml文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!-- 配置连接数据库的基本信息 --> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mvc</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- Hibernate的基本信息 --> <!-- Hibernate使用的方言 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 是否在控制台打印sql --> <property name="hibernate.show_sql">true</property> <!-- 是否格式化sql --> <property name="hibernate.format_sql">true</property> <!-- 自动生成数据表的策略 --> <!-- create:会根据.hbm.xml文件生成新的数据表,每次都会删除上一次的表,重新生成表 create-drop:会根据.hbm.xml文件生成新的数据表,但SessionFactory一关闭,表就自动删除 update:最常用的属性,会根据.hbm.xml文件生成新的数据表,若.hbm.xml文件和数据表中对应的数据表结构不不同,Hibernate会更新数据表结构,但不会删除已经有的列和行 validate:会和数据表进行比较,若.hbm.xml文件中的列在数据表中不存在,则抛出异常 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 指定映射的 .hbm.xml 文件 --> <mapping resource="Hibernate_010/News.hbm.xml" /> </session-factory></hibernate-configuration>
4.创建实体类 src/Hibernate_010/New.java
package Hibernate_010;import java.util.Date;public class News { private Integer id; private String title; private String content; private Date time; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public Date getTime() { return time; } public void setTime(Date time) { this.time = time; } public News() { } public News(String title, String content, Date time) { super(); this.title = title; this.content = content; this.time = time; } @Override public String toString() { return "News [id=" + id + ", title=" + title + ", content=" + content + ", time=" + time + "]"; }}
5.创建News实体类的映射文件News.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 2017-3-3 20:55:52 by Hibernate Tools 3.5.0.Final --><hibernate-mapping> <class name="Hibernate_010.News" table="NEWS" > <id name="id" type="java.lang.Integer"> <column name="ID" /> <!-- 制定主键生成方式:native 使用数据库底层的生成方式 --> <generator class="native" /> </id> <property name="title" type="java.lang.String"> <column name="TITLE" /> </property> <property name="content" type="java.lang.String"> <column name="CONTENT" /> </property> <property name="time" type="java.util.Date"> <column name="TIME" /> </property> </class></hibernate-mapping>
6.加入Junit4 创建Test/Test_010.java
package Test;import java.util.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.After;import org.junit.Before;import org.junit.Test;import Hibernate_010.News;public class Test_010 { //在生产环境中,session和Transaction不能作为成员变量,有并发的危险 //Session的工厂 一个应用只初始化一个SessionFactory资源 //session 是单线程对象是Hibernate的运作中心 //相当于JDBC里面的Connection private SessionFactory sessionFactory ; private Session session; private Transaction transaction; @Before public void init() { System.out.println("----------init-------------"); //加载Hibernate配置文件 对应hibernate.cfg.xml Configuration configuration = new Configuration().configure(); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()) .buildServiceRegistry(); // 4.0之前的创建方式 // sessionFactory = configuration.buildSessionFactory(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); session = sessionFactory.openSession(); // 开启事务 所有持久层应该在事务管理下进行 //commit 提交相关联的session实例 //rollback 撤销事务操作 //wasCommitted 检查事务是否提交 transaction = session.beginTransaction(); } @Test public void insertTest() { System.out.println("----------insertTest-------------"); News news = new News("新闻", "内容", new Date()); //保存到session session.save(news); //session查询ID=1 //News n = (News) session.get(News.class, 1); //System.out.println(n); } @After public void destroy(){ System.out.println("----------destroy-------------"); //事务提交 transaction.commit(); //关闭session session.close(); //关闭sessionFactory sessionFactory.close(); }}
7.到了现在,Hibernate的基本环境已经配置完成了。
1 0
- Hibernate_4.2.4_Helloword
- hibernate_4
- Hibernate_4.3.5_001_XML_HelloWorld
- Hibernate入门01_HelloWord
- 【Lucene3.6.2入门系列】第01节_HelloWord
- 【Lucene3.6.2入门系列】第01节_HelloWord
- Hibernate中Java对象的三种状态以及之间的转换 ----Hibernate_4
- 2.4
- 2.4
- 2.4
- 2.4
- 2.4
- 2.4
- 2.4
- 2.4
- HexAssistant 2.4
- 2.4 反义
- 2.4 网上银行
- beetl渲染Bootstrap Paginator实现过程
- 图形学基础(2)——蒙特卡洛方法概述
- Hibernate映射一对多
- 分布式系列文章——Paxos算法原理与推导
- Java并发编程实战 笔记(一) 简介
- Hibernate_4.2.4_Helloword
- 泰课在线逃离地球
- 清除drupal缓存cache 查看twig主题覆写文件 的方法
- java 实现http POST请求
- 用mount挂载远程服务器网络硬盘
- Java多线程浅析
- HDU 1789 Doing Homework again【贪心】
- 测试Protobuffer的定义格式对其时间和空间的影响
- 如何理解指向指针的指针?