前提:
EAP版本: EAP6.1
模式:standalone模式
数据库: Postgresql 9.3
数据源模式:NON-XA DataSource
正文:
① 将postgresql的jdbc包作成一个module部署到JBoss中。比如,我作成的module如下图所示:
具体的方法可以参考我另一篇博文: http://rainbow702.iteye.com/blog/2065353
② 修改 \jboss-eap-6.1\standalone\configuration下的standalone.xml文件,在其中的“<subsystem xmlns="urn:jboss:domain:datasources:1.1">”下增加一个新的datasource(系统默认自带一个ExampleDS)。下面是新增datasource之后的配置:
<datasources> <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url> <driver>h2</driver> <security> <user-name>sa</user-name> <password>sa</password> </security> </datasource> <datasource jndi-name="java:jboss/datasources/testDS" pool-name="testDS" enabled="true" use-java-context="true"> <connection-url>jdbc:postgresql://localhost:5432/test</connection-url> <driver-class>org.postgresql.Driver</driver-class> <driver>postgresql</driver> <!-- 此处通过 postgresql 这个名字指定使用下面 drivers 中相应的 driver--> <pool> <min-pool-size>32</min-pool-size> <max-pool-size>32</max-pool-size> <prefill>true</prefill> </pool> <security> <user-name>postgres</user-name> <password>123456</password> </security> <validation> <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/> <validate-on-match>true</validate-on-match> <background-validation>false</background-validation> <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/> </validation> </datasource> <drivers> <driver name="postgresql" module="org.postgresql"/> <!-- 此处的 org.postgresql 即为上面①中创建的module。名称必须一致。--> <driver name="h2" module="com.h2database.h2"> <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> </driver> </drivers> </datasources>
③ 经过上面两步,datasource就算配置好了。下面说明一下如何来创建EntityManager对象和相关的Entity实体类
④ 创建persistence.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.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_2_0.xsd"> <persistence-unit name="testUnit" transaction-type="JTA"> <jta-data-source>java:jboss/datasources/testDS</jta-data-source> <!--此处的 data-soruce 须与上面②中配置的名称保持一致--> <properties> <property name="hibernate.hbm2ddl.auto" value="none" /> <property name="hibernate.show_sql" value="true" /> </properties> </persistence-unit> </persistence>
⑤ persistence.xml这份文件配置好了之后,应该将它放置在工程的什么位置呢?我一开始也不知道,后来,百度了一下,说是要放到 META-INF目录下,所以,我就将其放在了WebContent/META-INF下了,结果死活不起作用。后来又改成放到 WebContent/WEB-INF/lib下,还是不起作用。直至后来在官方找到了说明:
http://docs.oracle.com/javaee/6/tutorial/doc/bnbqw.html
上面链接的最后,写了persistence.xml可放置的路径。
然后,我改成放在"src/META-INF"(部署的时候会被部署至WEB-INF/class/META-INF)下之后,再重新启动EAP,终于可以了。
⑥ 声明与数据库中person表相应的Entity类
@Entity @Table(name = "person") @NamedQueries({ @NamedQuery(name="user.checkLogin", query="select u from UserEntity u where u.name= :name and u.password=:password") }) public class UserEntity implements Serializable { /** * serialVersionUID */ private static final long serialVersionUID = 1L; @Column(name = "id") @Id private Integer id; @Column(name = "name") private String name; @Column(name="password") private String password; @Column(name = "nickname") private String nickName; public UserEntity() { } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName; } }
⑦这样,Entity可以通过EntityManager来维护了。下面,通过注解来获取EntityManager对象
public abstract class BaseDao<T> { private Class<T> entityClass; // 获取EntityManager,unitName的值最好明确写出来,且与上面④中定义的unitName保持一致 @PersistenceContext(unitName="testUnit") protected EntityManager em; public BaseDao(Class<T> entityClass) { this.entityClass = entityClass; } public Class<T> getEntityClass() { return this.entityClass; } }
然后就可以使用这个EntityManager进行数据库操作了
public class LoginDao extends BaseDao<UserEntity> { public LoginDao() { super(UserEntity.class); } public boolean checkLogin(String userName, String password) { boolean res = false; // 使用em进行数据库的查询 Query query = this.em.createNamedQuery("user_checkLogin", UserEntity.class); query.setParameter("name", userName); query.setParameter("password", password); List<UserEntity> resList = query.getResultList(); res = resList.size() > 0; return res; } }
以上,完了。
PS:
① 请确保数据库的jdbc包与工程使用的JDK版本是相符合的,不然可能会报错。比如,我上面使用的jar包是基于JDK1.7及以上的,但我的工程使用的是JDK1.6,结果就报错了。换成1.7的就没有问题了。
相关推荐
例如,如果你的MySQL服务器运行在本地,数据库名为`mydb`,用户为`root`,密码为`password`,则这些信息将会用在数据源配置中。 1. **创建数据源配置文件**: 在JBoss的配置目录下(默认为`$JBOSS_HOME/standalone...
其次,需要将oracle的事务处理数据源配置文件oracle-xa-ds.xml复制到/server/default/deploy目录下。如果使用非事务处理的数据源,则将oracle-ds.xml文件复制到/server/default/deploy目录下。 然后,需要修改...
"在JBoss中配置多个数据库和数据源" 在JBoss中配置多个数据库和数据源是非常复杂的,因为JBoss是一款非常强大的J2EE应用程序服务器。配置多个数据库和数据源需要了解JBoss的配置选项和数据源的配置信息。 首先,...
本文将详细介绍如何在 JBoss 中配置 Oracle 数据源,包括复制配置文件、编辑配置文件、设置数据源参数等步骤。 一、复制配置文件 首先,我们需要将 %JBOSS_HOME%\docs\examples\jca\oracle-ds.xml 复制到 %JBOSS_...
JBoss配置mySQL数据源 有需要的就下载吧。。。。
本主题主要聚焦于"tomcat jboss数据源配置.rar",这是一个关于如何在Tomcat 5.5和JBoss 4.0中配置数据源,特别是与Oracle数据库交互的详细过程。下面将深入探讨这两个关键组件以及数据源配置的相关知识点。 首先,...
jboss 配置jndi数据源,deploy下配置oracle-ds.xml
1. **创建数据源配置文件**:在JBOSS的配置目录下,如`$JBOSS_HOME/standalone/configuration/standalone.xml`或`$JBOSS_HOME/server/default/deploy/jboss-service.xml`,找到并编辑相应的XML配置文件。在这里,...
在`<datasources>`节点下,创建一个新的数据源配置。这里以名为`ExampleDS`为例: ```xml <data-source jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context=...
2. **创建数据源配置文件**:在JBoss中,数据源配置通常通过XML文件进行,如提供的`Oracle9i-ds.xml`。这个文件会定义数据源的各种属性,如数据库URL、用户名、密码、连接池设置等。例如: ```xml <local-tx-...
以Tomcat为例,我们通常会在`conf/server.xml`或`conf/context.xml`中添加数据源配置,包括数据库驱动类、URL、用户名、密码等信息。例如: ```xml type="javax.sql.DataSource" driverClassName=...
完成以上步骤后,JBoss 4.0将被配置为使用MySQL作为默认的数据源,你可以通过`java:/MySqlDS`来访问和操作MySQL数据库。记得在修改配置文件后重启JBoss服务,以使更改生效。这是一个基础的配置过程,实际环境中可能...
ejb3.0配置使用jboss7.1.1的数据源
1. **创建数据源配置文件**:这通常是在应用服务器(如Tomcat、JBoss)的配置文件中完成的。例如,在Tomcat中,我们可以在`conf/server.xml`的`GlobalNamingResources`元素下添加一个`Resource`元素,如下所示: ``...
1.找到JBOSS根目录下(F:\jboss-4.0.5.GA\docs\examples\jca)文件夹,所有数据库数据源配置文件全在这个文件夹下,使用什么数据库就选择什么数据源,我们使用的是MySQL选择的文件是:
jboss配置MySql的JNDI
接下来,我们来看数据源配置,特别是针对Oracle数据库。Oracle因其稳定性和可靠性在企业环境中广泛使用。在JBoss上配置Oracle数据源,首先需要将Oracle的JDBC驱动添加到ClassPath,通常是`server/default/lib`目录。...
* 数据源配置文件:位于$JBOSS-HOME/server/default/deploy下,文件格式必须是*-ds.xml的样式。 * 公共jar包:位于$JBOSS-HOME/server/default/lib下,用于存放公共的jar包,如数据库的JDBC jar、log4j.jar等。 * ...
1. JBOSS数据源配置: JBOSS数据源是通过JNDI(Java Naming and Directory Interface)名称在应用服务器中注册的Java数据源对象,它允许应用程序透明地访问数据库。在JBOSS中,数据源通常在`standalone.xml`或`...