Java JBoss7&;EJB3 |我应该在哪里定义数据源

Java JBoss7&;EJB3 |我应该在哪里定义数据源,java,jboss,datasource,Java,Jboss,Datasource,我是Jboss新手,不知道应该在哪里定义数据库连接数据,比如url、用户名、密码等 以下是我的多模块项目: app-root app-api - src - pom.xml app-ear - src - pom.xml app-ejb - src - pom.xml pom.xml My perinstance.xml位于unterapp root/app ejb/src/main/

我是Jboss新手,不知道应该在哪里定义数据库连接数据,比如url、用户名、密码等

以下是我的多模块项目:

app-root
    app-api
      - src
      - pom.xml

    app-ear
      - src
      - pom.xml

    app-ejb
      - src
      - pom.xml

    pom.xml
My perinstance.xml位于unter
app root/app ejb/src/main/config/default/META-INF/persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

    <persistence-unit name="ejb3_jpa_myapp_pu" transaction-type="JTA">
        <description>Jboss Test application</description>
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:jdbc/MyApp</jta-data-source>

        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
            <property name="hibernate.hbm2ddl.auto" value="none" />
            <property name="hibernate.show_sql" value="true" />
        </properties>
    </persistence-unit>

</persistence>

我知道我必须定义数据库连接属性,但在哪里可以这样做?

您需要在JBoss实例正在使用的独立XML文件中定义数据源。JBoss不附带数据库驱动程序,因此有两个步骤:

1) 为数据库驱动程序(如MySQL、Oracle、Postgres等)创建JBoss模块

2) 创建数据源定义

步骤1)只需执行一次,即许多MySQL数据源可以使用相同的MySQL JBoss模块

步骤2)MySQL的数据源配置示例如下:

<datasources>
   <datasource jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS">
      <connection-url>jdbc:mysql://localhost:3306/EJB3</connection-url>
         <driver>com.mysql</driver>
      <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
      <pool>
        <min-pool-size>10</min-pool-size>
        <max-pool-size>100</max-pool-size>
        <prefill>true</prefill>
      </pool>
      <security>
        <user-name>test</user-name>
        <password>test</password>
      </security>
      <statement>
        <prepared-statement-cache-size>32</prepared-statement-cache-size>
        <share-prepared-statements/>
      </statement>
    </datasource>
    <drivers>
      <driver name="com.mysql" module="com.mysql">
        <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
      </driver>
    </drivers>
</datasources>

jdbc:mysql://localhost:3306/EJB3
com.mysql
事务读取已提交
10
100
真的
测试
测试
32
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
可以使用JBoss CLI自动执行上述操作。此外,还可以自动创建JBoss模块,例如使用smartics JBoss模块maven插件,请参阅以获取更多信息

<datasources>
   <datasource jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS">
      <connection-url>jdbc:mysql://localhost:3306/EJB3</connection-url>
         <driver>com.mysql</driver>
      <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
      <pool>
        <min-pool-size>10</min-pool-size>
        <max-pool-size>100</max-pool-size>
        <prefill>true</prefill>
      </pool>
      <security>
        <user-name>test</user-name>
        <password>test</password>
      </security>
      <statement>
        <prepared-statement-cache-size>32</prepared-statement-cache-size>
        <share-prepared-statements/>
      </statement>
    </datasource>
    <drivers>
      <driver name="com.mysql" module="com.mysql">
        <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
      </driver>
    </drivers>
</datasources>