实训八 RFID刷卡消费程序编程练习

一、实训目的

1、练习刷卡操作中自动寻卡、人工寻卡的编程实现方法。

2、练习读写RFID卡存储的信息、读写数据库信息、验证卡是否有效等方面的编程方法。

二、实训设备

1、笔记本电脑,Windows 7或Win10操作系统,Java、Eclipse、Windowbuilder、MySQL等软件环境。

2、BC750AS RFID读写器,MF1 空白卡。

三、程序功能简介

1、具有自动寻卡、人工寻卡两种刷卡方式,自动记录刷卡情况。

2、刷卡过程中,根据数据库中记录的信息对卡中的信息进行识别和判断,是否为合法卡。如果是合法卡,则对卡中的次数值进行减值操作,同时对数据库发卡信息表中对应记录的值进行减值操作,然后在刷卡信息表中添加一条刷卡记录。

3、对同一个卡,具有防止重复刷卡的误操作功能。

四、实训内容和步骤

1、新建数据库表tblswipe,有如下3个字段:

swipeid,int     //设置为自动增长,关键字  

cardid,varchar,10

swipetime,varchar,20

 

java 刷卡 源码 刷卡式编程_数据库

 

2、在eclipse中新建SWT项目

进入Eclipse后,单击菜单“文件--新建--项目…”,或在起始页中单击“新建项目…”,打开新建项目窗口,选择“WindowBuilder—SWT Designer—SWT/JFace Java Project”,然后单击下一步,输入项目名称:SwipeCardTest20160211XX,然后单击“确定”按钮。

3、新建应用程序窗口

选中新建项目中的“src”,单击菜单“文件—新建—其他…”,打开“新建”对话框,选择“SWT—Application Window”,单击“下一步”,打开“New SWT Application”对话框。

 

java 刷卡 源码 刷卡式编程_数据库_02

 

4、设计程序界面

从解决方案资源管理器窗口中双击“SwipeCard.java”,选择Design视图,先修改窗口的标题为“SwipeCardTest 16物联网1班 xxx 20160211xx”,然后从工具箱中添加控件: 4个标签(label),3个文本框(Text)和5个按钮(button),修改控件的名称(Name)和显示的文本(text),进行适当的布局调整,使各控件整齐美观。

 

java 刷卡 源码 刷卡式编程_java_03

 

 

 

5、拷贝库文件夹(lib),添加MySQL数据库驱动程序

在项目中新建文件夹(lib),将其中的库文件(12个)拷贝到该文件夹中,并将mysql-connector-java-5.1.35.jar和jna_.4.2.2.jar也拷贝到该文件夹中,将项目库文件的引用位置改为项目中lib文件夹中的库文件。

6、新建数据模型实体类CardEntity.java,属性与表的字段名称和类型相对应,每个属性有get和set两个方法函数。

 

java 刷卡 源码 刷卡式编程_java 刷卡 源码_04

 

 

 

java 刷卡 源码 刷卡式编程_数据库_05

  

7、新建数据模型实体类SwipeEntity.java,属性与表的字段名称和类型相对应,每个属性有get和set两个方法函数。

  

java 刷卡 源码 刷卡式编程_单击事件_06

 

8、新建数据库连接类BaseDao.java,有一个方法函数getConnection( )。

 

java 刷卡 源码 刷卡式编程_单击事件_07

 

 

 

9、新建数据访问对象类CardDao.java,有insertCard( )、queryCard( )和updateCard( )三个方法函数。

 

java 刷卡 源码 刷卡式编程_数据库_08

 

 

 

java 刷卡 源码 刷卡式编程_java_09

 

 

 

java 刷卡 源码 刷卡式编程_单击事件_10

 

 

 

java 刷卡 源码 刷卡式编程_数据库_11

 

10、新建数据库访问对象类SwipeDao.java,包括插入记录insertSwipe( )、queryCard( )两个方法函数。

 

java 刷卡 源码 刷卡式编程_java 刷卡 源码_12

 

 

 

