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() 函数
忽略字符串的大小写,其实还是不太明白的,因为从输出上来看,这两个字符串不存在大小写的问题的。但是最终问题还是得到了解决!