3秒钟不懂你砍我:Hibernate在Idea下的教程

Hibernate是什么?

对数据库进行操作的框架。

JDBC不好用吗?为什么要多次一举?

考虑了可重用性。套用一下大话设计模式的话:假如服务商突然为了节省成本改了数据库,前期你修改的开销可能比较小,后期就只能靠通宵加班来弥补了。所以怎么规避这个问题,用反射。或者就用这个Hibernate框架了。

Hibernate还有什么兄弟姐妹?

SSH,即struts+spring+hibernate,让你web开发形成完整体系,加快开发效率,提升项目境界,以后会写另两个的配置和使用教程。

怎么配置?

1.

新建工程,勾选Hibernate,选择下载就不用自己去找jar包了,Configure选择你想要的版本。

2.左下角,点击database

3.右边出来这个界面

4.选择你的数据库,这里选的是mysql(强力推荐,无敌)

5.

出来这个界面,配置下参数,再测试连接,成功了点ok。

6.再次点击左下角,选择Persistence

7.左下角出现这个框,右键你的项目

8.

点到by database schema

9.出来这个界面,看清楚所有的勾选


10.

这里会根据数据库的表自动给你创建bean和映射文件,映射成的文件名默认是UserEntity,我这里改成UserBean,没有影响的。要建个包,不然default目录下是不让放的。

11.配置hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="connection.url">jdbc:mysql://localhost:3306/cloudprocurement</property>
    <!--后面跟的数据库名-->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <!--mysql的驱动,报错就alt-enter自动下载-->
    <property name="connection.username">root</property>
    <property name="connection.password">xbh136284</property>
    <!--账号密码-->
    <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="hbm2ddl.auto">update</property>
    <!--方言-->
    <mapping resource="com/example/shopsystem/hibernate/UserBean.hbm.xml"/>
    <!--user表的映射文件完整路径-->
  </session-factory>
</hibernate-configuration>

10.之后测试的时候还是有错的,需要工具类。

package com.example.shopsystem.utils;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils
{
    private static SessionFactory sessionFactory;

    public static SessionFactory getSessionFactory()
    {
        return sessionFactory;
    }
    public HibernateUtils(){}

    static
    {
        Configuration cfg = new Configuration();
        cfg.configure();
        sessionFactory = cfg.buildSessionFactory();
    }

    public static Session getSession()
    {
        return sessionFactory.openSession();
    }

    public static void main(String[] args)
    {
        sessionFactory = HibernateUtils.getSessionFactory();
        System.out.println(sessionFactory);
    }
}

11.测试代码,添加
public class Test {
    public static void main(final String[] args) throws Exception {
        UserBean bean = new UserBean();
        bean.setUserId(2);
        bean.setUserName("13628402");
        bean.setUserPassword("xbh1362888");
        bean.setUserJob("a");
        bean.setUserPhoneNumber(1596880L);


        SessionFactory sessionFactory = getSessionFactory();
        //getSessionFactory()getSession()
        //是来自工具类的,导路径要正确
        Session session = getSession();
        session.beginTransaction();
        session.save(bean);
        session.getTransaction().commit();
    }
}

12.使用,查询

http://blog.csdn.net/einsdan/article/details/40149585

里面有3种Hibernate的查询方式,我采用的是第二种,非常的方便。


最后 在java运行是ok的 在web运行是有问题的 所以需要把连接数据库的jar包放到webinf的lib文件夹下,并且在artifact中把jar包都fix进去。

最后 那个persistence映射的时候 需要勾选左边1,3个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值