package 测试;
//**********************本程序用来连接数据库,出题,判断用户是否合法***********************************
import java.sql.*;
import java.util.Random;
import javax.swing.JOptionPane;
public class sql {
public static int EQ=10;//题目数量,添加题目在此修改数量
public static int NU=10;//用户数量,添加用户在此修改数量
public void getSelect(String k1,String k2,String k3)//在这里加形参!!!!!!!
{
int qq=0;//用来进行用户判断的中间值!
Connection conn = null;
String sql1,sql11,sqlA,sqlB,sqlC,sqlD,sqlzz;
String sqlA1,sqlB1,sqlC1,sqlD1,sqlzz1;
String sqlid,sqlmm,sqlid1,sqlmm1,sqlmz,sqlmz1;//登陆页面的sql语句!!!!
String ID1,US1;
String m1[]=new String[EQ];
String AA[]=new String[EQ];
String BB[]=new String[EQ];
String CC[]=new String[EQ];
String DD[]=new String[EQ];
String ZZ[]=new String[EQ];
String ID[]=new String[NU];//登陆账户
String MM[]=new String[NU];//登陆密码
String MZ[]=new String[NU];//登陆姓名
int q=0;//计算次数
int qA=0;
int qB=0;
int qC=0;
int qD=0;
int qZZ=0;
//*********************************以上为主函数初始化变量*************************************************//
//*********************************以下为JDBC的连接程序*******************************************************//
try {
Class.forName("com.mysql.jdbc.Driver"); //加载MYSQL JDBC驱动程序
//Class.forName("org.gjt.mm.mysql.Driver");
// System.out.println("Success loading Mysql Driver!");
}
catch (Exception e) {
System.out.print("Error loading Mysql Driver!");
e.printStackTrace();//在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解)”
}
try {
DriverManager.getConnection(
"jdbc:mysql://localhost:3306/(数据库名字)?useSSL=false","root","(密码)");
//连接URL为 jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码
// System.out.println("Success connect Mysql server!");
// 一个Connection代表一个数据库连接
// 下面语句之前就要先创建javademo数据库
String url = "jdbc:mysql://localhost:3306/test20?user=root&password=990210qwe&root=true&characterEncoding=UTF8&useSSL=false";
//这里在URL最后加入&useSSL=false就不会报错
conn = DriverManager.getConnection(url);
// Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
Statement stmt = conn.createStatement();
//********************************不重复随机数生成*************************************************************
Random rand = new Random();
int b=0;
int a[] = new int[11];
for(int i=0; i<EQ; i++)
{
a[i]=rand.nextInt(10) + 1;
//System.out.print(a[i]);
for(int j = 0;j <i;j++)
{
if(a[i] == a[j])
{
a[i]=rand.nextInt(10)+1;
j=-1;
// System.out.println(j);
}
}
b=a[i];
//System.out.println(b);
//***********************随机出题系统*****将所有的结果先存进对应的数组中**************************************************************************88
String a1 = String.valueOf(b);
sql1="select name from test where NO=";//查询语句
sqlA="select A from test where NO=";//A
sqlB="select B from test where NO=";//B
sqlC="select C from test where NO=";//C
sqlD="select D from test where NO=";//D
sqlzz="select reply from test where NO=";//正确答案
sql11=sql1+a1;
sqlA1=sqlA+a1;
sqlB1=sqlB+a1;
sqlC1=sqlC+a1;
sqlD1=sqlD+a1;
sqlzz1=sqlzz+a1;
ResultSet result1 = stmt.executeQuery(sql11);
while (result1.next())
{
m1[q]=result1.getString(1);
}
q++;
ResultSet resultA = stmt.executeQuery(sqlA1);
while (resultA.next()) {
AA[qA]=resultA.getString(1);
}
qA++;
ResultSet resultB = stmt.executeQuery(sqlB1);
while (resultB.next()) {
BB[qB]=resultB.getString(1);
}
qB++;
ResultSet resultC = stmt.executeQuery(sqlC1);
while (resultC.next()) {
CC[qC]=resultC.getString(1);
}
qC++;
ResultSet resultD = stmt.executeQuery(sqlD1);
while (resultD.next()) {
DD[qD]=resultD.getString(1);
}
qD++;
ResultSet resultZ = stmt.executeQuery(sqlzz1);
while (resultZ.next()) {
//while 看着没啥用,但是不能删
ZZ[qZZ]=resultZ.getString(1);
}
qZZ++;
}
//**************************************随机出题结束*****************************************************************
//********************************将所有的用户名以及密码导入数组*****************************************
for(int k=0;k<NU;k++)
{
String a2 = String.valueOf(k);
sqlid1="select ID from user where NO=";
sqlid=sqlid1+a2;
ResultSet resultid = stmt.executeQuery(sqlid);
while (resultid.next()) {
//while 看着没啥用,但是不能删
ID[k]=resultid.getString(1);
}
}//ID方面的
for(int j=0;j<NU;j++)
{
String a3 = String.valueOf(j);
sqlmm1="select MM from user where NO=";
sqlmm=sqlmm1+a3;
ResultSet resultmm = stmt.executeQuery(sqlmm);
while (resultmm.next()) {
//while 看着没啥用,但是不能删
MM[j]=resultmm.getString(1);
}
}//密码方面的
for(int u1=0;u1<NU;u1++)
{
String a1=String.valueOf(u1);
sqlmz1="select name from user where NO=";
sqlmz=sqlmz1+a1;
ResultSet resultmz = stmt.executeQuery(sqlmz);
while (resultmz.next()) {
//while 看着没啥用,但是不能删
MZ[u1]=resultmz.getString(1);
}
}//用户姓名方面的
ID1=k1;
US1=k2;//为了将用户名以及ID导入做题界面
//*********************************在此处进行判断和生成GUI5*********************************************
for(int u=0;u<NU;u++)
{
if(k1.equals(ID[u]))
{
if(k2.equals(MZ[u]))
{
if(k3.equals(MM[u]))
{
qq=1;
luru222 luru = new luru222(); // 用于将判断后的用户名传输至成绩查询表中
luru.idin(k1);
GUI5 exam=new GUI5();
exam.GUI1(m1,AA,BB,CC,DD,ZZ,ID1,US1);
break;
}
}
}
}
if(qq!=1)//判断用户名正确,不正确就弹错误提示!!!!
JOptionPane.showMessageDialog( null,"用户名ID或者密码错误.", "通知", JOptionPane.ERROR_MESSAGE);
}
catch(SQLException e)
{
e.printStackTrace();
}finally{
}
}
public void getSelect2(String k1,String k2,String k3)//在这里加形参!!!!!!!
{
yeahxbf
- 粉丝: 746
- 资源: 6
最新资源
- 基于PID控制器的电动汽车充放电系统的Simulink建模与仿真 包括程序操作录像+说明+参考paper 使用matlab202
- 088 配电网重构matlab.含sop配电网重构 故障6-7 yalmip 二阶锥
- UE5大纲视图深度解析:操作技巧与实用指南
- 最新价值5000元的V2M2引擎传奇源码2024BLUE升级版
- 13-基于二阶锥规划的主动配电网最优潮流求解.rar
- 091孤岛划分模型-外文文献matlab.rar
- Python函数的艺术:定义、调用与高级应用
- 093改进算法IHAOAVOA天鹰优化算法和非洲秃鹫混合优化算法(Matlab代码实现).rar
- 线性参变(LPV)+输出反馈鲁棒模型预测控制(OFRMPC)+路径跟踪(PTC),目前能实现20-25m s的变速单移线,更多工
- 飞思卡尔仿真器 编程器 烧录器软件PROGDSC,读写MC56F系列芯片,支持的芯片列表见第三图
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论10