Hibernate是一个开放源代码的ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装,Java程序员可以使用面向对象的编程思维来操纵数据库,它通过对象属性和数据库表字段之间的映射关系,将对象持久化到数据库中,可以说Hibernate就是将数据从对象形式转换成表字段后存入数据库的一种框架。hibernate移植非常好,因为它用到了方言配置,可以根据不同的数据库自动发出不同的sql。

  1、环境准备:

    1)去Hibernate官网下载最新的hibernate文件,笔者版本号为hibernate-release-4.2.3.Final;

    2)文档内自带了说明文档,不过只有英文的,可以用来参考,可以解决绝大部分的问题;

    3)由于hibernate4已经自带annotation,所以使用annotation开发不用另外加包;

    4)如果要使用log4j来观察hibernate的输出,需要下载两个包,在另一篇随笔中有详细的介绍。http://www.cnblogs.com/hustfly/p/3405546.html

   2、第一个hibernate程序

    1)建立新java 项目,名为hibernate_HelloWorld

    2) 学习建User-library-hibernate,并加入相应的jar包(自己建立一个hibernate的库,包含各个需要的包)

    3)项目右键-buildpath-configure build path-add library—hibernate

    •   hibernate core
    •   /required
    •   slf-nop jar

    4)引入mysql的JDBC驱动包,这里用的数据库为MySQL,故导入相应的驱动

    5)在mysql中建立对应的数据库以及表

      create database hibernate;

      use hibernate;

       create table user (id int primary key, namevarchar(20));

    6)建立hibernate 配置文件hibernate.cfg.xml。直接从参考文档中copy,修改对应的数据库连接,注释掉暂时用不上的内容。

<?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="connection.driver_class">com.mysql.jdbc.Driver</property> <!--数据库连接的URL--> <property name-"connection.url">jdbc.mysql://localhost:3306/test</property> <!--数据库连接用户名--> <property name="connection.username">root</property> <!--数据库连接密码--> <property name="connection.password">111</property> <!--Hibernate方言--> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!--打印SQL语句--> <!--在调试的时候设置为true便于程序的调试,发布应用的时候设置为false,减少信息的输出量,提高关键的运行性能--> <property name="show_sql">true</property> <!--映射文件--> <mapping resource="com/fly/User.hbm.xml"> </session-factory> </hibernate-configuration>

    7)建立User 类

public class User{

    private Integer id;

    private String name;

    //省略setter/getter方法

}

    8)建立Student 映射文件 Student.hbm.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-mapping> <class name="com.fly.User" table="user"> <id name="id" column="id" type="int"> <generator class="native"></genertor> </id> <property name="name="name" type="string" not-null="true" length="50"> <column name="name"></column> </class> </hibernate-mapping>

    9)写测试类Main,在Main中对Student对象进行直接的存储测试

public static void main(){
SessionFactory sf=new AnnotationConfiguration().configure().buildSessionFactory();
Student s=new Student();
s.setName("fly");
Session session=sf.openSession();
Transaction tx = session.beginTransaction();
session.save(s);
tx.commit();
session.close();
}

  10)程序就写完了,在mysql数据库里查询数据已经插入,user表里有id为1,name为fly的一条记录,则说明hibernate与数据库已经成功连接。如此,则环境搭建成功,第一个Helloworld程序成功运行,接下来可以深入学习hibernate的各种操作了。

最新文章

  1. fillStyle径向渐变
  2. 第一章、欢迎进入C#编程世界
  3. Java mysql 日期相关
  4. 【freemaker】之Unknown built-in variable: now
  5. 【多线程】JAVA多线程和并发基础面试问答(转载)
  6. C#调用Win32 api学习总结
  7. E: Write error - write (28 No space left on device)
  8. Flask 富文本编辑器
  9. 设置Chrome和IE搜索栏的默认搜索引擎
  10. 【转】【C/C++】内存分配函数:malloc,calloc,realloc,_alloca
  11. [BZOJ3561] DZY Loves Math VI
  12. SeekBar和RatingBar
  13. Div+Css(一)必备知识
  14. BZOJ 1974: [Sdoi2010]auction 代码拍卖会( dp )
  15. EndNote是一款着名的参考文献管理软件
  16. HBase scan 时 异常 ScannerTimeoutException 解决
  17. javascript实现继承的三种方式
  18. java.net.NoRouteToHostException:Cannot assign requ
  19. 记录一份Oracle 正确的监听配置文件listener.ora与tnsnames.ora
  20. [VMWARE] [CENTOS7] 安装VMware-Tools

热门文章

  1. (转载)Delphi TStringList的用法
  2. 《C和指针》读书笔记——第一章 快速上手
  3. sublime c++ builder
  4. 西门子plc串口通讯方式
  5. asp.net 文件复制或删除用相对路径,File.Copy中用相对路径,巧用相对路径复制文件
  6. [转载]C#图片格式(JPG,BMP,PNG,GIF)等转换为ICO图标
  7. BT5之配置笔记
  8. FZU 2140 Forever 0.5
  9. 如何在Blog中使用feedburner管理RSS订阅
  10. Android 三档自定义滑动开关,禁止点击功能的实现,用默认的seekbar组件实现