import java.awt.*
import javax.swing.*
import java.awt.event.*
import java.sql.*
class LoginFrm extends JFrame implements ActionListener// throws Exception
{
JLabel lbl1 = new JLabel("用户名:")
JLabel lbl2 = new JLabel("密码:")
JTextField txt = new JTextField(5)
JPasswordField pf = new JPasswordField()
JButton btn1 = new JButton("确定")
JButton btn2 = new JButton("取消")
public LoginFrm() {
this.setTitle("登陆")
JPanel jp = (JPanel) this.getContentPane()
jp.setLayout(new GridLayout(3, 2, 5, 5))
jp.add(lbl1)
jp.add(txt)
jp.add(lbl2)
jp.add(pf)
jp.add(btn1)
jp.add(btn2)
btn1.addActionListener(this)
btn2.addActionListener(this)
}
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == btn1) {
try {
Class.forName("com.mysql.jdbc.Driver")// mysql数据库
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost/Car_zl", "root", "1")// 数据库名为Car_zl,密码为1
System.out.println("com : "+ con)
Statement cmd = con.createStatement()
String sql = "select * from user where User_ID='"
+ txt.getText() + "' and User_ps='"
+ pf.getText() + "'"
ResultSet rs = cmd
.executeQuery(sql)// 表名为user,user_ID和User_ps是存放用户名和密码的字段名
if (rs.next()) {
JOptionPane.showMessageDialog(null, "登陆成功!")
} else
JOptionPane.showMessageDialog(null, "用户名或密码错误!")
} catch (Exception ex) {
}
if (ae.getSource() == btn2) {
System.out.println("1111111111111")
//txt.setText("")
//pf.setText("")
System.exit(0)
}
}
}
public static void main(String arg[]) {
JFrame.setDefaultLookAndFeelDecorated(true)
LoginFrm frm = new LoginFrm()
frm.setSize(400, 200)
frm.setVisible(true)
}
}
性能测试中示例代码使用java批量注册登录账户。性能测试过程中所需的测试数据,以登录为例,为了更真实的模 批量读取注册。
Java登录注册功能实现代码解析,文中通示例代码,每个用户信息都是唯一的,所以可以借助Set的特性来操作用户信息的存放。
//User 用户的基本信息,也是USERINFO表中的3个列package
登陆判断
public class User {
private String name
private String loginname
private String
loginpsw
public String getName() {
return name
}
public
void setName(String name) {
this.name = name
}
public String
getLoginname() {
return loginname
}
public void
setLoginname(String loginname) {
this.loginname =
loginname
}
public String getLoginpsw() {
return
loginpsw
}
public void setLoginpsw(String loginpsw)
{
this.loginpsw = loginpsw
}
}
//用于注册和登陆的小小代码块
package
登陆判断
import java.util.Scanner
public class In {
public static User getUser(){
User u = new User()
Scanner sc =
new
Scanner(System.in)
System.out.println("请输入登陆名")
u.setLoginname(sc.nextLine())
System.out.println("请输入密码")
u.setLoginpsw(sc.nextLine())
return
u
}
public static User registerUser(){
User u = new
User()
Scanner sc = new
Scanner(System.in)
System.out.println("请注册用户名名")
u.setName(sc.nextLine())
System.out.println("请注册登陆名")
u.setLoginname(sc.nextLine())
System.out.println("请注册密码")
u.setLoginpsw(sc.nextLine())
return
u
}
}
//登陆时的检查,判断登陆名和密码是否正确,正确则返回 用户名
package 登陆判断
import java.sql.Connection
import java.sql.DriverManager
import
java.sql.PreparedStatement
import java.sql.ResultSet
import
java.sql.SQLException
public class Check {
public static void checkUser(User u)
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver")
} catch
(ClassNotFoundException e) {
e.printStackTrace()
}
String
url = "jdbc:oracle:thin:@localhost:1521:orcl"
String user =
"scott"
String password = "tiger"
Connection conn =
null
ResultSet rs = null
PreparedStatement pst =
null
String sql = "Select name from USERINFO where loginname = ? and
loginpsw = ? "
try {
conn = DriverManager.getConnection(url, user,
password)
pst = conn.prepareStatement(sql)
pst.setString(1,
u.getLoginname())
pst.setString(2,u.getLoginpsw())
rs =
pst.executeQuery()
while(rs.next()){
u.setName(rs.getString(1))
}
}
catch (SQLException e) {
e.printStackTrace()
}finally{
try
{
rs.close()
pst.close()
conn.close()
} catch
(SQLException e)
{
e.printStackTrace()
}
}
if(u.getName() == null ||
u.getName().isEmpty()){
System.out.println("登陆失败")
}else{
System.out.println("欢迎"+u.getName()+"登陆")
}
}
}
//注册界面,要判断 登陆名是否有重复,有重复则注册失败。有点小疑问,已用注释标出来
package 登陆判断
import java.sql.Connection
import java.sql.DriverManager
import
java.sql.PreparedStatement
import java.sql.ResultSet
import
java.sql.SQLException
import java.sql.Statement
public class Register {
public static void registUser(User u){
try
{
Class.forName("oracle.jdbc.driver.OracleDriver")
} catch
(ClassNotFoundException e) {
e.printStackTrace()
}
String
url = "jdbc:oracle:thin:@localhost:1521:orcl"
String user =
"scott"
String password = "tiger"
Connection conn =
null
String sql = "Insert Into USERINFO
values(?,?,?)"
PreparedStatement pst =
null
//判断登陆名是否已经存在
Statement s = null
ResultSet rs =
null
String sql_ck = "Select LOGINNAME FROM USERINFO"
try
{
conn = DriverManager.getConnection(url, user, password)
pst =
conn.prepareStatement(sql)
pst.setString(1,
u.getName())
pst.setString(2, u.getLoginname())
pst.setString(3,
u.getLoginpsw())
//判断登陆名是否已经存在
s =
conn.createStatement()
rs =
s.executeQuery(sql_ck)
while(rs.next()){//为什么用 rs.getString(2)会提示
无效的索引呢
if( rs.getString("LOGINNAME").equals(u.getLoginname())
){
System.out.println("登陆名已经存在,注册失败")
break
}else{
pst.executeUpdate()
System.out.println("注册成功")
break
}
}
}
catch (SQLException e) {
e.printStackTrace()
}finally{
try
{
rs.close()
pst.close()
s.close()
conn.close()
}
catch (SQLException e)
{
e.printStackTrace()
}
}
}
}
//main界面//
//数据库中表的结构式这样
//name(用户名,用于显示),
//loginname(登录名,即登陆时输入的ID)
//loginpsw(登陆时输入的密码)
package
登陆判断
import java.util.Scanner
public class Test {
public static void main(String[] args) {
int chos = 0
Scanner sc = new
Scanner(System.in)
System.out.println("\t\t登陆请按1\t\t注册请按2")
chos =
sc.nextInt()
switch(chos){
case 1:
Check.checkUser(In.getUser())break
case 2:
Register.registUser(In.registerUser())break
default:
System.out.println("请输入正确的选择")break
}
}
}