java - JDBC 中的 SELECT 语句

标签 java sql jdbc

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import javax.swing.JOptionPane;


public class Main
{
public static void main (String[] args) throws Exception

{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con =       DriverManager.getConnection("jdbc:mysql://localhost:3306/convocation","root","");



int id_convo= Integer.parseInt(JOptionPane.showInputDialog(null,"Please Insert Student ConvoID"));

PreparedStatement statement = con.prepareStatement("select name, course from stud_details where id='"+id_convo+"' ");

ResultSet result = statement.executeQuery();

while(result.next())
{
    JOptionPane.showMessageDialog(null, result.getString(1) + " "+ result.getString(2));
}
}
}

我对仅显示姓名和类(class)的语句有疑问。我不知道为什么奖励没有显示。我已经在数据库中有它,它只显示 sql 语句中的前两个。如果我做 SELECET * 也一样。仅显示数据库中的前两个。

谢谢

最佳答案

I don't know why award is not shown [sic].

更改您的查询

select name, course

select name, course, award

然后

JOptionPane.showMessageDialog(null, result.getString(1) + " "
    + result.getString(2));

JOptionPane.showMessageDialog(null, result.getString(1) + " "
    + result.getString(2) + " " + result.getString(3));

此外,从 JDBC 4.0 和 Java 6 开始,您不需要使用 来注册 JDBC 驱动程序

Class.forName("com.mysql.jdbc.Driver").newInstance();

编辑

而且,正如评论中所指出的,您确实应该通过绑定(bind)参数来PreparedStatement正确使用您的PreparedStatement。就像,

PreparedStatement statement = con.prepareStatement(
    "select name, course from stud_details where id=?");
statement.setInt(1, id_convo);

最后,不要忘记 close() finally block 中的所有内容。

关于java - JDBC 中的 SELECT 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27631221/

相关文章:

java - 如何让西类牙语中的奇怪字符消失?即使将 JDB URL 更改为 UTF-8 后它仍然存在

Java克隆——深拷贝和浅拷贝

java - 如何在 spring-mvc 中向 webflux 端点添加日志记录?

sql - 通过sql中的单个列引用多个表

sql - PL/SQL : SELECT INTO raises ORA-00947

jdbc - createArrayOf AbstractMethodError

java - 用java读取excel中的特定列

java - 用于匹配 javadoc 片段的正则表达式

sql - 如何在 Postgres 中获取当前可用磁盘空间?

mysql - Postgres JDBC 的表名别名