JBoss中JPA的实现

开发环境:JBoss 4.2.2.GA,MyEclipse 6.01 ,MySQL5。

在MySQL中建立一个叫mydb的数据库,新建一个user表,SQL如下:

create table user(

id int not null,

name varchar(45) not null,

password varchar(20) not null,

primary key(id)

);

在JBoss的server/defaul/\deploy下新建mysql-ds.xml,

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>MySQLDS</jndi-name>
<connection-url>jdbc:mysql://127.0.0.1/mydb</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>

<user-name>root</user-name>
<password></password>

</local-tx-datasource>

</datasources>


先建立一个EJB Project myejb,点选JavaEE 5.0 - EJB3.0,选中Add Support for Entity beans(add JPA Capabilities),确定即可。新建三个java文件,都在com.lukecheng包,分别如下:

/**

对应数据库user表

*/

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class User implements Serializable {
private int id;
private String name;
private String password;

@Id
public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

}





import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.lukecheng.entity.User;

@Stateless
public class UserService implements UserServiceRemote {

@PersistenceContext(unitName = "myejbPS")
private EntityManager em;

public void addUser(User u) { //持久化User
em.persist(u);
}

public User findUserById(int id) { //查找User
return (User) em.find(User.class, id);
}

}





import javax.ejb.Remote;

import com.lukecheng.entity.User;

@Remote
public interface UserServiceRemote {
public void addUser(User u);

public User findUserById(int id);
}



然后修改META-INF下的persistence.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<persistence 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" version="1.0">

<persistence-unit name="myejbPS" transaction-type="JTA">
<jta-data-source>java:/MySQLDS</jta-data-source><!-- 这是mysql-ds.xml配置好的数据源-->
</persistence-unit>

</persistence>


发布到JBoss,新建一个叫testejb的Dynamic Web Project测试一下 ,新建testuser.jsp:

<%@ page language="java"
import="javax.naming.*,com.lukecheng.*"
pageEncoding="GB2312"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

</head>

<body>
<%
InitialContext ctx = null;

try {
ctx = new InitialContext();

UserServiceRemote h = (UserServiceRemote) ctx
.lookup("UserService/remote");
User u = new User();
u.setId(1);
u.setName("lukecheng");
u.setPassword("123456789");

h.addUser(u);

out.println("save over");
} catch (NamingException e) {
e.printStackTrace();
}
%>
</body>
</html>



启动Jboss,在浏览器中输入http://localhost:8080/testejb/testuser.jsp,看一下数据库,是不是有:

+----+-----------+-----------+
| id | name | password |
+----+-----------+-----------+
| 1 | lukecheng | 123456789 |
+----+-----------+-----------+
1 row in set (0.03 sec)



那就可以了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值