Hibernate框架的搭建和一个简单的实例

Hibernate是一个支持对JDBC进行封装的框架,实现了对底层数据库访问的封装。非常适合使用和开发。首先需要下载Hibernate,可以在这个网站下载最新包。http://www.hibernate.org/然后打开他的目录结构,将lib目录下的required目录下的包全部导入到工程中去,这个是hibernate运行所必须的最少的包。然后写一个Bean,将需要储存到数据库中的变量封装成Bean。为了让Hibernate识别这个bean,需要一个配置文件,这里起名叫User.hbm.xml。先看一下User的代码和User.hbm.xml的代码

package com.bird.domain;import java.util.Date;public class User {private int id;private String name;private Date birthday;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}}
<?xml version="1.0" ?>  
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">  
<hibernate-mapping package="com.bird.domain">  <class name="User">  <id name="id">  <generator class="native"/>  </id>  <property name="name"/>  <property name="birthday"/>  </class>  </hibernate-mapping>  

然后需要一个Hibernate的配置文件,这个文件的例子可以再Hibenate解压目录的project里面的ect目录里面找到。更加详细的配置选项和要求可以参考hibernate.properties.template这个文件.

<?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.driver_class">com.mysql.jdbc.Driver</property>  <property name="hibernate.connection.url">jdbc:mysql:///test</property>  <property name="hibernate.connection.username">root</property>  <property name="hibernate.connection.password">mysql</property>  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>  <property name="hibernate.hbm2ddl.auto">update</property>  <mapping resource="com/bird/domain/User.hbm.xml"/>  </session-factory>  
</hibernate-configuration>  

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>这句话的意思是指定你使用的数据库的方言.

<property name="hibernate.hbm2ddl.auto">update</property>这句话的意思是自动创建或者更改数据库里面的表或者表的内容结构

<mapping resource="com/bird/domain/User.hbm.xml"/>这句话的意思是要求装载这个类映射文件

下面就可以运行这个了,记住,别忘了导入Mysql的Connection的Jar包。

package com.bird.hibernate.test;  import java.util.Date;  import org.hibernate.Session;  
import org.hibernate.SessionFactory;  
import org.hibernate.Transaction;  
import org.hibernate.cfg.Configuration;  import com.bird.domain.User;  public class Base {  /** * @param args */  public static void main(String[] args) {  Configuration cfg = new Configuration();  cfg.configure();  @SuppressWarnings("deprecation")  SessionFactory sf = cfg.buildSessionFactory();  Session s = sf.openSession();  Transaction tx = s.beginTransaction();  User use = new User();  use.setBirthday(new Date());  use.setName("bird");  s.save(use);  tx.commit();  s.close();  }  }  

运行结果如下

2012-2-28 12:12:38 org.hibernate.annotations.common.Version <clinit>  
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}  
2012-2-28 12:12:38 org.hibernate.Version logVersion  
INFO: HHH000412: Hibernate Core {4.0.1.Final}  
2012-2-28 12:12:38 org.hibernate.cfg.Environment <clinit>  
INFO: HHH000206: hibernate.properties not found  
2012-2-28 12:12:38 org.hibernate.cfg.Environment buildBytecodeProvider  
INFO: HHH000021: Bytecode provider name : javassist  
2012-2-28 12:12:38 org.hibernate.cfg.Configuration configure  
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml  
2012-2-28 12:12:38 org.hibernate.cfg.Configuration getConfigurationInputStream  
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml  
2012-2-28 12:12:38 org.hibernate.cfg.Configuration addResource  
INFO: HHH000221: Reading mappings from resource: com/bird/domain/User.hbm.xml  
2012-2-28 12:12:38 org.hibernate.cfg.Configuration doConfigure  
INFO: HHH000041: Configured SessionFactory: null  
2012-2-28 12:12:38 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure  
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)  
2012-2-28 12:12:38 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure  
INFO: HHH000115: Hibernate connection pool size: 20  
2012-2-28 12:12:38 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure  
INFO: HHH000006: Autocommit mode: false  
2012-2-28 12:12:38 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure  
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql:///test]  
2012-2-28 12:12:38 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure  
INFO: HHH000046: Connection properties: {user=root, password=****}  
2012-2-28 12:12:39 org.hibernate.dialect.Dialect <init>  
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect  
2012-2-28 12:12:39 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService  
INFO: HHH000399: Using default transaction strategy (direct JDBC transactions)  
2012-2-28 12:12:39 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>  
INFO: HHH000397: Using ASTQueryTranslatorFactory  
2012-2-28 12:12:39 org.hibernate.tool.hbm2ddl.SchemaUpdate execute  
INFO: HHH000228: Running hbm2ddl schema update  
2012-2-28 12:12:39 org.hibernate.tool.hbm2ddl.SchemaUpdate execute  
INFO: HHH000102: Fetching database metadata  
2012-2-28 12:12:39 org.hibernate.tool.hbm2ddl.SchemaUpdate execute  
INFO: HHH000396: Updating schema  
2012-2-28 12:12:39 org.hibernate.tool.hbm2ddl.TableMetadata <init>  
INFO: HHH000261: Table found: test.user  
2012-2-28 12:12:39 org.hibernate.tool.hbm2ddl.TableMetadata <init>  
INFO: HHH000037: Columns: [id, birthday, name]  
2012-2-28 12:12:39 org.hibernate.tool.hbm2ddl.TableMetadata <init>  
INFO: HHH000108: Foreign keys: []  
2012-2-28 12:12:39 org.hibernate.tool.hbm2ddl.TableMetadata <init>  
INFO: HHH000126: Indexes: [primary]  
2012-2-28 12:12:39 org.hibernate.tool.hbm2ddl.SchemaUpdate execute  
INFO: HHH000232: Schema update complete  

