解决数据库中取值与java中的string不匹配的问题

Part2

      在两个项目中都遇到了一个相同的问题,一直没有得到解决。

      就是如何将数据库提取出来的值与java中的字符串相匹配。


     下面是一个简单的实例:


public static void main(String[] args){
        try{
            //调用Class.forName()方法加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");              
            String url="jdbc:mysql://localhost:3306/news?characterEncoding=utf-8";    //JDBC的URL    
            Connection conn;
            conn = DriverManager.getConnection(url,"root","pwy4225054");
            Statement stmt = conn.createStatement(); //创建Statement对象
            String sql = "select * from employee where name='Tom'";    //要执行的SQL          
            ResultSet rs = stmt.executeQuery(sql);//创建数据对象             
                while (rs.next()){
                    System.out.print(rs.getString(1));
                }
                rs.close();
                stmt.close();
                conn.close();
            }catch(Exception e)
            {
                e.printStackTrace();
            }
    }


然后在代码中加入:

public static void main(String[] args){
        try{
            //调用Class.forName()方法加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");              
            String url="jdbc:mysql://localhost:3306/news?characterEncoding=utf-8";    //JDBC的URL    
            Connection conn;
            conn = DriverManager.getConnection(url,"root","pwy4225054");
            Statement stmt = conn.createStatement(); //创建Statement对象
            String sql = "select * from employee where name='Tom'";    //要执行的SQL          
            ResultSet rs = stmt.executeQuery(sql);//创建数据对象             
                while (rs.next()){
                    if(rs.getString(1)=="Tom")
                        System.out.print(rs.getString(1));
                }
                rs.close();
                stmt.close();
                conn.close();
            }catch(Exception e)
            {
                e.printStackTrace();
            }
    }

无法输出


简直是奇了!!!因为rs.getString(1)中输出的“Tom”明明是应该等于“Tom”的!!!!

然后还是在求教于老师后,解决了!!!!


public static void main(String[] args){
        try{
            //调用Class.forName()方法加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");              
            String url="jdbc:mysql://localhost:3306/news?characterEncoding=utf-8";    //JDBC的URL    
            Connection conn;
            conn = DriverManager.getConnection(url,"root","pwy4225054");
            Statement stmt = conn.createStatement(); //创建Statement对象
            String sql = "select * from employee where name='Tom'";    //要执行的SQL          
            ResultSet rs = stmt.executeQuery(sql);//创建数据对象             
                while (rs.next()){
                    if(rs.getString(1).equalsIgnoreCase("Tom"))
                        System.out.print(rs.getString(1));
                }
                rs.close();
                stmt.close();
                conn.close();
            }catch(Exception e)
            {
                e.printStackTrace();
            }
    }

用到了equalsIgnoreCase() 函数

忽略字符串的大小写,其实还是不太明白的,因为从输出上来看,这两个字符串不存在大小写的问题的。但是最终问题还是得到了解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值