weixin_43730926
祁哲
2021-01-26 14:06
采纳率: 100%
浏览 7
已采纳

关于JDBC操作数据库 相关问题 麻烦大佬看一下

package TestJDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class JDBCDemo {
	
	private final static String URL="jdbc:oracle:thin:@localhost:1521:xe";	
	private final static String USERNAME="system";	
	private final static String PWD="wd1999";
	
        
        
	public static void query() {   // 查询
		Connection connection = null;
		Statement stmt = null;
		ResultSet rs = null ; 
		try {
			// a.导入驱动,加载具体的驱动类
			Class.forName("oracle.jdbc.OracleDriver");// 加载具体的驱动类
			// b.与数据库建立连接
			connection = DriverManager.getConnection(URL, USERNAME, PWD);
			// c.发送sql,执行(增删改、【查】)
			stmt = connection.createStatement();
			
			Scanner input= new Scanner(System.in);
			
			System.out.println("请输入用户名:");
			String name = input.nextLine() ;
			System.out.println("请输入密码:");
			String pwd = input.nextLine() ;
			String sql = "select count(*) from login1 where uname='"+name+"' and upwd ='"+pwd+"' " ;			
			
			// 执行SQL(增删改executeUpdate(),查询executeQuery())
			rs = stmt.executeQuery(sql); // 返回值表示 增删改 几条数据
			// d.处理结果
			int count = -1;
			if(rs.next()) {
				count=rs.getInt(1);
			}
			if(count>0) {
				System.out.println("登陆成功!");
			}else {
				System.out.println("登陆失败!");
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch(Exception e) {
			e.printStackTrace();
		}
		finally {
			try {
				if(rs!=null) rs.close(); 
				 if(stmt!=null) stmt.close();    // 对象.方法
				 if(connection!=null)connection.close();
			}catch(SQLException e) {
				e.printStackTrace();
			}
		}
	}

    public static void main(String[] args) {
	query() ;
	}
}

就是处理结果这里 我的数据库中一张login1的表中有一个 uname :zs    upwd:abc  显示结果一直不正确  经过我的调试发现rs.getInt(1)的值一直为0  按理讲返回的值为应该为1    求求大佬帮忙 小白想了一上午也没改对

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • qq_40298231
    源者鬼道 2021-01-26 14:11
    已采纳

    sql语句中count(*)返回的是,查询得到的总条数,按你的条件应该得到的条数是1,想要得到结果集的话,你应该改成select * ....,查询结果集,然后通过对结果集的遍历得到对应的数据

    点赞 评论
  • foralllove
    foralllove 2021-01-26 14:27

    sql放到数据库执行以下看结果

    点赞 评论
  • Im1997
    yàn言 2021-01-26 14:48

    您好,把sql输出出来,放入数据库执行以下,看一下结果,有可能是你输入的值与存储的值不一样,中间有空格什么的

    点赞 评论
  • zhangxin0w0
    BCS-点心 2021-01-26 14:52

    1.ResultSet是结果集,只在查询的时候返回结果,增删改只会返回int类型值

    点赞 评论
  • weixin_43730926
    祁哲 2021-01-26 14:57

    谢谢大家帮忙 count(*)返回的结果是1 好像明白了 数据库知识学的不太扎实 我去尝试改错误

    点赞 评论
  • weixin_43730926
    祁哲 2021-01-26 15:00

    count(*)  返回结果是1  * 返回结果是zs  abc  即是我数据库查询到的内容 但是rs.getInt()始终为0

    点赞 评论

相关推荐