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}

这是我以前写的系统登录框的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)

}

}

使用JDBC进行数据库的增删改查 *** 作1.下载Microsoft SQL Server 2005 JDBC 驱动包jar文件 将jar文件引入工程中2.封装数据库链接的获取和关闭 *** 作import java.sql.*public class BaseDao {\x0d\x0a /**\x0d\x0a * 数据库驱动类的字符串,完整的包名加类名 在工程中查看添加的jar文件 能看到这个类\x0d\x0a */\x0d\x0a private static final String DRIVE = "com.microsoft.sqlserver.jdbc.SQLServerDriver"/**\x0d\x0a * 数据库连接地址\x0d\x0a * \x0d\x0a * DataBaseName=数据库名称 其它固定\x0d\x0a */\x0d\x0a private static final String URL = "jdbc:sqlserver://localhost:1433DataBaseName=bbs"/**\x0d\x0a * 连接数据库的用户名\x0d\x0a */\x0d\x0a private static final String USER = "sa"/**\x0d\x0a * 用户密码\x0d\x0a */\x0d\x0a private static final String PASSWORD = ""/**\x0d\x0a * 获取连接 异常直接抛出 或者捕获后自定义异常信息再抛出\x0d\x0a */\x0d\x0a public static Connection getConnection() throws Exception {\x0d\x0a Class.forName(DRIVE)\x0d\x0a return DriverManager.getConnection(URL, USER, PASSWORD)\x0d\x0a } /**\x0d\x0a * 关闭与数据库的连接 释放资源\x0d\x0a */\x0d\x0a public static void closeAll(ResultSet resultSet, PreparedStatement pst,\x0d\x0a Connection connection) throws Exception {\x0d\x0a if (resultSet != null)\x0d\x0a resultSet.close()\x0d\x0a if (pst != null)\x0d\x0a pst.close()\x0d\x0a if (connection != null)\x0d\x0a connection.close()\x0d\x0a }}3.创建图书的实体类public class Book {\x0d\x0a /**\x0d\x0a * 数据库主键\x0d\x0a */\x0d\x0a private Long id/**\x0d\x0a * 作者\x0d\x0a */\x0d\x0a private String author/**\x0d\x0a * 书名\x0d\x0a */\x0d\x0a private String name\x0d\x0a /**\x0d\x0a * 默认构造\x0d\x0a *\x0d\x0a */\x0d\x0a public Book() {\x0d\x0a }\x0d\x0a /**\x0d\x0a * 全字段构造\x0d\x0a * @param id\x0d\x0a * @param author\x0d\x0a * @param name\x0d\x0a */\x0d\x0a public Book(Long id, String author, String name) {\x0d\x0a this.id = id\x0d\x0a this.author = author\x0d\x0a this.name = name\x0d\x0a }\x0d\x0a /**\x0d\x0a * 以下为读写属性的方法\x0d\x0a * @return\x0d\x0a */\x0d\x0a public String getAuthor() {\x0d\x0a return author\x0d\x0a }\x0d\x0a public void setAuthor(String author) {\x0d\x0a this.author = author\x0d\x0a }\x0d\x0a public Long getId() {\x0d\x0a return id\x0d\x0a }\x0d\x0a public void setId(Long id) {\x0d\x0a this.id = id\x0d\x0a }\x0d\x0a public String getName() {\x0d\x0a return name\x0d\x0a }\x0d\x0a public void setName(String name) {\x0d\x0a this.name = name\x0d\x0a }\x0d\x0a}\x0d\x0a4.创建与图书表交互的工具类import java.sql.Connection\x0d\x0aimport java.sql.PreparedStatement\x0d\x0aimport java.sql.ResultSet\x0d\x0aimport java.util.ArrayList\x0d\x0aimport java.util.Listpublic class BookDao {\x0d\x0a /**\x0d\x0a * 添加新书\x0d\x0a * \x0d\x0a * @param book 要添加入数据库的图书 作者 书名 必须给定\x0d\x0a */\x0d\x0a public void addBook(Book book) throws Exception {\x0d\x0a // 连接\x0d\x0a Connection connection = null\x0d\x0a // 执行语句\x0d\x0a PreparedStatement pst = null\x0d\x0a try {\x0d\x0a connection = BaseDao.getConnection()\x0d\x0a // 构造执行语句\x0d\x0a String sql = "insert into book values(" + book.getAuthor() + ","\x0d\x0a + book.getName() + ")"\x0d\x0a pst = connection.prepareStatement(sql)\x0d\x0a pst.executeUpdate() } catch (Exception e) {\x0d\x0a // 抛出异常\x0d\x0a throw e\x0d\x0a } finally {\x0d\x0a // 无论是否异常 均关闭数据库\x0d\x0a BaseDao.closeAll(null, pst, connection)\x0d\x0a }\x0d\x0a } /**\x0d\x0a * 查询所有书籍列表\x0d\x0a */\x0d\x0a public List getBooks() throws Exception {\x0d\x0a // 用于存放查寻结果的集合\x0d\x0a List books = new ArrayList()\x0d\x0a // 连接\x0d\x0a Connection connection = null\x0d\x0a // 执行语句\x0d\x0a PreparedStatement pst = null\x0d\x0a // 查询结果\x0d\x0a ResultSet resultSet = null\x0d\x0a try {\x0d\x0a connection = BaseDao.getConnection()\x0d\x0a // 构造查询语句\x0d\x0a String sql = "select * from book"\x0d\x0a pst = connection.prepareStatement(sql)\x0d\x0a resultSet = pst.executeQuery() // 循环读取查询结果行\x0d\x0a while (resultSet.next()) {\x0d\x0a// getXXX的参数为数据表列名\x0d\x0aBook book = new Book(resultSet.getLong("id"), resultSet\x0d\x0a .getString("author"), resultSet.getString("name"))\x0d\x0a// 将封装好的图书对象存入集合\x0d\x0abooks.add(book)\x0d\x0a }\x0d\x0a } catch (Exception e) {\x0d\x0a // 抛出异常\x0d\x0a throw e\x0d\x0a } finally {\x0d\x0a // 无论是否异常 均关闭数据库\x0d\x0a BaseDao.closeAll(resultSet, pst, connection)\x0d\x0a }\x0d\x0a // 返回查询结果\x0d\x0a return books\x0d\x0a }/***其它方法类似上面 只是语句不同*/\x0d\x0a}当然 以上只是简单的封装 初学者可以在理解以上代码的基础上 进行更高级的封装\x0d\x0a5.使用BookDao添加书籍和获取所有书籍列表import java.util.List/**\x0d\x0a * 测试类\x0d\x0a * @author Administrator\x0d\x0a *\x0d\x0a */\x0d\x0apublic class Test { /**\x0d\x0a * @param args\x0d\x0a * @throws Exception \x0d\x0a */\x0d\x0a public static void main(String[] args) throws Exception {\x0d\x0a //创建工具类对象\x0d\x0a BookDao dao = new BookDao()\x0d\x0a //创建一本图书\x0d\x0a Book book = new Book(null,"QQ:495691293","编程菜鸟")\x0d\x0a //添加书籍到数据库\x0d\x0a dao.addBook(book)\x0d\x0a \x0d\x0a //获取所有图书列表\x0d\x0a List books = dao.getBooks()\x0d\x0a //输出结果\x0d\x0a for (Book b : books) {\x0d\x0a System.out.println(b.getId()+"\t"+b.getAuthor()+"\t"+b.getName())\x0d\x0a }\x0d\x0a }}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存