1.
dd/META-INF
application.xml
persistence.xml
dd/WEB-INF
jboss-web.xml
web.xml
classes/mysql-ds.xml
application.xml
<?xml version="1.0" encoding="UTF-8"?>
<application>
<display-name>J2EE Application</display-name>
<module>
<web>
<web-uri>jywj.war</web-uri>
<context-root>/</context-root>
</web>
</module>
<module>
<ejb>jywj.jar</ejb>
</module>
</application>
persistence.xml
<persistence>
<persistence-unit name="jywjUnit">
<jta-data-source>java:/jywjDS</jta-data-source>
<properties>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="hibernate.hbm2ddl.auto" value="none" />
</properties>
<!--
<property name
="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties> -->
</persistence-unit>
</persistence>
jboss-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/</context-root>
</jboss-web>
mysql-ds.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml,v 1.2 2010/08/30 07:46:53 jylins Exp $ -->
<!-- Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->
<datasources>
<local-tx-datasource>
<jndi-name>jywjDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/jywj?characterEncoding=gbk</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>aljoin</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<!-- should only be used on drivers after 3.22.1 with "ping" support
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
-->
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml -->
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
InitialFactory.java
package ejb.jywj.factory;
import java.util.Properties;
import javax.naming.InitialContext;
import ejb.jywj.bussiness.dao.DAO;
//import ejb.jywj.dao.DAO;
public class InitialFactory {
public static final String ejbname = "jywj";// ear文件名字
public static final String where = "remote";
public static final String unitName = "jywjUnit";
public static final InitialContext GetInitial() {
javax.naming.InitialContext initial = null;
Properties p = new Properties();
p.setProperty("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
p.setProperty("java.naming.provider.url", "localhost:1099");
try {
initial = new javax.naming.InitialContext(p);
return initial;
} catch (Exception e) {
}
return initial;
}
public static final DAO getDAO()
{
DAO dao = null;
try {
dao = (DAO) InitialFactory.GetInitial()
.lookup(
InitialFactory.ejbname + "/DAOBean/"
+ InitialFactory.where);
} catch (Exception e) {
// TODO: handle exception
}
return dao;
}
}
实体bean
package ejb.jywj.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Admin implements java.io.Serializable{
private int id;
private String usercardid;
private String password;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column
public String getUsercardid() {
return usercardid;
}
public void setUsercardid(String usercardid) {
this.usercardid = usercardid;
}
@Column
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
dao接口
package ejb.jywj.bussiness.dao;
import java.util.List;
import ejb.jywj.entity.Userinfo;
public interface DAO {
public <T> int save(T obj);
public <T> int delete(String sql);
public <T> int merge(T obj) ;
public <T> List select(String sql);
public <T> List selectentity(String sql );
public <T> List selectentity(String sql,int curpage,int pagerecord );
public <T> long selectsum(String entityname) ;
}
dao实现
package ejb.jywj.bussiness.daobean;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import ejb.jywj.bussiness.dao.DAO;
import ejb.jywj.factory.InitialFactory;
@Remote
@Stateless
public class DAOBean implements DAO {
@PersistenceContext(unitName = InitialFactory.unitName)
protected EntityManager em;
public <T> int delete(String sql) {
// TODO Auto-generated method stub
int jg=0;
try {
Query query=em.createNativeQuery(sql);
query.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
jg=-1;
}
return jg;
}
public <T> int merge(T obj) {
// TODO Auto-generated method stub
int i=0;
try {
em.merge(obj);
} catch (Exception e) {
// TODO: handle exception
i=-1;
}
return i;
}
public <T> int save(T obj) {
// TODO Auto-generated method stub
int i=0;
try {
em.persist(obj);
} catch (Exception e) {
// TODO: handle exception
i=-1;
}
return i;
}
public <T> List select(String sql) {
// TODO Auto-generated method stub
Query query=null;
List<T> list=new ArrayList<T>();
try{
query=em.createNativeQuery(sql);
list=query.getResultList();
}
catch(Exception e)
{
}
return list;
}
public <T> List selectentity(String sql ) {
// TODO Auto-generated method stub
Query query=null;
List list=new ArrayList();
try{
query=em.createQuery(sql);
list=query.getResultList();
}
catch(Exception e)
{
e.printStackTrace();
}
return list;
}
public <T> List selectentity(String sql,int curpage,int pagerecord ) {
// TODO Auto-generated method stub
Query query=null;
List list=new ArrayList();
try{
query=em.createQuery(sql);
query.setFirstResult(curpage*pagerecord);
query.setMaxResults(pagerecord);
list=query.getResultList();
}
catch(Exception e)
{
e.printStackTrace();
}
return list;
}
public <T> long selectsum(String entityname) {
// TODO Auto-generated method stub
Query query=null;
List list=new ArrayList();
int sum=0;
try{
query=em.createQuery("select e from "+entityname+" e");
sum=query.getResultList().size();
}
catch(Exception e)
{
e.printStackTrace();
}
return sum;
}
}