服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

直接利用weblogic 发布的数据源

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

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

  package com.jagie.business.organization;

  import java.io.serializable;

  /**

  * <p>title: </p>

  * <p>description: 权限</p>

  * <p>copyright: copyright (c) 2003</p>

  * <p>company: www.jagie.com</p>

  * @author jagie

  * @version 1.0

  */

  public class permission implements serializable {

  private string id;//pk

  private string name;//名称

  private string description;//描述

  private string module;//模块id

  private string power;//权值,$分隔的操作id例如:browse$add$delete$change

  private int scope;//范围,0:本人,1:本单位,2:所有单位

  public static void main(string[] args) {

  }

  public string getid() {

  return id;

  }

  public void setid(string id) {

  this.id = id;

  }

  public string getname() { return name;

  }

  public void setname(string name) {

  this.name = name;

  }

  public string getdescription() {

  return description;

  }

  public void setdescription(string description) {

  this.description = description;

  }

  public string getmodule() {

  return module;

  }

  public void setmodule(string module) {

  this.module = module;

  }

  public string getpower() {

  return power;

  }

  public void setpower(string power) {

  this.power = power;

  }

  public int getscope() {

  return scope;

  }

  public void setscope(int scope) {

  this.scope = scope;

  }

  }

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

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

  <!doctype hibernate-mapping system "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

  <hibernate-mapping>

  <class name="com.jagie.business.organization.permission" table="sys_permission">

  <id name="id">

  <generator class="uuid.hex"/>

  </id>

  <property name="name"/>

  <property name="module"/>

  <property name="description"/>

  <property name="power"/>

  <property name="scope"/>

  </class>

  </hibernate-mapping>

  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的威力好了,原码如下。

package com.jagie.business.organization; import net.sf.hibernate.session; import net.sf.hibernate.transaction; import net.sf.hibernate.sessionfactory; import net.sf.hibernate.cfg.configuration; import net.sf.hibernate.tool.hbm2ddl.schemaexport; import javax.naming.initialcontext; import javax.naming.context; import javax.sql.*; import java.sql.*; import java.util.*; import com.jagie.utils.j2ee.*; public class test {   private static sessionfactory sessions;   public static void main(string[] args) throws exception {          configuration conf = new configuration().addclass(permission.class);     sessions = conf.buildsessionfactory();         //生成并输出sql到文件(当前目录)和数据库     schemaexport dbexport = new schemaexport(conf);     dbexport.setoutputfile("sql.txt");     dbexport.create(true, true);     //start......     session s = sessions.opensession();     transaction t = s.begintransaction();     //1.用普通使用方式建立对象,填充数据     permission p1 = new permission();     p1.setname("1111");     //2.持久化     s.save(p1);     //此时p1已经可以在数据库中找到     t.commit();     s.close();   } }

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

扫描关注微信公众号