问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

利用JDBC数据库技术,参考API文档,编写一个简单的登陆程序。程序运行的界面如下图所示:要求:

发布网友 发布时间:2022-05-02 03:40

我来回答

1个回答

热心网友 时间:2022-05-02 05:09

数据库你自己建吧,这个很容易的。我数据库是房子C盘根目录的,叫stu.mdb(用2003建的)。你要是用2007建的,可以打开另存为2000-2003格式的就可以了。sql和数据库位置可以在代码里改。
代码:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class TestGra extends JFrame {

private Connection conn;

public TestGra() {
init();
pack();
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

private void init() {
JLabel lblUserName = new JLabel("用户名");
final JTextField txtUserName = new JTextField();

JLabel lblPassword = new JLabel("密码");
final JPasswordField pwfPassword = new JPasswordField();

JButton btnLogin = new JButton("登陆");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getConnect();
if (conn == null) {
JOptionPane.showMessageDialog(null, "数据库链接失败");
return;
}

boolean isOK = checkUser(txtUserName.getText().trim(),
new String(pwfPassword.getPassword()));
if (isOK) {
JOptionPane.showMessageDialog(null, "登陆成功");
} else {
JOptionPane.showMessageDialog(null, "用户名或密码不正确");
}
closeConnect();
}
});
JButton btnCancel = new JButton("退出");
btnCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});

GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);

GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup();
hGroup.addGroup(layout.createParallelGroup().addComponent(lblUserName)
.addComponent(lblPassword));
hGroup.addGroup(layout
.createParallelGroup()
.addComponent(txtUserName, GroupLayout.PREFERRED_SIZE, 180,
GroupLayout.PREFERRED_SIZE)
.addComponent(pwfPassword, GroupLayout.PREFERRED_SIZE, 180,
GroupLayout.PREFERRED_SIZE)
.addGroup(
Alignment.CENTER,
layout.createSequentialGroup().addComponent(btnLogin)
.addComponent(btnCancel)));
layout.setHorizontalGroup(hGroup);

GroupLayout.SequentialGroup vGroup = layout.createSequentialGroup();
vGroup.addGap(15);
vGroup.addGroup(layout
.createParallelGroup(GroupLayout.Alignment.CENTER)
.addComponent(lblUserName)
.addComponent(txtUserName, GroupLayout.PREFERRED_SIZE, 25,
GroupLayout.PREFERRED_SIZE));
vGroup.addGroup(layout
.createParallelGroup(GroupLayout.Alignment.CENTER)
.addComponent(lblPassword)
.addComponent(pwfPassword, GroupLayout.PREFERRED_SIZE, 25,
GroupLayout.PREFERRED_SIZE));
vGroup.addGroup(layout
.createParallelGroup(GroupLayout.Alignment.CENTER)
.addComponent(btnLogin).addComponent(btnCancel));
layout.setVerticalGroup(vGroup);
}

/**
* 打开连接
*/
private void getConnect() {

if (conn != null) {
return;
}

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=c:/stu.mdb", "", "");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}

private boolean checkUser(String name, String pwss) {
String userName = "";
Statement stmt = null;
try {
stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(
"SELECT username FROM userinfo WHERE username = '" + name + "' AND password = '" + pwss +"'");
if (rs.next()) {
userName = rs.getString(1).trim();
}
stmt.close();

if (userName.equals("")) {
return false;
} else {
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}

return false;
}

/**
* 关闭链接
*/
private void closeConnect() {
try {
conn.close();
conn = null;
} catch (SQLException e) {
e.printStackTrace();
}
}

/**
* @param args
*/
public static void main(String[] args) {
new TestGra().setVisible(true);
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怀孕错过了糖筛怎么办 糖筛有哪些注意事项 怀孕几个月查唐筛 蔡家沟镇慈云寺 哈佳高铁高楞站多少平方米位置在那 超威电池生产日期怎么看 超威电池寿命一般多长时间 华晨宇鸟巢四面台10w+秒罄!!火星演唱会舞台概念图震撼发布! 手机连接160wifi电脑蓝屏使用160WiFi遇到问题应该如何解决 为什么手机wifi总是刚开启,锁屏就掉了。wifi设置里的休眠模式也是永久的... 建行卡为什么不能网上转账 学校发我们的建设银行卡一定要激活吗? 我打电话查余额说输入取钱密码... MH4G如何手动打猫探险队? 怪物猎人2G猫探险队 有一个系列的书叫什么猫侦探,是一只猫咪拿着放大镜,穿着侦探服 梦见老公把身上烂衣服脱了 怪物猎人x 猫探险队怎么出上位素材 猫咪侦探一脸严肃:愚蠢的人类是不是又在说我坏话 梦见老公把自己的外套穿在里面回家、我很生气叫他脱下来、我要穿、他也答应了,这梦是什么意思啊? 《怪物猎人2G》猫探险怎么出来? 怪物猎人猫探险去哪好 - 信息提示 梦见老公边跑边脱衣服,然后又停下来穿上其他衣服 名侦探猫咪事件薄的人物介绍 日本有关猫侦探的动漫电影 怪物猎人p3 猫咪探险 猫咪窥探主人洗澡,到底是因为什么 猫咪探秘:它们有哪些奇特的天分 怪物猎人2G浮岳龙的体液能不能让猫探险探到 前天帮猫探热的时候被咬了一口,猫每年都有打疫苗,当时伤口一个是插进手里,一个是贯穿的,插进手里的伤 广州猫探信息科技有限公司怎么样? 有谁用过猫探旅行?猫探旅行好用吗? 硬盘的那个电源的接口烧了可以修吗 电脑主板和硬盘烧了,还能修吗? 想从事数据分析师,可以不考CPDA吗? 资料员和统计员的区别 统计专业的就业如何? 统计员和会计的区别是什么 QQ异地如何修改密码保护 统计人员是做什么的?具体涉及到的工作。 如何用Q密保问题修改Q密保问题 工厂中的统计员工作是什么,工作难吗 怎么修改QQ密保 要具体网站 给个修改QQ密码的网址,我知道密保,急用! 梦见树上结满葡萄摘下来吃没味道 沙棘果油可以直接敷脸吗 魅族mx4por的nfc是不是可以当门卡用? 怎么弄? 长期涂抹高比例沙棘果油会不会染色,脸上留下印子 脸上抹沙棘果油脸变黑起疙瘩正常吗?要多久才能见效 魅族4pro模拟门禁卡,用NFC模拟。有人研究过吗? 怎样用手机当门禁卡? 请问大专毕业能考公务员吗??