手把手在MyEclipse中搭建Hibernate开发环境

请点击上面  免费订阅本账号!

本公众号主要推送java技术、web(html/js/ui)技术、数据库技术、web项目开发经验、IT生活、IT热点,让有经验的人知识面更广、技术更扎实、工资更高,让0基础的人秒变大牛,让你的生活更积极,更有乐趣。点击上方的蓝字,这样您每天可以看到更多的java知识和资讯!完全是免费订阅,请放心关注。

出处:http://blog.csdn.net/qq_25827845/article/details/53414303冷血之心的博客)

 

在MyEclipse中如何搭建hibernate开发环境?本文讲解一个入门级Demo,希望可以帮助更多的初学者。

 

1、下载对应的Hibernate版本hibernate-release-5.0.7.Final:

       http://download.csdn.net/download/david_ding/9426462

下载成功之后,解压,如图所示,其中lib文件夹中存放着Hibernate开发所需的部分jar包。

2、在MyEclipse创建一个Java项目,Hibernate01,导入所需jar包。

 

注意事项:

  • 因为使用hibernate时候,有日志信息输出,hibernate本身没有日志输出的jar包,所以需要导入其他日志的jar包。

  • 最后还要导入还有mysql驱动的jar包

为了方便小伙伴入门,Hibernate开发所需的jar包下载地址如下:http://download.csdn.net/detail/qq_25827845/9703414

 

3、创建实体类

User.java

  1. package cn.ywq.entity;  

  2.   

  3. public class User {  

  4.       

  5.   

  6.     private int uid;  

  7.     private String username;  

  8.     private String password;  

  9.     private String address;  

  10.       

  11.     public int getUid() {  

  12.         return uid;  

  13.     }  

  14.     public void setUid(int uid) {  

  15.         this.uid = uid;  

  16.     }  

  17.     public String getUsername() {  

  18.         return username;  

  19.     }  

  20.     public void setUsername(String username) {  

  21.         this.username = username;  

  22.     }  

  23.     public String getPassword() {  

  24.         return password;  

  25.     }  

  26.     public void setPassword(String password) {  

  27.         this.password = password;  

  28.     }  

  29.     public String getAddress() {  

  30.         return address;  

  31.     }  

  32.     public void setAddress(String address) {  

  33.         this.address = address;  

  34.     }  

  35.       

  36.     @Override  

  37.     public String toString() {  

  38.         return "User [uid=" + uid + ", username=" + username + ", password="  

  39.                 + password + ", address=" + address + "]";  

  40.     }  

  41.       

  42.       

  43. }  


4、配置实体类和数据库表的对应关系(映射关系)

使用配置文件实现映射关系

(1)创建xml格式的配置文件

         - 映射配置文件名称和位置没有固定要求

         - 建议:在实体类所在包里面创建,实体类名称.hbm.xml

(2)配置是是xml格式,在配置文件中首先引入xml约束

         - 学过约束dtd、schema,在hibernate里面引入的约束dtd约束

User.hbm.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <!DOCTYPE hibernate-mapping PUBLIC   

  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  

  4.     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">  

  5. <hibernate-mapping>  

  6.     <!-- 1 配置类和表对应   

  7.         class标签  

  8.         name属性:实体类全路径  

  9.         table属性:数据库表名称  

  10.     -->  

  11.     <class name="cn.ywq.entity.User" table="t_user">  

  12.         <!-- 2 配置实体类id和表id对应   

  13.             hibernate要求实体类有一个属性唯一值  

  14.             hibernate要求表有字段作为唯一值  

  15.         -->  

  16.         <!-- id标签  

  17.             name属性:实体类里面id属性名称  

  18.             column属性:生成的表字段名称  

  19.          -->  

  20.         <id name="uid" column="uid">  

  21.             <!-- 设置数据库表id增长策略   

  22.                 native:生成表id值就是主键自动增长  

  23.             -->  

  24.             <generator class="native"></generator>  

  25.         </id>  

  26.         <!-- 配置其他属性和表字段对应   

  27.             name属性:实体类属性名称  

  28.             column属性:生成表字段名称  

  29.         -->  

  30.         <property name="username" column="username"></property>  

  31.         <property name="password" column="password"></property>  

  32.         <property name="address" column="address"></property>  

  33.     </class>  

  34. </hibernate-mapping>  

 

5、创建核心配置文件:

hibernate操作过程中,只会加载核心配置文件,其他配置文件不会加载

(1)核心配置文件格式xml,但是核心配置文件名称和位置固定的

        - 位置:必须src下面

        - 名称:必须hibernate.cfg.xml

hibernate.cfg.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <!DOCTYPE hibernate-configuration PUBLIC  

  3.     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  

  4.     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">  

  5. <hibernate-configuration>  

  6.     <session-factory>  

  7.         <!-- 第一部分: 配置数据库信息 必须的 -->  

  8.         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  

  9.         <property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>  

  10.         <property name="hibernate.connection.username">root</property>  

  11.         <property name="hibernate.connection.password">123</property>  

  12.           

  13.         <!-- 第二部分: 配置hibernate信息  可选的-->  

  14.         <!-- 输出底层sql语句 -->  

  15.         <property name="hibernate.show_sql">true</property>  

  16.         <!-- 输出底层sql语句格式 -->  

  17.         <property name="hibernate.format_sql">true</property>  

  18.         <!-- hibernate帮创建表,需要配置之后   

  19.             update: 如果已经有表,更新,如果没有,创建  

  20.         -->  

  21.         <property name="hibernate.hbm2ddl.auto">update</property>  

  22.         <!-- 配置数据库方言  

  23.             在mysql里面实现分页 关键字 limit,只能使用mysql里面  

  24.             在oracle数据库,实现分页rownum  

  25.             让hibernate框架识别不同数据库的自己特有的语句  

  26.          -->  

  27.         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>  

  28.           

  29.         <!-- 第三部分: 把映射文件放到核心配置文件中 必须的-->  

  30.         <mapping resource="cn/ywq/entity/User.hbm.xml"/>  

  31.     </session-factory>  

  32. </hibernate-configuration>  


