为了账号安全,请及时绑定邮箱和手机立即绑定

Hibernate基本开发环境搭建

标签:
MySQL

1.建立一个Java工程。

2.新建一个包含所有Hibernate依赖jar包的User Library。

3.将Hibernatejar包和mysql jdbc驱动程序加入环境变量。

4.添加配置文件:从hibernate包中自带的示例代码中拷贝配置文件hibernate.cfg.xml到src目录下面,而其中具体的值参考hibernate.properties文件中的内容。

5.往配置文件中添加一系列配置属性<property>,主要包括:驱动名称,url,username,password,mysql方言: 

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

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

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

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

<property name="hibernate.connection.password">XXXXXXX</property> 

6.hibernate开发环境已经搭建完成了,下面我们写一个小的测试程序。我们使用hibernate来保存一个用户信息User。

7.新建一个java类User:

package net.jerryblog.hibernate.vo; 

import java.util.Date; 

public class User { 

    private int id; 

    private String name; 

    private String passwd; 

    private Date createTime; 

    public Date getCreateTime() { 

        return createTime; 

    } 

    public void setCreateTime(Date createTime) { 

        this.createTime = createTime; 

    } 

    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 String getPasswd() { 

        return passwd; 

    } 

    public void setPasswd(String passwd) { 

        this.passwd = passwd; 

    }     

8.对象已经建好,现在需要编写映射文件,还是从hibernate包提供的映射文件为模板进行编写。建议将映射文件与实体类放在一起,也放在对应的包中。 

<?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="net.jerryblog.hibernate.vo.User" table="t_user"> 

    <id name="id"> 

      <generator class="uuid"/> 

    </id> 

    <property name="name"/> 

    <property name="passwd"/> 

    <property name="createTime"/> 

  </class> 

</hibernate-mapping> 

9.将映射文件User.hbm.xml添加到主配置文件。将其添加到<session-factory>标签内

<mapping resource="net/jerryblog/hibernate/vo/User.hbm.xml"/> 

10.编写工具类ExportDB,使用映射文件生成数据库表。 

package net.jerryblog.hibernate.util; 

import org.hibernate.cfg.Configuration; 

import org.hibernate.tool.hbm2ddl.SchemaExport; 

public class ExportDB { 

    public static void main(String[] args) { 

        Configuration cfg = new Configuration().configure(); 

        SchemaExport exp = new SchemaExport(cfg); 

        exp.create(true, true); 

    } 

11.在运行上面代码之前创建数据库先。然后再运行程序。

12.接下来,我们编写代码将User数据保存进数据库中的用户表中。为了让我们能够看到hibernate做了些什么,我们添加两个配置属性:show_sql和format_sql。

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

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

 添加这两个配置之后,我们重新运行一下刚才的ExportDB的程序,可以看到,控制台打印了下列sql语句,并且进行了一定的格式化:

编写插入User信息的类InsertUserDemo如下:  

package net.jerryblog.hibernate.client; 

import java.util.Date; 

import net.jerryblog.hibernate.vo.User; 

import org.hibernate.HibernateException; 

import org.hibernate.Session; 

import org.hibernate.SessionFactory; 

import org.hibernate.Transaction; 

import org.hibernate.cfg.Configuration; 

public class InsertUserDemo { 

    public static void main(String[] args) { 

        Configuration cfg = new Configuration().configure(); 

        SessionFactory fac = cfg.buildSessionFactory(); 

        Session s = null; 

        Transaction tx = null; 

        try { 

            s = fac.openSession(); 

            tx = s.beginTransaction(); 

            User u = new User(); 

            u.setName("张三"); 

            u.setPasswd("888888"); 

            u.setCreateTime(new Date()); 

            s.save(u); 

            tx.commit(); 

        }catch(HibernateException e) { 

            tx.rollback(); 

            if(s.isOpen()) { 

                s.close(); 

            } 

        } 

    } 

控制台打印如下:

最后在数据库中查看一下有没有记录插进去:

有乱码,主要是因为cmd窗口的编码不同造成的。没关系。

 

©著作权归作者所有:来自51CTO博客作者wawlian的原创作品,如需转载,请注明出处,否则将追究法律责任

职场Hibernate休闲Hibernate


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消