锁定老帖子 主题:Hibernate浅谈第一篇
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-31
前言: 关于所有内容只是自己学习时的一些笔记与总结,不一定完全正确,希望不对的地方大家能多喷一喷。
话不多说,现在就进入正题,Hibernate浅淡第一篇。
什么是Hibernate这里就不多说了,相信我们亲爱的google和baidu比我要说的明白。让我们先搞一个例子上上手,感受一下。例子十分简单,由第三方教程引入。只为让大家能快速试用一下Hibernate。
例子创建实现步骤:
第一步:首先导入使用Hibernate所必须的最基本的包(如果不知道怎么导入jar包,请关注博客中导入jar包的文章) hibernate3.jar(核心包) hibernate/required文件夹下的 |--antlr-2.7.6.jar |--commons-collections-3.1.jar |--dom4j-1.6.1.jar |--javassist- 3.12.0.GA.jar |--jta-1.1.jar |--slffj-api-1.6.1.jar和slf4j-nop-1.6.1.jar(网上下载) |--mysql-connector-java-5.16-bin.jar(mysql数据驱动jar包,oracle的可到网上找) 版本号根据需要可以换,但名字是确定的 第二步:创建数据库,我用的是mysql数据库,这里提供创建数据库与数据表的语句。 create database hibernate;(创建数据库) use hibernate;(使用创建的数据库) create table student (id int primary key, name varchar(20), age int ); (创建一张student表) 第三步:创建一个Student 类 说明:创建与数据表同名的类,而且类的属性必须与表中的字段名相同,类型也要相同(如有不明,请参阅其它文 档)。这就体现了Hibernate中所谓的对象与关系的映射。也就是有什么样的表,就要有与之对应的类。代码如下:
package com.hibernate.model;
public class Student {
private int id;
private int age;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
第四步:Hibernate配置文件hibernate.cfg.xml的编写。
说明:这里我们只给出了运行实例所需的配置信息,具体hibernate.cfg.xml配置文件的解释会在其他文章中做详细解释。一般来说这个文件放在src目录下,照做就行了 <?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> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost/hibernate</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <!-- JDBC connection pool (use the built-in) --> <!-- <property name="connection.pool_size">1</property> --> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- Enable Hibernate's automatic session context management --> <!-- <property name="current_session_context_class">thread</property> --> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup --> <!-- <property name="hbm2ddl.auto">create</property> --> <!--对象-关系映射文件的位置 --> <mapping resource="com/hibernate/model/Student.hbm.xml"/> </session-factory> </hibernate-configuration> 第五步:编写对象-关系映射文件Student.hbm.xml(文件名的命名类名.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"> <hibernate-mapping package="com.bjsxt.hibernate.model"> <class name="Student"> <id name="id" column="id"></id> <property name="name" column="name"></property> <property name="age" column="age"></property> </class> </hibernate-mapping> 第六步:编写执行数据库操作的代码 说明:这里只实现了一个向student表添加记录的方法,主要是感受一下Hibernate,所以代码以简单易懂为主。代码如下
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import com.hibernate.model.Student; public class StudentTest { public static void main(String arg[]){ Student s=new Student(); s.setId(1); s.setName("bobo"); s.setAge(10); Configuration cfg=new Configuration(); SessionFactory sessionFactory=cfg.configure().buildSessionFactory(); Session session=sessionFactory.openSession(); session.beginTransaction(); session.save(s); session.getTransaction().commit(); session.close(); sessionFactory.close(); } }
好了,经过上面的六步,程序实例应该可以成功运行了,看一下数据表里是不是多了一条记录。有了Hibernate,我们无需写sql语句,数据就可以插入到数据库了。
结语: Hibernate浅淡第一篇结束了,里面只是一个很简单的实例,也许很多东西写的不够详细和准确,如果你感觉有用就看看,淡然也可以飘过,一切只为了能够一起进步。谢谢!!当然也欢迎大家多多喷我。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-09-25
新手路过,一直不明白有什么用,今天懂了!谢谢!
|
|
返回顶楼 | |
浏览 2498 次