开源项目
知识点
相关文章
更多最近更新
更多Hibernate入门示例程序
2019-04-21 23:05|来源: 网路
在第一个Hibernate入门示例程序中,我们将使用eclipse IDE创建一个简单的hibernate应用程序示例。要在Eclipse IDE中创建第一个hibernate
应用程序,需要遵循以下步骤:
创建java项目
为hibernate添加jar文件
创建持久类
创建持久类的映射文件
创建配置文件
创建检索或存储持久对象的类
运行应用程序
前提工作:
安装好 MySQL 并启动。
Eclipse Neon.2 Release (4.6.2)。
下载 Hibernate 相关类库(Jar文件)
创建一个数据库表:tb_employee
1. 创建java项目
打开Eclipse,通过 File -> New -> project -> java project 创建java项目。 现在指定项目名称: first-hibernate
, 然后 next-> 完成。
2. 为hibernate添加jar文件
添加jar文件右键单击您的项目(first-hibernate
) -> Build Path
-> 添加外部存档。
现在选择所有的jar文件,如下图所示 -
创建一个用户自定义库,为这个自定义库起个名字:hibernate-jars
,并选择 hibernate
相关jar包。
下载所需的 Hibernate-jars文件:
在这个例子中,我们将应用程序与MySQL数据库连接。 所以你必须添加mysql-connect.jar
文件。
3. 创建持久化类
在这里,要创建持久化类,右键单击src
-> New
-> Class
- 使用包名指定类(例如:com.mypackage
) -> finish
。
Employee.java
package cn.mypackage; public class Employee { private int id; private String firstName,lastName; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } }
4. 创建持久化类的映射文件
在这里,我们正在创建与上一主题中创建的相同的映射文件。 要创建映射文件,右键单击src
-> new
-> file
-> 指定文件名(例如employee.hbm.xml
) , 它必须在包外部。
employee.hbm.xml
<?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> <class name="cn.mypackage.Employee" table="emp1000"> <id name="id"> <generator class="assigned"></generator> </id> <property name="firstName"></property> <property name="lastName"></property> </class> </hibernate-mapping>XML
5. 创建配置文件
配置文件包含数据库的所有信息,如:connection_url
,driver_class
,username
,password
等。hbm2ddl.auto属性用于自动在数据库中创建表。 我们将在下一个主题中深入学习Dialect
类。 要创建配置文件,请右键单击src
-> new
-> file
。 现在指定配置文件名,例如: hibernate.cfg.xml
。
hibernate.cfg.xml
<?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="hbm2ddl.auto">update</property> <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property> <property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property> <property name="connection.username">system</property> <property name="connection.password">oracle</property> <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <mapping resource="employee.hbm.xml"/> </session-factory> </hibernate-configuration>
6. 创建检索或存储持久对象的类
在这个类中,我们只是将employee
对象存储到数据库中。
package cn.mypackage; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class StoreData { public static void main(String[] args) { //creating configuration object Configuration cfg=new Configuration(); cfg.configure("hibernate.cfg.xml");//populates the data of the configuration file //creating seession factory object SessionFactory factory=cfg.buildSessionFactory(); //creating session object Session session=factory.openSession(); //creating transaction object Transaction t=session.beginTransaction(); Employee e1=new Employee(); e1.setId(100); e1.setFirstName("Max"); e1.setLastName("Su"); session.persist(e1);//persisting the object t.commit();//transaction is committed session.close(); System.out.println("successfully saved"); } }
7. 运行应用程序
在运行这个示例之前,还差关键的一个步骤,那就是创建对象对应的表:tb_employee,其结构及创建语句语句如下-
CREATE TABLE `tb_employee` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `firstName` varchar(32) NOT NULL DEFAULT '', `lastName` varchar(32) NOT NULL DEFAULT '', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8;SQL
接下来,就是运行hibernate应用程序,请右键单击StoreData
类 -Run As
- Java应用程序。
输入结果如下 -
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect Hibernate: insert into tb_employee (firstName, lastName, id) values (?, ?, ?) successfully savedShell
查看 tb_employee
表中的数据,如下 -
相关问答
更多-
求struts hibernate spring 入门资料[2022-12-12]
http://www.mldn.cn/这个网站有许多的视频教程?你下下看看,我决得还不错 -
如何编译wxWidgets示例程序[2021-09-11]
wxWidgets wxWidgets是一个程序开发框架/库, 允许你在Windows、Mac、Linux中使用相同的代码跨平台开发。它主要用C++写成,但也可以与其他语言绑定比如Python、Perl、Ruby。 本教程中我将向你展示如何在基于Debian的linux中如Ubuntu和Linux Mint中编译wxwidgets 3.0+。 从源码编译wxWidgets并不困难,仅仅需要几分钟。库可以按不同的方式来编译,比如静态或者动态库。 1. 下载 wxWidgets 第一步你需要从wxwidgets ... -
python示例程序windows下双击闪退[2023-06-20]
我试了一下,也是秒退。 在命令行里运行,发现输出说是有不可识别的字符,那肯定是其中的中文字了。 要么把那行中文注释删掉,要么在最开始加上 # coding=gbk -
从哪能找到python示例程序或源码[2022-06-08]
参考资源 1.Python网站,http://www.python.org/ 2.诺基亚论坛,http://www.forum.nokia.com,“Python for Series 60 Platform API参考” 3.诺基亚论坛,http://www.forum.nokia.com,“用Python for Series 60 Platform编程” 4.Python for S60 Wiki http://wiki.opensource.nokia.com/projects/Python_for ... -
示例程序的大值(Big o value of sample program)[2023-08-06]
好的,所以评论给出了一个非常明确的答案 - 但只是为了澄清(并且也正确回答了这个问题): 定义big-O的两个操作是: for each in str(A): - 这是一个O(n)操作,它查看字符串( A )中的每个字符。 max(result) - 这也是一个O(n) ,因为我们必须迭代整个列表来修复最大值( result )。 由于len(A) == len(result)我们可以称之为2n (而不是nm ),并且由于它是大O,我们丢弃常数因子,导致: O(n) 。 如果您想完全删除常量因子,可以将函数 ... -
实用的COW示例程序?(Practical COW example program?)[2022-05-06]
DDX进一步提高了COW的功能,当翻译成EZ COW时,它更容易阅读。 接下来是一个EZ DDX COW程序,其中的注释散布在代码中。 This is the first word. N = M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++ M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++M++ ... -
ITK安装和示例程序(ITK installation and sample program)[2022-12-25]
设置项目的最简单方法是再次使用CMake。 尝试使用CMakeLists.txt和main.cpp创建项目。 CMakeLists.txt应该具有以下内容: cmake_minimum_required(VERSION 2.8 FATAL_ERROR) project(ItkTest) find_package(ITK REQUIRED) include(${ITK_USE_FILE}) add_executable(MyTest main.cpp) target_link_libraries(MyTe ... -
示例程序参数(Example program argument)[2023-12-19]
这是Java,因此,当您运行它时,只需将URL作为参数传递。 例如: java -jar MyJar.jar http://google.com/ 如果你没有将它打包成JAR,那么它甚至更简单: java MyClass http://google.com/ This is Java, so, when you run it, just pass the URL as argument. For example: java -jar MyJar.jar http://google.com/ In ca ... -
您收到该错误是因为您的代码中存在一些错误: public function Main():Void { } 应该 public function Main():void { } 编译器不知道Void (大写V ),它与void不同。 为了避免将来出现这种错误,你可以简单地写下: public function Main() { } 希望能有所帮助。 You get that error because you have a little mistake in your code : public fu ...
-
映射器api https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapreduce/Mapper.html 减少api https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapreduce/Reducer.html 帮助您入门的教程 http://hadoop.apache.org/docs/r0.18.3/mapred_tutorial.html The mapper ...