Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句'' ""作用

摘要:
//方法一,可以验证登录,但方法不实用。user=root&password=root");//3、创建连接语句st=conn.createStatement();//4、执行SQL语句获得结果集rs=st.executeQuery;//5、循环获得数据库字段生成对象//这种方法登录要把数据库数据都拿过来和login中数据比较,超级浪费资源while{Stringusername=rs.getString;Stringpassword=rs.getString;if{returntrue;}else{returnfalse;}}}catch{//TODOAuto-generatedcatchblocke.printStackTrace();}finally{//关闭结果集try{if(rs!=null){conn.close();}}catch{//TODOAuto-generatedcatchblocke.printStackTrace();}}returnfalse;}}方法二使用数据库查询语句select*fromsw_userwhereusername='swift'andpassword='123456'在Java程序中注意单引号''是不可缺少的,它是sql语句自带部分,双引号是Java的字符串连接符,所以要了解""''各自的作用packagecom.swift;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;publicclassLoginJDBC2{publicstaticvoidmain{UseruserZhangsan=newUser;if{System.out.println;}else{System.out.println;}}privatestaticbooleanlogin{Connectionconn=null;Statementst=null;ResultSetrs=null;try{//1、装载驱动Class.forName;}catch{e.printStackTrace();}try{//2、链接数据库,使用com.mysql.jdbc.Connection包会出错Listlist=newArrayList();conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sw_database?
//方法一,可以验证登录,但方法不实用。
package
com.swift; importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.ResultSet; importjava.sql.SQLException; importjava.sql.Statement; importjava.util.ArrayList; importjava.util.List; public classLoginJDBC { public static voidmain(String[] args) { User userZhangsan=new User("swift","123456"); if(login(userZhangsan)) { System.out.println("登陆成功"); }else{ System.out.println("登陆失败"); } } private static booleanlogin(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"); //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的字符串连接符,所以要了解"" ''各自的作用

packagecom.swift;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
importjava.util.List;
public classLoginJDBC2 {
    public static voidmain(String[] args) {
        User userZhangsan=new User("zhangsan","123456");
        if(login(userZhangsan)) {
            System.out.println("登陆成功");
        }else{
            System.out.println("登陆失败");
        }
    }
    private static booleanlogin(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;
    }
}

免责声明:文章转载自《Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句'' ""作用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇三维坐标下的旋转Android自动化测试探索(四)uiautomator2简介和使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

从excel表中生成批量SQL,将数据录入到数据库中

excel表格中有许多数据,需要将数据导入数据库中,又不能一个一个手工录入,可以生成SQL,来批量操作。      1.首先在第二行的H列,插入函数:=CONCATENATE("INSERT INTO `book` (`bookid`, `title`,  `volume`, `author`, `urlpdf` ) VALUES ('",A2,"'...

在Django中使用原生Sql

在Django中使用原生Sql主要有以下几种方式: 一:extra:结果集修改器,一种提供额外查询参数的机制 二:raw:执行原始sql并返回模型实例 三:直接执行自定义Sql(这种方式完全不依赖model,前两种还是要依赖于model) 实例: 使用extra:   1:Book.objects.filter(publisher__name='广东人...

MySQL之SQL优化详解(二)

目录 MySQL之SQL优化详解(二) 1. SQL的执行顺序 1.1 手写顺序 1.2 机读顺序 2. 七种join 3. 索引 3.1 索引初探 3.2 索引分类 3.3 建与不建 4. 性能分析Explain (1)id:select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 (2) select_t...

在线数据迁移经验:如何为正在飞行的飞机更换引擎

 在线数据迁移,是指将正在提供线上服务的数据,从一个地方迁移到另一个地方,整个迁移过程中要求不停机,服务不受影响。根据数据所处层次,可以分为cache迁移和存储迁移;根据数据迁移前后的变化,又可以分为平移和转移。  平移是指迁移前后数据组织形式不变,比如Mysql从1个实例扩展为4个实例,Redis从4个端口扩展到16个端口,HBase从20台机器扩展到...

mysql 使用 table_rows 统计表格行数不准确

使用 table_rows 统计表格行数不准确  首先生产环境不建议这样做,只是为了测试 导致统计信息不准确的原因是什么呢?其实是MySQL 8.0为了提高information_schema的查询效率,将视图tables和statistics里面的统计信息缓存起来,缓存过期时间由参数information_schema_stats_expiry决定,...

记一次docker安装logstash,并且读取数据库数据到es

docker安装logstash,在hub.docker官网是没有示例的。查了文章,大部分复制黏贴,语焉不详的。看着懵,虽然经过复制黏贴操作启起来了,但还是很多不理解。回想下不用docker安装的logstash,对比了下大致有点理解了。可自己配置run,还是启动没一会自动停止了。懊恼不已。 刚才仔细对比,小心求证发现了问题所在。貌似logstash启动要...