这样就可以了

转载于:https://www.cnblogs.com/lc1776/p/9083357.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366941.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Amazon EMR上运行Hadoop MapReduce作业

不久前&#xff0c;我发布了如何使用CLI设置EMR群集的信息。 在本文中&#xff0c;我将展示如何使用适用于AWS的Java SDK来设置集群。 展示如何使用Java AWS开发工具包执行此操作的最佳方法是展示完整的示例&#xff0c;因此&#xff0c;让我们开始吧。 设置一个新的Maven项目…

在商城系统开发时遇到商品的多级分类,为增强扩展性,子类可以任意添加,此类问题数据库如何设计...

表结构为&#xff1a; id&#xff08;编号&#xff09; name&#xff08;分类名&#xff09; parentID&#xff08;父类编号&#xff09; 简单举例如下&#xff1a; id name parentID 1 饮料 0&#xff08;为0表示第一大类&#xff09; 2 水果 …

[JSConf EU 2018] 大脑控制 Javascript

先解释&#xff0c;本人为前端菜鸟&#xff0c;之前也未参加过类似的活动&#xff0c;没有翻译过什么文章&#xff0c;此次是好奇心使然&#xff0c;也是想尝试下&#xff0c;学习学习&#xff0c;英文很烂&#xff0c;全靠有道&#xff0c;但是视频整个看下来&#xff0c;还是…

init tarray 太大_[NOIP 2001提高组T4]Car的旅行路线

[题目来源]&#xff1a;NOIP2001提高组T4[关键字]&#xff1a;最短路径[题目大意]&#xff1a;给定平面直角若干个矩形&#xff0c;计算(可经过其他矩形)两个矩形任意顶点间的最短路程费用。//[分析]&#xff1a;其实题目本事没有太大的难点&#xff0c;只需要对每两个点进行连…

Caffe Caffe2入门博客存档

caffe2 教程入门&#xff08;python版&#xff09; https://www.jianshu.com/p/5c0fd1c9fef9?fromtimeline caffe入门学习 https://blog.csdn.net/hjimce/article/details/48933813 运行caffe自带的两个简单例子 https://www.linuxidc.com/Linux/2016-11/136774p9.htm 关于caf…

JavaScript中不得不说的断言?

断言主要应用于“调试”与“测试” 一、前端中的断言 仔细地查找一下JavaScript中的API&#xff0c;实际上并没有多少关于断言的方法。唯一一个就是console.assert&#xff1a; // console.assert(condition, message)const a 1console.assert(typeof a number, a should be…

Java EE状态会话Bean(EJB)示例

在本文中&#xff0c;我们将了解如何在简单的Web应用程序中使用状态会话Bean来跟踪客户端会话中的状态。 1.简介 有状态会话Bean通常保存有关特定客户端会话的信息&#xff0c;并在整个会话中保留该信息&#xff08;与无状态会话Bean相对&#xff09;。 有状态EJB实例仅与一个…

计算机科学速成课16:软件工程

概念&#xff1a;建造标准或者大型软件的方法和工具代码打包成函数 面向过程函数打包成对象 面向对象对象层层打包Car.Engine.CruiseControl.SetCruiseSpeed(55)应用程序接口api集成开发环境IDE&#xff1a;code&#xff0c;整理&#xff0c;编译&#xff0c;测试注释和readme文…

牛客网NOIP赛前集训营-提高组(第六场)B-选择题[背包]

