java链接mysql数据库实现登陆如何验证?

java链接mysql数据库实现登陆如何验证?,第1张

//这是我以前写的核对数据库实现登陆的方法,你只看jdbc部分就好,我还特地给你加了点注释\x0d\x0aString sql = "select username,password from account"\x0d\x0aString user = request.getParameter("user")\x0d\x0aString pass = request.getParameter("password")\x0d\x0aint j = 0\x0d\x0aConnection conn = null\x0d\x0aPreparedStatement ps = null\x0d\x0aResultSet rs = null\x0d\x0atry {\x0d\x0aconn = JDBCTools1.getConnection()\x0d\x0aps = conn.prepareStatement(sql)\x0d\x0ars = ps.executeQuery()\x0d\x0a//从表中查询获取所有账户的用户名&密码的ResultSet 对象\x0d\x0awhile(rs.next()){\x0d\x0aint i = 0\x0d\x0a\x0d\x0aString username[] = new String[10]//用户名数组\x0d\x0aString password[] = new String[10]//密码数组\x0d\x0ausername[i] = rs.getString(1)\x0d\x0apassword[i] = rs.getString(2)\x0d\x0aif(user.equals(username[i])&&pass.equals(password[i])){//比对\x0d\x0aresponse.getWriter().print("you are welcome!")\x0d\x0aj++\x0d\x0a}else if(user.equals(username[i])&&!pass.equals(password[i])){\x0d\x0aresponse.getWriter().println("the realy password is :"+ username[i] +","+password[i]+"\r\n")\x0d\x0aresponse.getWriter().println("and you password is :"+user +","+pass+" :so the username or password may not right")\x0d\x0aj++\x0d\x0a}else{\x0d\x0acontinue\x0d\x0a}\x0d\x0ai++\x0d\x0a}\x0d\x0aif(j == 0){\x0d\x0aresponse.getWriter().println("Your username may not be properly")\x0d\x0a}\x0d\x0a} catch (Exception e) {\x0d\x0ae.printStackTrace()\x0d\x0a}finally{\x0d\x0aJDBCTools1.release(rs, ps, conn)\x0d\x0a}\x0d\x0a//这是我JDBCTools的getConnection方法\x0d\x0agetConnection{\x0d\x0aString driverClass = oracle.jdbc.driver.OracleDriver\x0d\x0aString jdbcUrl = jdbc:oracle:thin:@localhost:1521:orcl\x0d\x0a//你的数据库的用户名密码\x0d\x0aString user = null\x0d\x0aString password = null\x0d\x0a// 通过反射创建Driver对象\x0d\x0aClass.forName(driverClass)\x0d\x0areturn DriverManager.getConnection(jdbcUrl, user, password)}\x0d\x0a//这是我JDBCTools的release方法\x0d\x0apublic static void release(ResultSet rs, Statement statement,\x0d\x0aConnection conn) {\x0d\x0aif (rs != null) {\x0d\x0atry {\x0d\x0ars.close()\x0d\x0a} catch (SQLException e) {\x0d\x0ae.printStackTrace()\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0aif (statement != null) {\x0d\x0atry {\x0d\x0astatement.close()\x0d\x0a} catch (Exception e2) {\x0d\x0ae2.printStackTrace()\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0aif (conn != null) {\x0d\x0atry {\x0d\x0aconn.close()\x0d\x0a} catch (Exception e2) {\x0d\x0ae2.printStackTrace()\x0d\x0a}\x0d\x0a}\x0d\x0a}

//这是我以前写的核对数据库实现登陆的方法,你只看jdbc部分就好,我还特地给你加了点注释

String sql = "select username,password from account"

String user = request.getParameter("user")

String pass = request.getParameter("password")

int j = 0

Connection conn = null

PreparedStatement ps = null

ResultSet rs = null

try {

conn = JDBCTools1.getConnection()

ps = conn.prepareStatement(sql)

rs = ps.executeQuery()

//从表中查询获取所有账户的用户名&密码的ResultSet 对象

while(rs.next()){

int i = 0

String username[] = new String[10]//用户名数组

String password[] = new String[10]//密码数组

username[i] = rs.getString(1)

password[i] = rs.getString(2)

if(user.equals(username[i])&&pass.equals(password[i])){//比对

response.getWriter().print("you are welcome!")

j++

}else if(user.equals(username[i])&&!pass.equals(password[i])){

response.getWriter().println("the realy password is :"+ username[i] +","+password[i]+"\r\n")

response.getWriter().println("and you password is :"+user +","+pass+" :so the username or password may not right")

j++

}else{

continue

}

i++

}

if(j == 0){

response.getWriter().println("Your username may not be properly")

}

} catch (Exception e) {

e.printStackTrace()

}finally{

JDBCTools1.release(rs, ps, conn)

}

//这是我JDBCTools的getConnection方法

getConnection{

String driverClass = oracle.jdbc.driver.OracleDriver

String jdbcUrl = jdbc:oracle:thin:@localhost:1521:orcl

//你的数据库的用户名密码

String user = null

String password = null

// 通过反射创建Driver对象

Class.forName(driverClass)

return DriverManager.getConnection(jdbcUrl, user, password)}

//这是我JDBCTools的release方法

public static void release(ResultSet rs, Statement statement,

Connection conn) {

if (rs != null) {

try {

rs.close()

} catch (SQLException e) {

e.printStackTrace()

}

}

if (statement != null) {

try {

statement.close()

} catch (Exception e2) {

e2.printStackTrace()

}

}

if (conn != null) {

try {

conn.close()

} catch (Exception e2) {

e2.printStackTrace()

}

}

}

