配置hibernate数据库连接

第一步:右键项目->MyEclipse->添加Hibernate组件,指定数据库连接配置如下(src/hibernate.cfg.xml)(需要在mysql中设置wait_timeout变量延长连接保持时间)

<?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">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

<session-factory>
    <property name="hbm2ddl.auto">update</property>
    <property name="dialect">
        org.hibernate.dialect.MySQLDialect
    </property>
    <property name="connection.url">
        jdbc:mysql://127.0.0.1:3306/test
    </property>
    <property name="connection.username">root</property>
    <property name="connection.password">rootpwd</property>
    <property name="connection.driver_class">
        com.mysql.jdbc.Driver
    </property>
    <property name="myeclipse.connection.profile">smartecs</property>
    <mapping resource="com/smartecs/dao/Account.hbm.xml" />

</session-factory>

</hibernate-configuration>

src/applicationContext.xml自动添加配置如下,需要将mysql-connector-{version}-java-bin.jar添加到项目的classpath中

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation"
            value="classpath:hibernate.cfg.xml">
        </property>
    </bean>
</beans>

第二步:创建ORM映射(可使用MyEclipse Hibernate Tool生成持久化类,可参照这里),src/com/smartecs/dao里的文件如下

package com.smartecs.dao;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Account {
    @Id
    @GeneratedValue
    private int id;

    private String username;

    private String password;

    protected Account() {
    }
    public Account(String username, String password) {
        super();
        this.username = username;
        this.password = password;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

Account.hbm.xml文件如下

<?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">
<!--
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.smartecs.dao.Account" table="account">
        <!-- 必须先定义<id>元素,后定义<property>元素 -->
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <!-- 主键的生成方式 -->
            <generator class="increment" />
        </id>
        <!-- name属性,类型为String,对应的数据库中的列为name,长度为20 -->
        <property name="username" type="java.lang.String">
            <column name="username" length="100" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="passwd" length="100" />
        </property>
    </class>
</hibernate-mapping> 

第三步:测试代码:

Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
Account account = new Account("ciaos", "ciaospwd");
try {
    session.save(account);
    tx.commit();
} catch (Exception e) {
    tx.rollback();
    e.printStackTrace();
}finally{
    session.close();
}

附,JDBC驱动配置如下

数据库中表结构如下:

CREATE TABLE `account` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(100) DEFAULT NULL,
  `passwd` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
时间: 2024-11-09 00:14:40

配置hibernate数据库连接的相关文章

在Eclipse-jee-neon中配置Hibernate(jbosstools)

这个星期非常忙碌,但坚持写博客,我先说的就是,这几周都是围绕Eclipse的安装插件,之后我会更加对我所学习到的知识来进行总结,由于我的周末都非常疲劳,所以我就配步骤的图片就不po文字了,看过我之前的博客都知道这些都是简单的配置.Eclipse-jee-neon中配置Hibernate插件主要用到jbosstools. 访问http://tools.jboss.org/downloads/

Hibernate笔记①--myeclipse制动配置hibernate

Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命 意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任. Hibernate笔记①--myeclipse制动配置hibernate

spring配置hibernate的sessionFactory的几种方法

分类: JAVA Spring Hibernate 2013-01-27 20:47  1851人阅读  评论(0)  收藏  举报 spring配置hibernate的sessionFactory 之前用spring2+hibernate3+struts2开发了一个彩信发布系统,由于第一次使用此架构,造成applicationContext.xml中的配置非常冗长,而且经常因为更改一个小配置项(例:数据库ip.用户名.密码等)将此文件作修改,这及不利于项目维护,万一粗心造成其他地方变动,会对本

Linux下PHP安装配置MongoDB数据库连接扩展

说明: 操作系统:CentOS 5.X 64位 MongoDB数据库服务器: IP地址:192.168.21.130 Web服务器: IP地址:192.168.21.127 PHP安装路径:/usr/local/php 实现目的: 安装PHP的MongoDB数据库扩展,通过PHP程序连接MongoDB数据库 具体操作: 一.安装PHP的MongoDB数据库扩展(在Web服务器192.168.21.127上操作) 下载地址:http://pecl.php.net/get/mongo-1.5.1.t

使用annotation配置hibernate(1)

Hibernate3.0后新增了annotation的配置方式,比起xml有着更加简洁的配置 1:修改hibernate.cfg.xml 之前<mapping>标签中配置了hbm资源文件 <mapping resource="User.hbm.xml"/> 由于现在使用了注解方式代替了hbm文件,所以需要修改mapping标签的内容 <mapping class="com.zlt.hibernatedemo.User"/> 2:U

在Spring中配置Hibernate和单独配置Hibernate的区别

首先说下Spring和Hibernate的几个特征: Spring:自动依赖注入,类都可以被当成bean使用. Hibernate:会话工厂sessionfactory,事务管理器transaction. 如果只使用Hibernate,那么当你操作数据库的时候,需要敲诸如: Configuration conf = new Configuration().configure(); SessionFactory sf = conf.buildSessionFactory(); Session se

配置Hibernate的二级缓存

1.在applicationContex.xml文件里面添加二级缓存配置: <!-- 配置hibernate的sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"><ref bea

使用annotation配置hibernate(2):一对多关系配置

数据表结构 单向一对多 Student.java 1 @Entity 2 @Table(name = "student") 3 public class Student { 4 @Id 5 @Column(name = "id") 6 @GenericGenerator(name = "generator",strategy = "native") 7 @GeneratedValue(generator = "gen

使用annotation配置hibernate(3):多对多关系配置

数据库表结构 Student.java 1 @Entity 2 @Table(name = "student") 3 public class Student { 4 @Id 5 @Column(name = "id") 6 @GenericGenerator(name = "generator",strategy = "native") 7 @GeneratedValue(generator = "generato