题意 题目链接 分析 直接背包之后可以 \(O(n)\) 去除一个物品的影响。注意特判 \([p1]\) 的情况。总时间复杂度为 \(O(n^2)\) 。代码 #include<bits/stdc.h> using namespace std; #define go(u) for(int ihead[u],ve[i].to;i;ie[i].last,ve[i].to) #define rep(i,a,b) f…

起点海外版 Hybrid App-内嵌页优化实践

本文作者&#xff1a;刘文涛 原创声明&#xff1a;本文为阅文前端团队 YFE 成员出品&#xff0c;请尊重原创&#xff0c;转载请联系公众号 (id: yuewen_YFE) 获取授权&#xff0c;并注明作者、出处和链接。 今年年初我司开启了起点品牌的海外之旅&#xff0c;名为「 Webnovel 」…

aix 卸载mysql_AIX 删除数据库及集群软件

一、 删除数据库1、用dbca自动删库在CRT上无法打开dbca图形界面&#xff0c;要安装一个Xmanage软件&#xff0c;用Xstart连接终端&#xff0c;并修改oracle用户的.profile&#xff0c;加上“export DISPLAY192.168.8.120:0.0”Xstart配置信息如下&#xff1a;2、手工删除数据库…

简单轻量级池实现

对象池是包含指定数量的对象的容器。 从池中获取对象时&#xff0c;在将对象放回之前&#xff0c;该对象在池中不可用。 池中的对象具有生命周期&#xff1a;创建&#xff0c;验证&#xff0c;销毁等。池有助于更好地管理可用资源。 有许多使用示例。 特别是在应用程序服务器中…

如何在github中的readme.md加入项目截图

1. 先在之前的本地项目文件夹里创建一个存放截图的文件夹。&#xff08;如img文件夹&#xff09; 2. 将新增的内容通过github desktop上传到github中 3. 在github中立马能看到刚刚上传的图片&#xff0c;打开图片&#xff0c;点击Download 4. 直接复制地址栏的网址 5. 最后在RE…

记表格设计规范整理与页面可视化生成工具开发

前言 公司有一个项目在维护&#xff0c;大概有300左右&#xff0c;其中表单与表格的页面占比大概百分之五六十&#xff0c;为了节省开发时间&#xff0c;避免多人协作时&#xff0c;出现多套冗余代码&#xff0c;我们尝试写了一下表单和表格的生成工具&#xff0c;从梳理到规范…

java仿qq空间音乐播放_完美实现仿QQ空间评论回复特效

评论回复是个很常见的东西&#xff0c;但是各大网站实现的方式却不尽相同。大体上有两种方式1.像优酷这种最常见&#xff0c;在输入框中要回复的人&#xff0c;这种方式下&#xff0c;用www.cppcns.com户可以修改。新浪微博则是在这个基础上&#xff0c;弹出好友菜单。这种方式…

使用签名保护基于HTTP的API

我在EMC上的一个平台上可以构建SaaS解决方案。 与越来越多的其他应用程序一样&#xff0c;该平台具有基于RESTful HTTP的API。 使用像JAX-RS这样的开发框架&#xff0c;构建这样的API相对容易。 但是&#xff0c; 正确构建它们并不容易。 建立基于HTTP的API的问题 问题不仅…

Python开发【模块】:Celery 分布式异步消息任务队列

前言&#xff1a; Celery 是一个 基于python开发的分布式异步消息任务队列&#xff0c;通过它可以轻松的实现任务的异步处理&#xff0c; 如果你的业务场景中需要用到异步任务&#xff0c;就可以考虑使用celery&#xff0c; 举几个实例场景中可用的例子: 你想对100台机器执行一…

iOS开发者的一些前端感悟

很多前端工程师会把自己比作“魔法师”&#xff0c;而对于JavaScript这门语言&#xff0c;我也想把它唤作一门“有魔力的语言”。因为这群有无限想法的人&#xff0c;真的在用它创造各种让你惊叹的事物。 Web三件套一、前言 几年前&#xff0c;笔者还是一名初涉编程的学生&…

windows下github 出现Permission denied (publickey)

github教科书传送门:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 再学习到"添加远程仓库"的时候遇到了 Permission denied (publickey) 这个问题&#xff0c; 总结来说以前的步骤如下所示&#xff1a; 1、git config --glo…

php如何逐条读取数据库,php从数据库中读取特定的行(实例)

有的时候我们需要从数据库中读取特定的数据&#xff0c;来检验用户的输入&#xff0c;这个时候需要执行的sql语句是&#xff1a;select * from table_name where idnum;需要执行这样的一个语句。那么怎样来执行这样的语句。为了执行sql语句&#xff0c;我们需要和数据库相连接$…