[转载]利用weblogic的数据源作为hibernate的数据源的例子

利用weblogic的数据源作为hibernate的数据源的例子
在网上,我们可以看到许多关于hibernate入门的例子,但是好多是让hibernate自己管理连接池的。我在这里给出一个直接利用weblogic 发布的数据源的例子。步骤如下

1.写一个准备用于持久化的类

  1. package com.jagie.business.organization;
  2. import java.io.Serializable;
  3. /**
  4. *

    Title:

  5. *

    Description: 权限

  6. *

    Copyright: Copyright (c) 2003

  7. *

    Company: www.jagie.com

  8. * @author Jagie
  9. * @version 1.0
  10. */
  11. public class Permission implements Serializable {
  12. private String ID;//pk
  13. private String name;//名称
  14. private String description;//描述
  15. private String module;//模块id
  16. private String power;//权值,$分隔的操作id例如:browse$add$delete$change
  17. private int scope;//范围,0:本人,1:本单位,2:所有单位
  18. public static void main(String[] args) {
  19. }
  20. public String getID() {
  21. return ID;
  22. }
  23. public void setID(String ID) {
  24. this.ID = ID;
  25. }
  26. public String getName() {
  27. return name;
  28. }
  29. public void setName(String name) {
  30. this.name = name;
  31. }
  32. public String getDescription() {
  33. return description;
  34. }
  35. public void setDescription(String description) {
  36. this.description = description;
  37. }
  38. public String getModule() {
  39. return module;
  40. }
  41. public void setModule(String module) {
  42. this.module = module;
  43. }
  44. public String getPower() {
  45. return power;
  46. }
  47. public void setPower(String power) {
  48. this.power = power;
  49. }
  50. public int getScope() {
  51. return scope;
  52. }
  53. public void setScope(int scope) {
  54. this.scope = scope;
  55. }
  56. }


2.编写一个xml文件,名称为Permission.hbm.xml,一定要确保在运行时该xml文件和Permission.class在一起

<?xml version="1.0" encoding="utf-8"?>














3.在weblogic 上配置连接池和数据源,我的数据源的jndi名字为OilDS

4.修改classpath下的hibernate.properties文件,并保存
a.添加一行:hibernate.dialect net.sf.hibernate.dialect.OracleDialect
b.找到JNDI Datasource这一段,在下面设置hibernate.connection.datasource OilDS
c.找到Plugin ConnectionProvider部分,去掉hibernate.connection.provider_class
net.sf.hibernate.connection.DatasourceConnectionProvider一句的注释
d.找到 Transaction API部分,去掉hibernate.transaction.manager_lookup_class
net.sf.hibernate.transaction.WeblogicTransactionManagerLookup一句的注释
e.保存修改

5.在类路径中编写一个jndi.properties文件,为了考虑灵活性,防止硬编码,该文件非常重要,内容如下
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://localhost:7001(我的weblogic服务器就在本机上,也许你的需要适当修改)


6.好啦,万事俱备,让我们写一个Test类来测试一下hibernate的威力好了,原码如下.
  1. package com.jagie.business.organization;
  2. import net.sf.hibernate.Session;
  3. import net.sf.hibernate.Transaction;
  4. import net.sf.hibernate.SessionFactory;
  5. import net.sf.hibernate.cfg.Configuration;
  6. import net.sf.hibernate.tool.hbm2ddl.SchemaExport;
  7. import javax.naming.InitialContext;
  8. import javax.naming.Context;
  9. import javax.sql.*;
  10. import java.sql.*;
  11. import java.util.*;
  12. import com.jagie.utils.j2ee.*;
  13. public class Test {
  14. private static SessionFactory sessions;
  15. public static void main(String[] args) throws Exception {
  16. Configuration conf = new Configuration().addClass(Permission.class);
  17. sessions = conf.buildSessionFactory();
  18. //生成并输出sql到文件(当前目录)和数据库
  19. SchemaExport dbExport = new SchemaExport(conf);
  20. dbExport.setOutputFile("sql.txt");
  21. dbExport.create(true, true);
  22. //start......
  23. Session s = sessions.openSession();
  24. Transaction t = s.beginTransaction();
  25. //1.用普通使用方式建立对象,填充数据
  26. Permission p1 = new Permission();
  27. p1.setName("1111");
  28. //2.持久化
  29. s.save(p1);
  30. //此时p1已经可以在数据库中找到
  31. t.commit();
  32. s.close();
  33. }
  34. }


7.运行该类,即可看到数据库已经建立了一个sys_permission的表,并且插入了一条数据。很简单吧!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-130782/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/374079/viewspace-130782/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值