est ici la chose:Java - un verrou ne pouvait pas être obtenue dans le délai demandé après
J'ai un DB qui sert de scoreborad; J'ai un bouton qui met à jour la base de données avec les nouveaux scores; J'ai une «exception de développeur» qui lance une exception SQLException chaque fois que le score est faible et ne peut remplacer aucun score dans le tableau de bord (DB);
Le problème:
- je reçois un faible score et l'exception se produisent, puis-je obtenir un score élevé et au lieu de mettre à jour la base de données que je reçois l'erreur.
Voici l'erreur:
- "un verrou ne pouvait être obtenue dans le délai demandé"
Voici le code dans le bouton:
try
{
Connection conec=DriverManager.getConnection(hostname,username,password); //<-- Conecçao com a base de dados
Statement stm=conec.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); //<-- Conecção com as tabelas
//------------Aquisição dos dados------------------//
SQL="SELECT * FROM DEMOLION.MINER";
res=stm.executeQuery(SQL);
//-------------------------------------------------//
res.first();
nome=JOptionPane.showInputDialog("Introduza o mone que deseja registar:","Jogador1");
Desktop.getDesktop().open(new File("Jogos RPG Maker/Miner mapa/Game.exe"));
pontuacao=JOptionPane.showInputDialog("Introduza a pontuação obtida:","0");
pontos=Integer.parseInt(pontuacao);
do
{
pontos_insuf();
dbpontos=res.getInt("PONTUACOES");
System.out.println("pt="+pontos+"db="+dbpontos);
if(pontos>dbpontos)
{
res.updateInt("PONTUACOES",pontos);
res.updateString("NOME",nome);
res.updateRow();
}
if(pontos<dbpontos || pontos==dbpontos)
{
res.next();
}
}
while(pontos<dbpontos);
stm.close();
res.close();
}
catch (IOException ex)
{
Logger.getLogger(Jogos_Pacman.NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
catch(SQLException e)
{
MsgBox.show(e.getMessage(),"AVISO", JOptionPane.INFORMATION_MESSAGE);
}
voici l'exception du développeur:
private void pontos_insuf() throws SQLException{
if(!res.next())
{
throw new SQLException("Obteve uma pontuação insuficiente para superar pontuações anteriores!");
} }