我已经粘贴了 Hibernate 3
配置文件,SessionFactory类来配置此config.xml和带有JPA批注的bean。我想知道我是否正在使用 Hibernate 4,
那么在代码级别的上下文中会有什么变化,或者在外行语言上有非常广泛的差异或进步。
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">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.2.144:1521:xe</property>
<property name="hibernate.connection.username">prateek</property>
<property name="connection.password">prateek</property>
<property name="connection.pool_size">1</property>
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">create</property>
<mapping class="com.vaannila.domain.User1" />
</session-factory>
</hibernate-configuration>
建立连接的静态Java类(SessionFactory帮助器)
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class SessionFactoryHelper {
private static final SessionFactory sessionFactory;
static {
try {
/*
* Build a SessionFactory object from session-factory configuration
* defined in the hibernate.cfg.xml file. In this file we register
* the JDBC connection information, connection pool, the hibernate
* dialect that we used and the mapping to our hbm.xml file for each
* POJO (Plain Old Java Object).
*
*/
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable e) {
System.err.println("Error in creating SessionFactory object."
+ e.getMessage());
throw new ExceptionInInitializerError(e);
}
}
/*
* A static method for other application to get SessionFactory object
* initialized in this helper class.
*
*/
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
豆类
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="USER1")
public class User1 {
private Long id;
private String name;
private String gender;
private String country;
private String aboutYou;
private Boolean mailingList;
@Id
@GeneratedValue
@Column(name="USER_ID")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name="USER_NAME")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Column(name="USER_GENDER")
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Column(name="USER_COUNTRY")
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
@Column(name="USER_ABOUT_YOU")
public String getAboutYou() {
return aboutYou;
}
public void setAboutYou(String aboutYou) {
this.aboutYou = aboutYou;
}
@Column(name="USER_MAILING_LIST")
public Boolean getMailingList() {
return mailingList;
}
public void setMailingList(Boolean mailingList) {
this.mailingList = mailingList;
}
}
文件hibernate.cfg.xml很好。在hibernate-
configuration-3.0.dtd中,该版本仍然是3.0,这似乎令人困惑,但是事实就是如此。DTD未更新。也许您想使用以hibernate开头的名称,例如hibernate.show_sql
代替show_sql
。属性的名称可以从文档中找到。通常使用的DTD_location是http://www.hibernate.org/dtd/hibernate- configuration-3.0.dtd
(vs ..sourceforge …),但是两者都应该起作用。
从API中可以看到,不推荐使用buildSessionFactory。这是在4.x中构建的方式:
Configuration conf = new Configuration();
conf.configure();
serviceRegistry = new ServiceRegistryBuilder().applySettings(conf.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
在文档中的许多地方,这仍然不是最新的。
通常,不需要更改bean类中的映射。原因是您使用的是普通的JPA映射,而且Hibernate 3是JPA规范中描述的实现。
问题内容: 我已经粘贴了 Hibernate 3 配置文件,SessionFactory类来配置此config.xml和带有JPA批注的bean。我想知道我是否正在使用 Hibernate 4, 那么在代码级别的上下文中会有什么变化,或者在外行语言上有非常广泛的差异或进步。 hibernate.cfg.xml 建立连接的静态Java类(SessionFactory帮助器) 豆类 问题答案: hib
问题内容: 查看下面的示例代码 和 当我问到代码差异时,我并不是在说执行流程,这是显而易见的。 那么这些代码之间的 真正 区别是什么?建议何时 在 通话 前 使用您的代码,何时 在 通话 后 使用您的代码?我想在某些情况下这很重要。 问题答案: 您不应在之前放置任何代码,因为此方法可以使系统执行正确暂停应用程序所需的操作。您要在回调中执行的所有代码都应放在调用之后。希望这可以帮助。 活动报价: 注
本文向大家介绍算法和伪代码之间的区别,包括了算法和伪代码之间的区别的使用技巧和注意事项,需要的朋友参考一下 在这篇文章中,我们将了解算法和伪代码之间的区别- 算法 它被定义为一系列明确定义的步骤。 这些步骤提供了解决现有问题的解决方案/方法。 这是一种系统且逻辑的方法,其中过程是逐步定义的。 它为特定问题提供了解决方案。 该解决方案将转换为机器代码,然后由系统执行以提供相关的输出。 结合了许多简单
本文向大家介绍REST API和SOAP API之间的区别,包括了REST API和SOAP API之间的区别的使用技巧和注意事项,需要的朋友参考一下 我们知道,每台机器都以不同的语言或输入来理解和交易,因此Web服务是机器之间进行相互通信并在它们之间交换数据所必需的。为了对其通信实施一些限制,定义了一些规则和规定,称为网络服务,它们基本上定义了需要交换的数据的格式和类型,尤其是两台机器都应注意的
在Java最近几个主要版本的每一次迭代中,似乎都有管理并发任务的新方法。 在Java9中,我们有Flow API,它类似于RxJava的Flowable API,但在Java9中,它有一组简单得多的类和接口。 Java 9 具有类似流API的类的完整包,即、、、,它们似乎做了类似的事情。 这两个库的主要区别是什么?为什么有人会使用Java9Flow库而不是更多样化的RxJava库,或者反之亦然?
问题内容: 在最近几个主要版本的Java的每次迭代中,似乎都有一致的新方法来管理并发任务。 在Java中9,我们有流API这类似于可流动API RxJava,但与Java 9有一个更简单的一组类和接口。 Java 9 有,,,,和,这就是它。 RxJava的 拥有全 包 的流API状类,即,,,,和这似乎做同样的事情。 这两个库之间的主要区别是什么?为什么有人会使用Java 9 Flow库而不是种