«

人员登入4---EJB配置编写

时间:2024-3-2 18:13     作者:韩俊     分类: Android


这一篇博客将介绍前后台交互,ejb配置和数据查询,为实现用户登入做足准备。

首先我们来配置ejb。

1.在src目录下建立jboss-ejb-client.properties文件

内容为:

remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false

remote.connections=default

remote.connection.default.host=localhost

remote.connection.default.port = 4447

remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

remote.connection.default.username=pal0415

remote.connection.default.password=Pal0000

2.在src目录下建立META-INF目录,META-INF里建立persistence.xml文件

内容为:

<?xml version="1.0" encoding="UTF-8"?>

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence&quot;

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;

xsi:schemaLocation="http://java.sun.com/xml/ns/persistence

http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd&quot;&gt;

<persistence-unit name="unit" transaction-type="JTA">

<jta-data-source>java:/OracleDS</jta-data-source>

<properties>

<property name="hibernate.show_sql" value="true"/>

<property name="hibernate.format_sql" value="true"/>

<property name="hibernate.hbm2ddl.auto" value="update"/>

<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>

</properties>

</persistence-unit>

</persistence>

相关说明:

注意java:/OracleDS与我们配置的数据源相同

hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构。如果不是此方面的需求建议set value="none"。

create:

每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。

create-drop :

每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。

update:

最 常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。

validate :

每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

3.jboss-as-7.1.1.Finalbinclient里面的jboss-client.jar复制到lib里面

4.编写ejb

代码已经上传,代码有注释

其中包含ejb的调用

Manage.java,ManageBean.java,ManageBeanRemote三个是ejb类的编写

(1)首先我们建立实体映射:Manage类

package login;

import java.io.Serializable;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.Id;

import javax.persistence.Table;

@Entity

@Table(name="MANAGE")//对应表名

public class Manage implements Serializable{

private static final long serialVersionUID = 1L;

@Id @Column(name="ID",nullable=false)//列名---@id表示主键

public String id;



@Column(name="USERNAME",nullable=false)

public String username;



@Column(name="PASSWORD",nullable=false)

public String password;



@Column(name="NAME",nullable=true)

public String name;

//--------------省略了get和set方法

}

(2)编写ejb接口类:ManageBeanRemote类

package login;

import java.util.List;

import javax.ejb.Remote;

@Remote

public interface ManageBeanRemote {

//我们只用到一个方法,其他接口是提供学习

public void save (Manage temp);//增加



public void update (Manage temp);//更新



public void delete (Integer id);//根据id进行删除



public Manage getqualification(Integer id);//根据id获得对象



public List<Manage> getqualification();//返回所有

//登入用这个方法

public List<Manage> getqualificationParts(String username,String password);//根据username和 password返回

}

(3)实现接口类:ManageBean类




代码为:

package login;

import java.util.List;

import javax.ejb.Remote;

import javax.ejb.Stateless;

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

@Stateless

@Remote(ManageBeanRemote.class)

public class ManageBean implements ManageBeanRemote {



@PersistenceContext

EntityManager em;//实体管理对象



@Override

public void save(Manage temp) {

// 增加

em.persist(temp);



}



@Override

public void update(Manage temp) {

// 更新

em.merge(temp);



}



@Override

public void delete(Integer id) {

// 根据id删除



em.remove(em.getReference(Manage.class, id));



}



@Override

public Manage getqualification(Integer id) {

// 根据主键id获取Manage对象

return em.find(Manage.class, id);

}



@SuppressWarnings("unchecked")

@Override

public List<Manage> getqualification() {

// 获取所有对象---可进行查询,和sql有点相似

//return em.createQuery("select o from Manage o where STUDENTID='" + studentid + "'AND TESTID='" + testid + "' order by o.testid desc").getResultList();

return em.createQuery("select o from Manage o ").getResultList();

}





@SuppressWarnings("unchecked")

@Override

public List<Manage> getqualificationParts(String username,String password) {

// 获取所有对象---可进行查询,和sql有点相似

return em.createQuery("select o from Manage o where USERNAME='" + username + "'AND PASSWORD='" + password + "' ").getResultList();



}

}

经过上面步骤,我们就完成了对表manage的ejb配置和编写。

标签: android

热门推荐