java-JDBC登录注册代码
Posted 易小川
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java-JDBC登录注册代码相关的知识,希望对你有一定的参考价值。
登录:
public static void main(String[] args) throws Exception{ Scanner sc = new Scanner(System.in); System.out.println("账号:"); String uid = sc.nextLine(); System.out.println("密码:"); String pwd = sc.nextLine(); Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root",""); String sql = "select * from users where user = ? and password = ?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, uid); ps.setString(2, pwd); ResultSet rs = ps.executeQuery(); boolean ok = rs.next(); if(ok){ System.out.println("欢迎"+rs.getString(3)+"回来"); } else { System.out.println("您输入的账号密码有误"); } }
这是一个简单的通过输入数据跟数据库的数据比较来完成登录验证。这里用的是PreparedStatement
PreparedStatement 与Statement 的区别
1 有安全性
PreparedStatement 可以由于不是使用拼接,防止了sql注入,提高了安全性。
2 更方便
PreparedStatement 可以自动对类型进行转换,代码可读性,可维护性提高。
3 批处理
PreparedStatement 有预编译功能,大批量的处理sql效率更高。(MySQL 不明显,Oracle 非常明显)
注册:
public static void main (String[] args) throws Exception{ Scanner sc = new Scanner(System.in); System.out.println("请输入账号"); String uid = sc.nextLine(); System.out.println("请输入密码"); String pwd = sc.nextLine(); System.out.println("请输入昵称"); String nc = sc.nextLine(); Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?characterEncoding=GBK","root",""); String sql = "insert into users values (?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, uid); ps.setString(2, pwd); ps.setString(3, nc); ps.executeUpdate(); conn.close(); }
以上是关于java-JDBC登录注册代码的主要内容,如果未能解决你的问题,请参考以下文章