java 从零开始,学习笔记之基础入门<Hibernate_配置详解>(三十六)
来源:互联网 发布:淘宝细节认证主图大小 编辑:程序博客网 时间:2024/06/06 05:41
Hibernate
使用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
<?xmlversion='1.0'encoding='UTF-8'?>
<!DOCTYPEhibernate-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>
<!-- 配置数据源 -->
<propertyname="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<propertyname="connection.url">
jdbc:sqlserver://localhost:1433;databaseName=java001
</property>
<propertyname="connection.username">
sa
</property>
<propertyname="connection.password">
123
</property>
<propertyname="connection.driver_class">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<propertyname="myeclipse.connection.profile">sqlconn</property>
<!-- 运行时在控制台显示SQL语句 -->
<propertyname="show_sql">true</property>
<mappingresource="com/ibm/pojo/user.hbm.xml"/>
</session-factory>
</hibernate-configuration>
添加对应表的实体类和映射文件
<?xmlversion="1.0"encoding="utf-8"?>
<!DOCTYPEhibernate-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">
<columnname="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 classUser implements Serializable{
public User(){
}
private IntegeruserId;
private StringuserName;
public Integer getUserId() {
returnuserId;
}
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 staticvoid 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();
}
}
}
- java 从零开始,学习笔记之基础入门<Hibernate_配置详解>(三十六)
- java 从零开始,学习笔记之基础入门<Hibernate_实战演练>(三十七)
- java 从零开始,学习笔记之基础入门<Oracle_基础>(三十三)
- java 从零开始,学习笔记之基础入门<数据库连接配置>(二十八)
- java 从零开始,学习笔记之基础入门(开始)
- java 从零开始,学习笔记之基础入门(一)
- java 从零开始,学习笔记之基础入门<数组>(七)
- java 从零开始,学习笔记之基础入门<Switch>(八)
- java 从零开始,学习笔记之基础入门<Static>(十二)
- java 从零开始,学习笔记之基础入门<异常>(十五)
- java 从零开始,学习笔记之基础入门<集合>(十六)
- java 从零开始,学习笔记之基础入门<javascript>(三十)
- java 从零开始,学习笔记之基础入门<Oracle_查询>(三十四)
- java 从零开始,学习笔记之基础入门<Struts2_Spring_整合>(四十一)
- java 从零开始,学习笔记之基础入门<Jquery>(四十三)
- java 从零开始,学习笔记之基础入门<统计图>(四十四)
- java 从零开始,学习笔记之基础入门<对象_属性>(二)
- java 从零开始,学习笔记之基础入门<类_方法_构造器>(三)
- Java百问
- Maven学习笔记
- 编写更好的jQuery代码的建议
- 解决头文件相互包含问题的方法
- 安装 SQL Server2008 安装程序规则支持提示“重新启动计算机”失败
- java 从零开始,学习笔记之基础入门<Hibernate_配置详解>(三十六)
- 交叉编译器配置
- 如何解决线程的启动和停止
- HTML <meta> 标签 和 http-equiv
- Android 如何修改情景模式的默认值
- Tair集群
- Mysql 复制步骤
- 分析RTEMS的RAMDISK的使用和原理等
- 重要秘密