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

关于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条回答 默认 最新

  • 源者鬼道 2021-01-26 14:11
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 vhdl+MODELSIM
  • ¥20 simulink中怎么使用solve函数?
  • ¥30 dspbuilder中使用signalcompiler时报错Error during compilation: Fitter failed,求解决办法
  • ¥15 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题