Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句'' ""作用
2018-01-01 00:36
1006 查看
//方法一,可以验证登录,但方法不实用。 package com.swift; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class LoginJDBC { public static void main(String[] args) { User userZhangsan=new User("swift","123456"); if(login(userZhangsan)) { System.out.println("登陆成功"); }else { System.out.println("登陆失败"); } } private static boolean login(User userZhangsan) { Connection conn=null; Statement st=null; ResultSet rs=null; try { //1、装载驱动 Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { //2、链接数据库,使用com.mysql.jdbc.Connection包会出错 List<User> list=new ArrayList<User>(); 4000 conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sw_database?user=root&password=root"); //3、创建连接语句 st=conn.createStatement(); //4、执行SQL语句获得结果集 rs=st.executeQuery("select * from sw_user"); //5、循环获得数据库字段生成对象 //这种方法登录要把数据库数据都拿过来和login中数据比较,超级浪费资源 while(rs.next()) { String username=rs.getString("username"); String password=rs.getString("password"); if(username.equals(userZhangsan.getUsername())&&password.equals(userZhangsan.getPassword())) { return true; }else { return false; } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //关闭结果集 try { if(rs!=null) { rs.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //关闭连接语句 try { if(st!=null) { st.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //关闭数据库连接 try { if(conn!=null) { conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return false; } }
方法二 使用数据库查询语句 select * from sw_user where username='swift' and password='123456'
在Java程序中注意单引号''是不可缺少的,它是sql语句自带部分,双引号是Java的字符串连接符,所以要了解"" ''各自的作用
package com.swift; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class LoginJDBC2 { public static void main(String[] args) { User userZhangsan=new User("zhangsan","123456"); if(login(userZhangsan)) { System.out.println("登陆成功"); }else { System.out.println("登陆失败"); } } private static boolean login(User userZhangsan) { Connection conn=null; Statement st=null; ResultSet rs=null; try { //1、装载驱动 Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { //2、链接数据库,使用com.mysql.jdbc.Connection包会出错 List<User> list=new ArrayList<User>(); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sw_database?user=root&password=root"); //3、创建连接语句 st=conn.createStatement(); //4、执行SQL语句获得结果集 rs=st.executeQuery("select * from sw_user where username='"+userZhangsan.getUsername()+"' and password='"+userZhangsan.getPassword()+"'"); //5、循环获得数据库字段生成对象 //这种方法登录要把数据库数据都拿过来和login中数据比较,超级浪费资源 if(rs.next()) { return true; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //关闭结果集 try { if(rs!=null) { rs.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //关闭连接语句 try { if(st!=null) { st.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //关闭数据库连接 try { if(conn!=null) { conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return false; } }
相关文章推荐
- 防止sql注入方法 如何防止java中将MySQL的数据库验证密码加上 ' or '1'= '1 就可以出现万能密码 的PreparedStatement
- WMS仓储管理系统实现"收发存日报表"数据查询功能Sql语句--Oracle
- java执行SQL语句实现查询的通用方法
- java执行SQL语句实现查询的通用方法详解
- 移动文章分类的sql语句,查询并更新同一个表的方法 You can't specify target table 'news_articles' for update in FROM clause
- ACCESS模糊查询like的解决方法&&SQL查询语句通配符问题
- java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)的一种解决方法
- Java:对于Sql语句执行方式不同而出现的问题!列名: 'false' 无效
- [MS SQL]SQL语句查询每个分组的前N条记录的实现方法
- [Android] "Failed to find Java version for 'C:\Windows\system32\java.exe"问题的解决方法
- 用SQL语句实现随机查询数据并不显示错误数据的方法
- sql语句实现2个表的查询(内连接)
- [MS SQL]SQL语句查询每个分组的前N条记录的实现方法
- SQL 多表连接查询实现语句
- hql语句中like查询 对于 / ' " % 的处理
- java的JDBC连接mysql数据库时对于Datetime类型出现Cannot convert value '0000-00-00 00:00:00' from column 9 to TIMESTAMP
- java的JDBC连接mysql数据库时对于Datetime类型出现Cannot convert value '0000-00-00 00:00:00' from column 9 to TIMESTAMP.
- 用SQL语句实现随机查询数据并不显示错误数据的方法
- JSP 连接远程 LDAP 实现用户名和密码验证
- 对sql查询语句组合查询的通用实现算法(c++版,java版)