java 刷卡 源码 刷卡式编程_RFID_13

 

 

 

java 刷卡 源码 刷卡式编程_数据库_14

 

11、编写“查询发卡记录”按钮单击事件监听程序

 

java 刷卡 源码 刷卡式编程_java 刷卡 源码_15

 

 

12、编写“查询刷卡记录”按钮单击事件监听程序

 

java 刷卡 源码 刷卡式编程_java_16

 

13、创建类文件DataConvert.java,用于实现字符串和日期变量相互转换。

 

java 刷卡 源码 刷卡式编程_java 刷卡 源码_17

 

 

14、创建类文件AutoSwipeTask.java,继承父类TimerTask,其中有一个run()函数,是定时器Timer每隔2000毫秒执行该函数一次。

 

java 刷卡 源码 刷卡式编程_数据库_18

 

 

15、新建装载DLL和实现刷卡操作的类LoadDll.java,包括连接Connect()、断开连接disConnect()、刷卡swipeCard()、出错提示音errorBeep()等方法函数,其中代码大部分可以从实训七的代码中复制)。

刷卡swipeCard( )方法函数中,刷卡过程包括以下6个步骤:

(1) 寻卡,读取卡号。

(2) 从数据库中查找是否存在发卡信息。

(3) 根据发卡信息,判断卡余额(次数)是否大于0,是否在有效期内。

(4) 卡中的余额值减1。

(5) 数据库中发卡信息余额减1。

(6) 添加一条刷卡记录。

 

java 刷卡 源码 刷卡式编程_数据库_19

 

 

java 刷卡 源码 刷卡式编程_java 刷卡 源码_20

 

 

java 刷卡 源码 刷卡式编程_RFID_21

 

 

java 刷卡 源码 刷卡式编程_单击事件_22

 

 

java 刷卡 源码 刷卡式编程_java_23

 

 

java 刷卡 源码 刷卡式编程_java 刷卡 源码_24

 

 

java 刷卡 源码 刷卡式编程_RFID_25

 

 

java 刷卡 源码 刷卡式编程_单击事件_26

 

 

java 刷卡 源码 刷卡式编程_单击事件_27

 

 

java 刷卡 源码 刷卡式编程_数据库_28

 

 

java 刷卡 源码 刷卡式编程_数据库_29

 

16、在SwipeCard.java中,编写窗口激活(shellActivated)时执行的代码,该段代码的功能是打开RFID读写器。

(1)类级的变量

 

java 刷卡 源码 刷卡式编程_java 刷卡 源码_30

 

(2)输入窗口激活和关闭时执行的代码

 

java 刷卡 源码 刷卡式编程_数据库_31

 

(3)输入“自动寻卡”按钮的单击事件监听程序,启动定时器,每2秒执行一次timerTask(任务),并实现按钮互锁。

 

java 刷卡 源码 刷卡式编程_java_32

 

 

(4)输入“停止寻卡”按钮的单击事件监听程序,关闭定时器,显示返回的信息。

 

java 刷卡 源码 刷卡式编程_java 刷卡 源码_33

 

 

(5)输入“手动寻卡”按钮的单击事件监听程序,调用刷卡程序,并显示返回的信息。

 

java 刷卡 源码 刷卡式编程_java 刷卡 源码_34

 

 

17、运行调试

录入编辑完成后,单击工具栏中的“启动”按钮,测试各个按钮的功能,检查程序的运行情况。调试完成后,将源程序(解决方案)压缩为SwipeCardTest20160211XX.rar,作为实训题的附件上传。

附:(1)源程序目录架构

java 刷卡 源码 刷卡式编程_java 刷卡 源码_35

 

 (2)运行效果图

 

java 刷卡 源码 刷卡式编程_单击事件_36

 

 

五、实训总结

1、本次实训是如何实现自动刷卡操作的?

2、一次成功的刷卡过程主要进行哪些操作?

3、简述本次实训的收获。

本类资料全部为博主在开展项目化教学过程中的部分原创作品,用于指导学生进行项目实训。