Hibernate配置及创建

hibernate配置文件提示
1.打开eclipse的的window--preferences
2.在搜索框输入Xml Catalog,双击打开,点击 add
3.点击fileSystem,找到你dtd文件的路径(Location)
文件位于hibernate-core目录下通过搜索找到hibernate-configuration-3.0.dtd
4.Key type选URI
5.Key复制配置文件中的http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd
同理hibernate—mapping-3.0.dtd找到自己路径,同样选择URI而Key则复制xxx.hbm.xml中的http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd


搭建log4j日志环境
1.可以通过该网站http://logging.apache.org/log4j/1.2/下载log4j将下载目录下的log4j-1.2.17.jar包导入到项目中去。
2,找到hibernate/project/etc下的log4j.properties复制到eclipse项目下src处,可以通过对log4j的修改来改变显示哪些内容。




Hibernate4创建SessionFactory的方式

Configuration configuration = new Configuration().configure();
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
				 .applySettings(configuration.getProperties()).buildServiceRegistry();
		SessionFactory sf = configuration.buildSessionFactory(serviceRegistry);

Hibernate5创建SessionFactory新的方式
StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder()
				.configure().build();
Metadata metadata = new MetadataSources(standardRegistry)
		.getMetadataBuilder()
		.applyImplicitNamingStrategy(
				ImplicitNamingStrategyJpaCompliantImpl.INSTANCE)
		.build();


SessionFactory sessionFactory = metadata.getSessionFactoryBuilder().build();
Hibernate5不再显式的使用Configuration类代表配置信息,而是新增了一个Metadata类来处理,SessionFactory的创建从Metadata实例中获得一个创建者,然后调用改创建者的build()方法获得SessionFactory。这是典型的创建者模式。


若依旧在Hibernate5中使用Hibernate4创建SessionFactory的方式,代码编译不会报错,但在运行时会抛出一个QuerySyntaxException异常:XXX is not mapped。


这个异常信息似乎告诉我们是因为User类没有映射到数据库的表中,然而我认真检查了所有配置信息,并没有发现配错的情况。于是我把Maven依赖的Hibernate5降级到Hibernate4目前最后一个版本4.3.11,QuerySyntaxException异常没有出现,User类也正常映射到了数据库表中。我一开始还以为是Hibernate5有bug,查看文档之后才发现原来是SessionFactory的创建方式改了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值