java语言实现用户注册和登录

Python021

java语言实现用户注册和登录,第1张

//这个是我写的,里面有连接数据库的部分。你可以拿去参考一下

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

}

}

}