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));
}
}
}
У меня возникла проблема с утверждением, где он показывает только имя и курс. Я не знаю, почему для награды это не показало. Я уже имею его в базе данных, и он показывает только первые два в инструкции sql. То же самое, если я делаю SELECET *. будут показаны только первые два в базе данных.
благодаря
Я не знаю, почему награда не показана [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();
редактировать
И, как отмечено в комментариях, вы действительно должны правильно использовать PreparedStatement
, привязывая этот параметр. Подобно,
PreparedStatement statement = con.prepareStatement(
"select name, course from stud_details where id=?");
statement.setInt(1, id_convo);
Наконец, не забудьте close()
все в блоке finally
.
Если вы уже попробовали wity SELECT *, это показало, что эта проблема не в инструкции SELECT. Эта проблема находится в этом коде
JOptionPane.showMessageDialog(null, result.getString(1) + " "+ result.getString(2));.
Если вы понимаете метод result.getString(), ваша проблема исчезнет. Попробуйте объяснить ниже:
result.getString(1) is represent first column of your table.
result.getString(2) is represent second column of your table.
result.getString(3) is represent third column of your table.
etc.........
........
........