当前位置: 首页 > 知识库问答 >
问题:

spring应用程序weblogic jndi数据源问题

艾善
2023-03-14

我在weblogic中创建了一个名为jdbc/myds的oracle数据源。

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="jdbc/myDS"/>
</bean>

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
        <util:map>
            <entry key="hibernate.hbm2ddl.auto" value="update" />
            <entry key="hibernate.show_sql" value="true" />
        </util:map>
    </property>
</bean>

<bean id="myDAO" class ="com.example.MyDAOImpl">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>
public class MyDAOImpl implements MyDAO{

private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory){
    this.sessionFactory = sessionFactory;
}

public SessionFactory getSessionFactory() {
    return sessionFactory;
}

public void persistPerson(Person  person) {
    Session session = getSessionFactory().openSession();

    try {

    session.beginTransaction();

    session.save(person);

    session.getTransaction().commit();

    }catch(HibernateException he) {

        he.printStackTrace();
    } finally {
         session.close();
    } 
}
}

共有1个答案

谷梁宏恺
2023-03-14

下面提供了一个Spring XML配置,通过JNDI名称获取数据源,并将其注入SpringAnnotationSessionFactoryBean

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="jdbc/YourJndi"/>
</bean> 


<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource">
        <ref bean="dataSource" />
    </property>
    <property name="annotatedClasses">
        <list>
            <value>com.java.model.Employee</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>             
        </props>
    </property>
</bean>

这个例子已经在WebLogic10.3.4和Oracle11g上进行了成功的测试。

 类似资料:
  • 是否可以创建一个没有数据源的spring-boot应用程序?在我的情况下,我只需要一个简单的REST应用程序,但似乎在启动时,有一个尝试自动初始化一个数据源 我的pom.xml是 我的应用程序.属性是 当我跑的时候

  • 我试图在Spring Boot(v1.2.3)应用程序中使用两个数据库连接,如文档(http://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/htmlsingle/#howto-two-datasources. 问题似乎是次要数据源是用主要数据源的属性构建的。 有人能指出我错过了什么吗? 应用特性:

  • 我试图将数据插入到我的cucumber测试模块中的数据库中。 当使用测试配置文件启动Spring应用程序()时,它会启动应用程序并正常运行。问题是在cucumber测试执行期间,当尝试设置(如下面代码中指出的**行)时,它为空。那么我应该再次设置数据源吗?如果是,如何设置。 这不是cucumber测试相关的问题,问题是我无法访问主应用程序中设置的数据源。 下面是代码 <代码>应用测试。包含测试模块

  • 我正在设置Spring Cloud Data Flow的实例。我运行了以下命令: 在第二步中,我使用的是postgres数据库,而不是默认的h2。 我已经开发了一个Spring Boot作业,使用spring批处理部署在这个平台窗体中。该作业使用两个数据源:Spring的springclouddataflow和任务元数据,以及我的业务逻辑的billrun。当我在本地运行应用程序时,它会像预期的那样

  • 我在Spring云数据流流中遇到 HTTP 源应用程序的问题。 当我尝试将具有巨大体量的 HTTP 请求发布到 HTTP endpoint时,就会发生这种情况。 我尝试在部署中设置以下属性,但没有帮助: 春云启动器HTTP Kafka源码app使用的版本是3.1.1 有人知道如何解决这个问题吗? 这可以以如下所示的独立方式进行最低限度的复制 从https://mvnrepository.com/a

  • 我有一个使用多个数据库的Spring Web应用程序。有多个客户,每个客户都有自己的数据库。一个主数据库(客户身份验证数据库)有客户信息和连接字符串(或元数据)存储的客户数据库。我在Spring配置文件中创建了2个数据源bean定义。所以,我想根据客户设置第二个数据源。我尝试过根据客户设置第二个数据源。问题是看到,当另一个客户登录时,第二个数据源切换到新的客户数据库。我认为我的方法是完全错误的。任