hibernate入门的第一个例子
来源:互联网 发布:网络爬虫书籍推荐 编辑:程序博客网 时间:2024/04/30 14:20
1、关于Hibernate
Hibernate:将对关系数据库的操作转换为面向对象的ORM框架。
ORM技术就是关系数据库的操作和面向对象操作相互转换的一种技术。
2、创建一个Hibernate的Java应用实例步骤:(有以下6个步骤)
(1)加载hibernate.jar包以及lib中为hibernate提供支持的jar包
(2)加载JDBC驱动包
(3)创建User类,包括三个属性:id(唯一标识),name(姓名),birthday(日期)
(4)为User类配置映射文件
(5)配置Hibernate的默认配置文件hibernate.cfg.xml
(6)编写主程序代码进行验证。
3、下面对上面的每一个步骤进行详细说明:
准备工作:在MySQL下创建数据库,数据库名为:bookdb. 即在MySQL命令行窗口中输入命令:
create database bookdb;
即可创建数据库bookdb。
(1) 加载hibernate.jar包以及lib中为hibernate提供支持的jar包。
做这一步的准备工作:百度下载hibernate3.2.0. 下载下来的文件夹hibernate3.2.0有文档:doc、配置文件:etc、例子程序:eg、jar包目录:lib等文件夹,还有hibernate3.jar驱动包,这个驱动包比较重要。
即在MyEclipse下新建java project,例如:工程名为hibernate。选中工程名,点击鼠标右键-->选择Properties-->选择Java Build Path-->Libraries-->Add External JARs导入文件夹hibernate3.2.0下lib下的所有jar包,然后-->Add External JARs-->导入文件夹hibernate3.2.0下的hibernate3.jar。
(2)加载JDBC驱动包
即下载连接MySQL的驱动jar包:mysql-connector-java-5.1.10-bin.jar。这里我的MySQL版本是5.1.55. MySQL驱动jar包和MySQL版本号前两个数字对应即可。 注:如何查看MySQL的版本?答:打开MySQL Command Line Client-->输入:select version();即可。
(3)创建User类,包括三个属性:id(唯一标识),name(姓名),birthday(日期)
即在源程序src下创建User类,包名为:com.hibernate.domain。以下为User类的源程序:
package com.hibernate.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; } }
(4)为User类配置映射文件
以下为User.hbm.xml映射文件的xml代码:(注:User.hbm.xml文件也放在包com.hibernate.domain中)
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.hibernate.domain"><class name="User"><id name="id"><generator class="native"/></id><property name="name"/><property name="birthday"/></class></hibernate-mapping>
注:标签hibernate-mapping的package属性指明User类所在的包名。 标签class的属性name为User的类名。 id唯一、自动增1,有两个属性,name为数据库中的字段名,分别为name和birthday。
(5)配置Hibernate的默认配置文件hibernate.cfg.xml
以下为hibernate.cfg.xml的xml代码,可参考目录hibernate-3.2\etc下的hibernate.properties配置文件:(注hibernate.cfg.xml文件存放在源程序src文件下)
<!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> <!-- 连接数据库的URL --> <!--property name="connection.url"> jdbc:mysql://localhost:3306/bookdb </property--> <!-- 以下省略localhost、端口号和上面的效果一样 --> <property name="connection.url"> jdbc:mysql:///bookdb </property> <!-- 连接数据库的用户名 --> <property name="connection.username"> root </property> <!-- 连接数据库的密码 --> <property name="connection.password"> 123 </property> <!-- 指定数据库方言 --> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <!-- 控制台显示SQL语句 --> <property name="show_sql"> true </property> <!-- 根据需要自动创建数据表 --> <!-- 不新建表也不删除表,只更新表中的数据 ,如下:--> <property name="hbm2ddl.auto">update</property> <!-- 在应用运行以前创建一张表,在应用运行之后把表删除,推荐在测试中使用,如下: --> <!--property name="hbm2ddl.auto">create-drop</property--> <!-- 在应用运行以前创建一张表,但是在应用运行之后不会把表删除,推荐在测试中使用 ,如下 --> <!--property name="hbm2ddl.auto">create</property--> <!-- 罗列所有的映射文件 --> <mapping resource="com/hibernate/domain/User.hbm.xml"/></session-factory></hibernate-configuration>
(6)编写主程序代码进行验证。
在源程序src下新建Base类,包名为:com.hibernate。主程序Base类的代码如下所示:
package com.hibernate;import java.util.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import com.hibernate.domain.User;public class Base {/** * @param args */public static void main(String[] args) {//初始化,目的是为了获得SesionFactory对象Configuration c=new Configuration();c.configure();//用SesionFactory工厂生产session,而且SesionFactory对应jdbc连接数据库时的DriverManager//session对应jdbc连接数据库时的ConnectionSessionFactory sf=c.buildSessionFactory();Session s=sf.openSession();//hibernate需要手动提交事务Transaction t=s.beginTransaction();User u=new User();u.setName("fangjing");u.setBirthday(new Date());//保存User对象s.save(u);t.commit();//关闭session,在事务提交后关闭sessions.close();System.out.println("end");}}
4、运行Base类,点击运行。
Console控制台显示以下信息:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).log4j:WARN Please initialize the log4j system properly.Hibernate: insert into User (name, birthday) values (?, ?)end
说明hibernate成功连接MySQL。
然后打开MySQL的命令行窗口输入:
use bookdb;select * from user;
输出信息:
id name birthday
1 fangjing 2012-07-13 21:14:30
注:birthday为当前日期。
- hibernate入门的第一个例子
- hibernate第一个例子
- Hibernate---->第一个例子
- Hibernate第一个例子
- Hibernate第一个例子
- 学习hibernate第一个例子
- Hibernate 第一个例子 详解
- Hibernate第一个例子(一)
- Struts2入门--第一个例子
- Hibernate 4.1.1的第一个例子HelloWorld
- Hibernate 4.1.1的第一个例子HelloWorld
- OPENGL入门——第一个例子的讲解
- Corba的第一个例子
- D3D的第一个例子
- freemarker的第一个例子
- TC的第一个例子
- webservice的第一个例子
- struts2的第一个例子
- 虚函数的特性
- android网易顶部导航栏demo
- 资源监控_自己编写一个nmon
- #include<reg51.h>点亮一排led
- <codeforces>Little Elephant and Sorting
- hibernate入门的第一个例子
- 基于方案的数据库设计构想
- hdu1596 find the safest road 最短路dijkstra
- Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead. Please use Android Tool
- SD/MMC存储器启动方案在SoC中的设计与实现
- 书法作品中印章的使用
- vc error table(summary by myself)
- 问题1:导入进来的工程看不到layout布局文件的预览窗口??
- Android SurfaceView使用 笔记