您的位置:首页 > 编程语言 > Java开发

[原]java专业程序代写(qq:928900200),学习笔记之基础入门<Hibernate_配置详解>(三十六)

2013-12-19 09:35 1146 查看
[b]Hibernate

[/b]

使用Hibernate的三个准备:

1. 导入Hibernate库(jar包)

2. 添加核心配置文件hibernate.cfg.xml

3. 添加对应表的实体类和映射文件

配置详解

hibernate.dialect 一个Hibernate Dialect类名允许Hibernate针对特定的关系数据库生成优化的SQL.
取值 full.classname.of.Dialect

hibernate.show_sql 输出所有SQL语句到控制台.
有一个另外的选择是把org.hibernate.SQL这个log category设为debug。
eg. true | false

hibernate.format_sql 在log和console中打印出更漂亮的SQL。取值
true | false

hibernate.default_schema 在生成的SQL中,
将给定的schema/tablespace附加于非全限定名的表名上.
取值 SCHEMA_NAME

hibernate.default_catalog 在生成的SQL中,
将给定的catalog附加于非全限定名的表名上.
取值 CATALOG_NAME

hibernate.session_factory_name SessionFactory创建后,将自动使用这个名字绑定到JNDI中.
取值 jndi/composite/name

hibernate.max_fetch_depth 为单向关联(一对一,
多对一)的外连接抓取(outer join fetch)树设置最大深度.
值为0意味着将关闭默认的外连接抓取.
取值建议在0到3之间取值

hibernate.default_batch_fetch_size 为Hibernate关联的批量抓取设置默认数量.
取值建议的取值为4, 8,
和16

hibernate.default_entity_mode 为由这个SessionFactory打开的所有Session指定默认的实体表现模式.
取值 dynamic-map, dom4j, pojo

hibernate.order_updates 强制Hibernate按照被更新数据的主键,为SQL更新排序。这么做将减少在高并发系统中事务的死锁。取值
true | false

hibernate.generate_statistics 如果开启, Hibernate将收集有助于性能调节的统计数据.
取值 true | false

hibernate.use_identifer_rollback 如果开启,
在对象被删除时生成的标识属性将被重设为默认值.
取值 true | false

hibernate.use_sql_comments 如果开启, Hibernate将在SQL中生成有助于调试的注释信息,
默认值为false.
取值 true | false

核心配置文件

hibernate.cfg.xml

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

org.hibernate.dialect.SQLServerDialect

</property>

<property
name="connection.url">

jdbc:sqlserver://localhost:1433;databaseName=java001

</property>

<property
name="connection.username">

sa

</property>

<property
name="connection.password">

123

</property>

<property
name="connection.driver_class">

com.microsoft.sqlserver.jdbc.SQLServerDriver

</property>

<property
name="myeclipse.connection.profile">sqlconn</property>

<!-- 运行时在控制台显示SQL语句 -->

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

<mapping
resource="com/ibm/pojo/user.hbm.xml"
/>

</session-factory>

</hibernate-configuration>

添加对应表的实体类和映射文件

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

<!-- 实现JAVA类到数据库表的映射 -->

<class name="com.ibm.pojo.User"
table="tbl_user" schema="dbo"

catalog="java001" lazy="true">

<!--
主键生成器 native由数据库生成 -->

<id
name="userId" type="java.lang.Integer">

<column
name="uid"/>

<generator class="native"/>

</id>

<property name="userName"
type="java.lang.String" lazy="true">

<column name="uname" length="30"/>

</property>

</class>

</hibernate-mapping>

使用Hibernate的七个步骤:

1. Configuration(配置方式见三个准备)

2. 创建SessionFactory

3. 打开Session

4. 开始一个事务

5. 持久化操作save/update/delete/get

6. 提交事务

7. 关闭session

创建对象dto.user

User.java

package com.ibm.pojo;

import java.io.Serializable;

public class
User implements Serializable{

public User(){

}

private Integer
userId;

private String
userName;

public Integer getUserId() {

return
userId;

}

public void setUserId(Integer userId) {

this.userId = userId;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

}

自动创建数据库表

ExportUtil.java

package com.ibm.util;

import org.hibernate.cfg.Configuration;

import org.hibernate.tool.hbm2ddl.SchemaExport;

public class ExportUtil {

public static void main(String[] args) {

//读取配置文件

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

//针对配置文件中的信息进行导出操作

SchemaExport se =
new
SchemaExport(config);

//创建脚本
并执行脚本

//脚本创建完毕后和数据库关联上,并执行

se.create(true,
true);

}

}

测试七个步骤

Test.java

package com.ibm.test;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import org.hibernate.classic.Session;

import com.ibm.pojo.User;

public class Test {

public static
void
main(String[] args) {

try{

//读取配置信息

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

//获得session工程(链接工厂)

SessionFactory sessionFactory =config.buildSessionFactory();

//获得session(获得连接)

Session session = sessionFactory.openSession();

//开启事务

Transaction tran = session.beginTransaction();

User user = new User();

user.setUserName("javayang");

//保存数据

session.save(user);

//提交事务

tran.commit();

//关闭session

session.close();

}catch(Exception e){

e.printStackTrace();

}

}

}

作者:lulu147 发表于2013-12-19 9:35:03 原文链接

阅读:415 评论:0 查看评论
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