由核心配置文件可以看出,我登录数据库的用户名和密码分别为:root和123。登录的数据库为:hibernate。大家注意修改。

 关于配置属性的全面知识,请参考我的博客:

http://blog.csdn.net/qq_25827845/article/details/53242219

 

6、创建单元测试

为了测试的方便,我们创建其工具类:

HibernateUtils.java

  1. package cn.ywq.utils;  

  2.   

  3. import org.hibernate.SessionFactory;  

  4. import org.hibernate.cfg.Configuration;  

  5.   

  6. public class HibernateUtils {  

  7.   

  8.     static Configuration cfg = null;  

  9.     static SessionFactory sessionFactory = null;  

  10.     //静态代码块实现  

  11.     static {  

  12.         //加载核心配置文件  

  13.         cfg = new Configuration();  

  14.         cfg.configure();  

  15.         sessionFactory = cfg.buildSessionFactory();  

  16.     }  

  17.       

  18.     //提供方法返回sessionFactory  

  19.     public static SessionFactory getSessionFactory() {  

  20.         return sessionFactory;  

  21.     }  

  22.       

  23.     public static void main(String[] args) {  

  24.           

  25.     }  

  26. }  

 

单元测试方法如下:

HibernateDemo.java

  1. package cn.ywq.hibernatetest;  

  2.   

  3. import org.hibernate.Session;  

  4. import org.hibernate.SessionFactory;  

  5. import org.hibernate.Transaction;  

  6. import org.hibernate.cfg.Configuration;  

  7. import org.junit.Test;  

  8.   

  9. import cn.ywq.entity.User;  

  10. import cn.ywq.utils.HibernateUtils;  

  11.   

  12. public class HibernateDemo {  

  13.   

  14.     @Test  

  15.     public void testAdd() {  

  16.           

  17. //      第一步 加载hibernate核心配置文件  

  18.         // 到src下面找到名称是hibernate.cfg.xml  

  19.         //在hibernate里面封装对象  

  20. //      Configuration cfg = new Configuration();  

  21. //      cfg.configure();  

  22.           

  23. //      第二步 创建SessionFactory对象  

  24.         //读取hibernate核心配置文件内容,创建sessionFactory  

  25.         //在过程中,根据映射关系,在配置数据库里面把表创建  

  26. //      SessionFactory sessionFactory = cfg.buildSessionFactory();  

  27.           

  28.         //由于使用了工具类,所以第一步和第二步可以使用下边一句代替  

  29.         SessionFactory sessionFactory = HibernateUtils.getSessionFactory();  

  30.           

  31. //      第三步 使用SessionFactory创建session对象  

  32.         // 类似于连接  

  33.         Session session = sessionFactory.openSession();  

  34.           

  35. //      第四步 开启事务  

  36.         Transaction tx = session.beginTransaction();  

  37.   

  38. //      第五步 写具体逻辑 crud操作  

  39.         //添加功能  

  40.         User user = new User();  

  41.         user.setUsername("小6");  

  42.         user.setPassword("14564");  

  43.         user.setAddress("北京");  

  44.         //调用session的方法实现添加  

  45.         session.save(user);  

  46.           

  47. //      第六步 提交事务  

  48.         tx.commit();  

  49.   

  50. //      第七步 关闭资源  

  51.         session.close();  

  52.         sessionFactory.close();  

  53.           

  54.   

  55.     }  

  56. }  

 session类似于jdbc中connection, 调用session里面不同的方法实现crud操作

(1)添加 save方法
(2)修改 update方法
(3)删除 delete方法
(4)根据id查询 get方法

 

7、测试结果如下:

(1)首先是JUint出现绿条:

 关于单元测试的问题,请参考我的博客:Myeclipse中进行JUnit单元测试

 

(2)Console中有语句输出:

 

(3)数据库中,增加了一条记录:


 则,你的第一个Hibernate小程序已经跑起来咯~ 

下边再阐述几个注意的地方:

(1)关于MySQL数据库的安装,请参考

                  http://blog.csdn.net/qq_25827845/article/details/53366444

(2)我上边使用了一款MySQL数据库图形化管理工具,操作简单,容易上手。

 下载地址:http://download.csdn.net/detail/qq_25827845/9703454

 Demo的下载地址为: http://download.csdn.net/detail/qq_25827845/9703501

点击最下角阅读全文查看程序员变老之后是这样的

有人用微信聊天,有人却在微信中学习,成长。下面是2016最HOT IT公众号,赶快试试新的关注方法吧!


关注方式
★长按二维码,选择“识别图中二维码”进行关注。


  没看够?更多好文在阅读原文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值