jboss jta mysql_JBOSS使用JPA操作数据库

1.在jboss的部署目录新增mysql-ds.xml,这个文件在jboss安装目录可以找到

MySqlDS

jdbc:mysql://127.0.0.1:3306/student

com.mysql.jdbc.Driver

root

123456

org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter

mySQL

2.在EJB项目中新增JPA支持

这个操作一般让程序帮我们自动建立就ok,如下所示

http___img0.tuicool.com_v2Inmq.jpg

还有一个问题需要注意就是上面的java版本,这个一般和java_home的版本一致

到这一步我们要在eclipse里创建数据源

http___img1.tuicool.com_BvA7Zr.jpg

接下来我们选择hibernate为jpa规范,之后eclipse会为我们自动配置jpa的配置文件,配置结束后文件可能是这样的

org.lxh.model.MUser

遗憾的是把项目部署到jboss会出现错误,因为jboss数据源已经配置好但是jpa配置文件没有使用jboss的数据源,且没有配置事务处理器,可以参考下面的配置 <?xml version="1.0" encoding="UTF-8"?>

java:MySqlDS

org.lxh.model.MUser

jta-data-source结点配置的就是jboss数据源的jndi,properties里配置jpa的事务处理器

3接下来在相应的包里创建实体bean就ok了

在相应包上右击,从中可以选择创建实体bean,根据提示实体Bean就能创建成功

package org.lxh.model;

import java.io.Serializable;

import javax.persistence.*;

/**

* The persistent class for the m_user database table.

*

*/

@Entity

@Table(name="m_user")

@NamedQuery(name="MUser.findAll", query="SELECT m FROM MUser m")

public class MUser implements Serializable {

private static final long serialVersionUID = 1L;

@Id

private int id;

private String address;

private String name;

private String password;

public MUser() {

}

public int getId() {

return this.id;

}

public void setId(int id) {

this.id = id;

}

public String getAddress() {

return this.address;

}

public void setAddress(String address) {

this.address = address;

}

public String getName() {

return this.name;

}

public void setName(String name) {

this.name = name;

}

public String getPassword() {

return this.password;

}

public void setPassword(String password) {

this.password = password;

}

}

4.在EJB业务Bean里取得EntityManager

这个和依赖注入的原理基本类似,我们注入ejb可以使用@EJB注解,那么EntityManager的注入也是类似的

@PersistenceContext(unitName="TestTransaction")

private EntityManager em;

public void updateUser() throws Exception {

MUser m=em.find(MUser.class, 3);

m.setName("刘惜君XX");

em.merge(m);

}

上面的前两句代码就实现了EntityManager的注入那后面就可以进行相关操作了。要明白的一点的就是jpa操作数据库不需要显式的开启事务提交事务

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值