这一篇博客将介绍前后台交互,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"
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">
<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.Final\bin\client里面的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配置和编写。
实现登入功能请看下篇博客:http://hm4123660.iteye.com/admin/blogs/2183143
相关推荐
关于组织参加“第八届‘泰迪杯’数据挖掘挑战赛”的通知-4页
PyMySQL-1.1.0rc1.tar.gz
技术资料分享CC2530中文数据手册完全版非常好的技术资料.zip
docker构建php开发环境
VB程序实例,可供参考学习使用,希望对你有所帮助
pytz库的主要功能 时区转换:pytz库允许用户将时间从一个时区转换到另一个时区,这对于处理跨国业务或需要处理多地时间的数据分析尤为重要。 历史时区数据支持:pytz库不仅提供了当前的时区数据,还包含了历史上不同时期的时区信息,这使得它在处理历史数据时具有无与伦比的优势。 夏令时处理:pytz库能够自动处理夏令时的变化,当获取某个时区的时间时,它会自动考虑是否处于夏令时期间。 与datetime模块集成:pytz库可以与Python标准库中的datetime模块一起使用,以确保在涉及不同时区的场景中时间的准确性。
VB程序实例-为程序添加快捷键.zip
画2、3维的隐含数
pytz库的主要功能 时区转换:pytz库允许用户将时间从一个时区转换到另一个时区,这对于处理跨国业务或需要处理多地时间的数据分析尤为重要。 历史时区数据支持:pytz库不仅提供了当前的时区数据,还包含了历史上不同时期的时区信息,这使得它在处理历史数据时具有无与伦比的优势。 夏令时处理:pytz库能够自动处理夏令时的变化,当获取某个时区的时间时,它会自动考虑是否处于夏令时期间。 与datetime模块集成:pytz库可以与Python标准库中的datetime模块一起使用,以确保在涉及不同时区的场景中时间的准确性。
加载虚拟光驱并打开ma软件.
VB程序实例-图像的缩小.zip
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
推荐几个国外 Java 大佬的优质博客.docx
Arduino一分钟快速在vs code 编译开发Arduino
强网杯objective-c可视化演示5中的常见排序算法,包括选择排序、气泡排序、插入排序、快速排序、堆排序等.zip
VB程序实例,可供参考学习使用,希望对你有所帮助
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
强网杯