#java #sql #oracle
#java #sql #Oracle
Вопрос:
String sql = "select s_upload_file.NEXTVAL from dual" ;
PreparedStatement ps = con.preparedStatement(sql);
ResultSet rs = ps.executeQuery();
При выполнении этого я получаю набор результатов как пустой. В чем проблема с этим..
Комментарии:
1. что такое
s_upload_file.nextvalue
?2. Upload_file — это имя таблицы, и в нем есть столбец с порядковым номером, здесь я пытаюсь получить к нему доступ с помощью псевдоколонки .. извините, что я отредактировал его Nextval
3. Он выполняется напрямую… Не могли бы вы предложить способ найти следующее значение столбца порядкового номера в базе данных?
4. Вы прошли через
rs.next()
?5. Благодаря hasitha я получил значение при выполнении итерации через RS.next()..
Ответ №1:
Уже есть много ответов, но я постараюсь дать вам полный объем ответа.
public static Connection getConnection_Test() throws Exception{
try{
String driver = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/Database_Name";
String username = "root";
String pass = "";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, pass);
System.out.println("Success!");
String query = "SELECT S_UPLOAD_FILE.NEXTVAL from dual n ";
PreparedStatement st = conn.prepareStatement(query);
ResultSet rs = st.executeQuery();
while(rs.next()){
int NEXTVALUE = rs.getInt(1);
System.out.println(NEXTVALUE);
}
rs.close();
st.close();
return conn;
}catch (Exception e){
System.out.println(e);
}
return null;
}
Ответ №2:
вы должны попробовать что-то вроде этого,
String sql = "select s_upload_file.NEXTVAL from dual" ;
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
if (rs.next())
{
int var2= rs.getInt(1);
}
Ответ №3:
Вы можете получить значения через rs.next()
,
String sql = "select s_upload_file.NEXTVAL from dual";
PreparedStatement pst = conn.prepareStatement(sql);
synchronized( this ) {
ResultSet rs = pst.executeQuery();
if(rs.next())
long nxtVal = rs.getLong(1);
}
Ответ №4:
Вы пробовали что-то подобное?
/* not mandatory but give an alias to your column in select */
if(rs.next()){
int nextval = rs.getInt(1);
System.out.println(nextval)
}