搭建hibernate环境 使用JDBC连接数据库

搭建hibernate环境 使用JDBC连接数据库

1.新建一个java项目(测试用)
2.导入hibernate所需的jar包

这里写图片描述

    // hibernate所需jar包
    antlr-2.7.7.jar
    dom4j-1.6.1.jar
    hibernate-commons-annotations-4.0.5.Final.jar
    hibernate-core-4.3.11.Final.jar
    hibernate-jpa-2.1-api-1.0.0.Final.jar
    jandex-1.1.0.Final.jar
    javassist-3.18.1-GA.jar
    jboss-logging-3.1.3.GA.jar
    jboss-logging-annotations-1.2.0.Beta1.jar
    jboss-transaction-api_1.2_spec-1.0.0.Final.jar

    // 连接mysql数据库驱动包
    mysql-connector-java-5.1.20-bin.jar
3.配置hibernate.cfg.xml文件:

配置文件所放位置:

放在src下目录下

查找方式:

文件的获取:在jar包:hibernate-release-版本号.Final\project\etc 目录下

hibernate.cfg.xml配置文件代码,例如:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <!-- mysql配置数据库连接 -->
        <property name="connection.driver_class">
            org.gjt.mm.mysql.Driver
        </property>
        <property name="connection.url">jdbc:mysql:///hibernate4</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>

        <!-- hibernate可选项 -->
        <!-- 数据库文言 -->
        <property name="dialect">
            org.hibernate.dialect.MySQL5Dialect
        </property>
        <!-- 是否打印sql语句 -->
        <property name="show_sql">true</property>
        <!-- 格式化sql语句 -->
        <property name="format_sql">true</property>
        <!-- hbm文件 -->
        <mapping resource="cn/hibernate/entity/score.hbm.xml" />
    </session-factory>
</hibernate-configuration>
4.配置映射文件 xxx.hbm.xml文件:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.hibernate.entity">
    <class name="Score">
        <id name="id">
            <generator class="native"></generator>
        </id>

        <property name="stuId"/>
        <property name="subjectId"/>
        <property name="result"/>
    </class>
</hibernate-mapping>
5.HibernateUitl工具类:

用于加载hibernate.cfg.xml配置文件:

package cn.hibernate.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;

/**
 * hibernate工具类
 * @author tang
 *
 */
public class HibernateUitl {

    private static Configuration cfg = null;
    private static SessionFactory factory = null;
    private static Session session = null;

    static {
        cfg = new Configuration().configure();
        factory = cfg.buildSessionFactory(new StandardServiceRegistryBuilder().applySettings(cfg.getProperties())
                    .build());
    }

    public static Session getSession() {
        if(factory != null) {
            return factory.openSession();
        }else{
            factory = cfg.buildSessionFactory(new StandardServiceRegistryBuilder().applySettings(cfg.getProperties())
                    .build());
        }
        return factory.openSession();
    }

    public static void closeSession() {
        if(session != null && session.isOpen()){
            session.close();
        }
    }
}
6.添加对应映射文件(xxx.hbm.xml)的实体类:
// 实体类
public class Score {
    private int id;
    private int stuId;//学生编号
    private int subjectId;//科目编号
    private double result;//成绩
    // 省略 gettersetter 方法
}
7.测试类:
public class HibernateTest {

    @Test
    public void createDB() {
        Configuration cfg = new Configuration().configure();
        SchemaExport se = new SchemaExport(cfg);
        //第一个参数是否生成ddl脚本,第二个参数是否执行到数据库中
        se.create(true, true);
    }

    @Test
    public void sqlSave() throws Exception {
        Session session = null;
        Transaction tx = null;
        try {
            session = HibernateUitl.getSession();
            tx = session.beginTransaction();

            Score s = new Score();
            s.setId(1);
            s.setSubjectId(2);
            s.setResult(89);

            session.save(s);

            tx.commit();
        } catch (Exception e) {
            if(tx != null)
                tx.rollback();
            e.printStackTrace();
            throw e;
        }finally{
            HibernateUitl.closeSession();
        }
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值