这是我以前写的系统登录框的login

package java1

import java.awt.*

import java.awt.event.*

import java.sql.*

import java.util.*

import javax.swing.*

import javax.swing.event.*

import java.awt.Rectangle

import java.awt.Font

public class login extends JFrame

{

public login() {

try {

jbInit()

}

catch (Exception ex) {

ex.printStackTrace()

}

}

public static void main(String[] args)

{

login frm=new login()

frm.setBounds(300,200,300,260)

frm.setVisible(true)

}

private void jbInit() throws Exception {

this.getContentPane().setLayout(null)

jLabel1.setForeground(Color.red)

jLabel1.setText("用户名")

jLabel1.setBounds(new Rectangle(25, 72, 68, 29))

jButton2.setBounds(new Rectangle(142, 159, 81, 30))

jButton2.setText("取消")

jButton2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

jButton2_actionPerformed(e)

}

})

jButton1.setBounds(new Rectangle(38, 159, 81, 29))

jButton1.setText("确定")

jButton1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

jButton1_actionPerformed(e)

}

})

jTextField1.setBounds(new Rectangle(109, 79, 136, 23))

jPasswordField1.setBounds(new Rectangle(109, 115, 136, 23))

this.getContentPane().add(jLabel1)

jLabel3.setFont(new java.awt.Font("隶书", Font.PLAIN, 24))

jLabel3.setText("学 生 考 试 系 统")

jLabel3.setBounds(new Rectangle(22, 15, 268, 47))

this.getContentPane().add(jTextField1)

this.getContentPane().add(jLabel2)

this.getContentPane().add(jButton2)

this.getContentPane().add(jButton1)

this.getContentPane().add(jLabel3)

this.getContentPane().add(jPasswordField1)

jLabel2.setForeground(Color.red)

jLabel2.setText("密码")

jLabel2.setBounds(new Rectangle(26, 112, 68, 29))

}

JLabel jLabel1 = new JLabel()

JLabel jLabel2 = new JLabel()

JTextField jTextField1 = new JTextField()

JButton jButton1 = new JButton()

JButton jButton2 = new JButton()

JLabel jLabel3 = new JLabel()

JPasswordField jPasswordField1 = new JPasswordField()

main2 wo=new main2()

int sum

//判断权限的方法

public void success()

{

try{

ResultSet rs1

String s1="select * from 管理权限 where name='"+jTextField1.getText()+"' and password='"+jPasswordField1.getText()+"'"

rs1=sqlcx.Rs_jiluji(s1)

rs1.first()

sum=Integer.parseInt((String)(rs1.getString(3)))

System.out.println(sum)

very()

}

catch(Exception c){System.out.println("success error")}

}

//根据权限设置窗口

public void very()

{

if (sum==1)

{JOptionPane.showOptionDialog(this, "您现在是以教师权限登陆", "登陆信息"

, JOptionPane.DEFAULT_OPTION,

JOptionPane.ERROR_MESSAGE,

null, null, null)

}

else

{

JOptionPane.showOptionDialog(this, "你现在是以学生权限登陆", "登陆信息"

, JOptionPane.DEFAULT_OPTION,

JOptionPane.ERROR_MESSAGE,

null, null, null)

wo.jButton2.setVisible(false)

wo.jButton3.setVisible(false)

wo.jButton4.setVisible(false)

wo.jButton5.setVisible(false)

wo.jButton6.setVisible(false)

wo.jButton7.setVisible(false)

wo.jButton8.setVisible(false)

wo.jMenu2.setVisible(false)

wo.jMenu3.setVisible(false)

wo.jMenu4.setVisible(false)

}

}

public void jButton1_actionPerformed(ActionEvent e)

{

//判断用户名是否为空

if (jTextField1.getText().length() == 0) {

JOptionPane.showOptionDialog(this, "用户名不能为空", "错误信息"

, JOptionPane.DEFAULT_OPTION,

JOptionPane.ERROR_MESSAGE,

null, null, null)

}

//判断密码是否为空

else if (jPasswordField1.getText().length()==0)

{

JOptionPane.showOptionDialog(this,"密码不能为空", "错误信息"

, JOptionPane.DEFAULT_OPTION,

JOptionPane.ERROR_MESSAGE,

null, null, null)

}

else

{

try

{

ResultSet rs//声明记录集

String sql="select * from 管理权限 where name='"+jTextField1.getText()+"'"

rs = sqlcx.Rs_jiluji(sql)

if (rs.next())

{

if(jPasswordField1.getText().equals(rs.getString(2)))

{

success()

wo.setBounds(60,40,700,600)

wo.setVisible(true)

this.dispose()

}

else

{

JOptionPane.showOptionDialog(this,"密码错误", "错误信息"

, JOptionPane.DEFAULT_OPTION,

JOptionPane.ERROR_MESSAGE,

null, null, null)

}

}

else

{

JOptionPane.showOptionDialog(this,"没有所要找的用户名", "错误信息"

, JOptionPane.DEFAULT_OPTION,

JOptionPane.ERROR_MESSAGE,

null, null, null)

}

}

catch(Exception c){

JOptionPane.showOptionDialog(this,"连接数据库失败", "错误信息"

, JOptionPane.DEFAULT_OPTION,

JOptionPane.ERROR_MESSAGE,

null, null, null)

}

}

}

public void jButton2_actionPerformed(ActionEvent e) {

System.exit(0)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10004249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存