Java

  • Креатор на темата Креатор на темата deXterche
  • Време на започнување Време на започнување
Dime go srediv problemot


Ama koga ke pritisnam na run mi ja javuva slednava greska;
Inserting values in Mysql database table!
SQL statement is not executed!


Dime istava greska mi javuvashe i pri izvrshuvanje na ovoj kod
a zapisot beshe uspeshno vnesen vo bazata.

PHP:
import java.sql.*;

public class vtoraforma{
  public static void main(String[] args) {
    System.out.println("Inserting values in Mysql database table!");
    Connection con = null;
    String url = "jdbc:mysql://localhost:3306/";
    String db = "dental";
    String driver = "com.mysql.jdbc.Driver";
    try{
      Class.forName(driver);
      con = DriverManager.getConnection(url+db,"root","admin");
      try{
        Statement st = con.createStatement();
        int val = st.executeUpdate("insert into akaunti values ('','Tosho','Malerot','vcera','Cile','Portoriko','tetertg','ds','fdf','gg')");
        System.out.println("1 row affected");
      }
      catch (SQLException s){
        System.out.println("SQL statement is not executed!");
      }
    }
    catch (Exception e){
      e.printStackTrace();
    }
  }
}
 
Како прво провери дали имаш табела во базата и како што гледам во
SQL:
insert into akaunti values ('','Tosho','Malerot','vcera','Cile','Portoriko','tetertg','ds','fdf','gg')

Прво akaunti(att1,att2,....) нареди ги атрибутите на табелата кои се во базата и на (''(tuka),'Тоsho'....) би требало да биде примарниот клуч

што не треба да се повторува и не треба да биде null вредност. Исто така треба да провериш и дали внесените податоци се од исти тип како како и во базата.

 
Moja greska main klasata na proektot bila postavena sosem treta klasa.
Sega se otvara formata ama mi javuva nekoi cudni greski.
Da jadam pa ke prodolzam.
 
Najnovata greska:

init:
deps-jar:
compile:
run:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 10
at formi.NewJFrame3$OkSlushac.actionPerformed(NewJFrame3.java:172)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)


Eve go kodot:
PHP:
import java.sql.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;

public class NewJFrame3 extends javax.swing.JFrame {

    /** Creates new form NewJFrame3 */
    public NewJFrame3() {
        initComponents();
       ActionListener slushac=new OkSlushac();
        jButton1.addActionListener(slushac);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {
    kodot e izostaven poradi preglednost
    }// </editor-fold>                        

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame3().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
     kodot e izostaven poradi preglednost
    // End of variables declaration                   

    
    private class OkSlushac implements ActionListener{
     public void actionPerformed(ActionEvent e){
   String[] niza;
     niza=new String[10];
     int i;
    for (i = 1; i <= 10; i++) {
    
     niza[i]="jTextField"+String.valueOf(i);
     } 
   
    System.out.println("Inserting values in Mysql database table!");
    Connection con = null;
    String url = "jdbc:mysql://localhost:3306/";
    String db = "dental";
    String driver = "com.mysql.jdbc.Driver";
   try{
      Class.forName(driver);
      con = DriverManager.getConnection(url+db,"root","admin");
   try{  
        Statement st = con.createStatement();
        String sql= new String();
        String sql1=new String();
       
        String sql2=new String();
        String sql3=new String();
        sql="insert into akaunti values {";
        for (i = 1; i <= 10; i++) {
             
         sql1+="'"+niza[i]+"',";
         }
        sql2="}";
        sql3=sql+sql1+sql2;
        System.out.println(sql3);
        int val = st.executeUpdate(sql3);
        System.out.println("1 row affected");
     }
     catch (SQLException s) {
        System.out.println("SQL statement is not executed!");
      }
   }
   catch (Exception n){
         n.printStackTrace();
      }
}

}

}
 
Ова
for (i = 1; i <= 10; i++)
во ова
for (i = 0; i < 10; i++)
 
Najnovata greska:

init:
deps-jar:
compile:
run:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 10
at formi.NewJFrame3$OkSlushac.actionPerformed(NewJFrame3.java:172)

....

Треба да почниш сам да си ги откриваш грешките :) .

Значи првиот ред ти кажува: ArrayIndexOutOfBoundsException : 10 , тоа значи дека ти кога работиш со низата пробваш да работиш со некој индекс (во овој случај тој е 10) кој ти е поголем од големината на низата.

пр. Ти имаш:
Код:
[COLOR=#000000][COLOR=#0000bb]String [/COLOR][COLOR=#0000bb]niza[] [/COLOR][COLOR=#007700]= new [/COLOR][COLOR=#0000bb]String[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]10[/COLOR][COLOR=#007700]];[/COLOR][/COLOR]

[COLOR=#000000][COLOR=#007700]for ([/COLOR][COLOR=#0000bb]int i [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]1[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000bb]i [/COLOR][COLOR=#007700]<= [/COLOR][COLOR=#0000bb]10[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000bb]i[/COLOR][COLOR=#007700]++) {
[/COLOR][COLOR=#0000bb]   niza[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]i[/COLOR][COLOR=#007700]]=[/COLOR][COLOR=#dd0000]"jTextField"[/COLOR][COLOR=#007700]+[/COLOR][COLOR=#0000bb]String[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]valueOf[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]i[/COLOR][COLOR=#007700]);
} 
[/COLOR][/COLOR]


И во последното вртење на for циклусот i = 10 , и ќе проба да го изврши редот :

niza[10]
= "jTextField" + String.valueOf(i) ;

Тебе ти вади грешка на болдираното. Во твојот случај индексот на niza може да има вредност само од 0 - 9.


Во вториот ред ти ја покажува локацијата на грешката:

at formi.NewJFrame3$OkSlushac.actionPerformed(NewJFrame3.java:172)
о
Значи грешката ти е во фајлот NewJFrame3.java во ред 172. Во повеќете едитори (ако не и во сите) одиш до некоја линија со: Ctrl + G , и ти се отвора Go To Line: прозорче.
 
Dime znam kaj mi e greskata uste pred da stisnam na run kopceto.
Mislam deka vie pogresno me upativte.
Jas sakam vo lupot sodrzinata (koja se dobiva so getText() ) na site Text Fieldovi na formata da gi addnam vo nizata i posle nizata da ja iskoristam pri dinamicno kreiranje na sql izrazot.
Samo sto ne najdov zgoden nacin.
Zatoa smetav deka vie ke mi pomognete.

Eve ja linijata 172:

niza="jTextField"+String.valueOf(i);

Kako da ja koregiram?
 
Dime znam kaj mi e greskata uste pred da stisnam na run kopceto.
Mislam deka vie pogresno me upativte.
Jas sakam vo lupot sodrzinata (koja se dobiva so getText() ) na site Text Fieldovi na formata da gi addnam vo nizata i posle nizata da ja iskoristam pri dinamicno kreiranje na sql izrazot.
Samo sto ne najdov zgoden nacin.
Zatoa smetav deka vie ke mi pomognete.

Eve ja linijata 172:

niza="jTextField"+String.valueOf(i);

Kako da ja koregiram?


Ние не те упативме погрешно туку ти не објасни добро шо не ти е јасно :) .

Ако те сватив добро ти сакаш да го направиш следното:

niza[0] = jTextField0.getText();
niza[1] = jTextField1.getText();
niza[2] = jTextField2.getText();
....

Ако сум во право тогаш ова можиш да го постигниш вакa:

- Кога ги декларираш полињата JTextField треба ти да направиш низа од текст полиња:

Код:
JTextField polinja[] = new JTextField[10];

for(int i = 0; i<10; i++)
    polinja[i] = new JTextField();

па потоа во тој loop пишиш:
Код:
for(int i=0; i<10; i++)
   niza[i] = polinja[i].getText();
 
Dime kodot ti e vo red i jas mislev istoto da go napravam problemot e vo toa sto IDE-to na NetBeans-ot gi ima napraveno instancite na TextFieldovite vo metodata initComponents()

Kodot vo initComponents() nemoze da se menuva, care?

Da go napravam nova obicna klasa vo proektot da go kopiram i pastiram kodot vo novata klasa i posle da go modificiram?


PHP:
 private void initComponents() {

        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jTextField3 = new javax.swing.JTextField();
        jTextField4 = new javax.swing.JTextField();
        jTextField5 = new javax.swing.JTextField();
        jTextField7 = new javax.swing.JTextField();
        jTextField8 = new javax.swing.JTextField();
        jTextField9 = new javax.swing.JTextField();
        jTextField10 = new javax.swing.JTextField();
        jTextField11 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setName("Form"); // NOI18N

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(dentist.DentistApp.class).getContext().getResourceMap(NewJFrame3.class);
        jTextField1.setText(resourceMap.getString("jTextField1.text")); // NOI18N
        jTextField1.setName("jTextField1"); // NOI18N

        jTextField2.setText(resourceMap.getString("jTextField2.text")); // NOI18N
        jTextField2.setName("jTextField2"); // NOI18N

        jTextField3.setText(resourceMap.getString("jTextField3.text")); // NOI18N
        jTextField3.setName("jTextField3"); // NOI18N

        jTextField4.setText(resourceMap.getString("jTextField4.text")); // NOI18N
        jTextField4.setName("jTextField4"); // NOI18N

        jTextField5.setText(resourceMap.getString("jTextField5.text")); // NOI18N
        jTextField5.setName("jTextField5"); // NOI18N

        jTextField7.setText(resourceMap.getString("jTextField7.text")); // NOI18N
        jTextField7.setName("jTextField7"); // NOI18N

        jTextField8.setText(resourceMap.getString("jTextField8.text")); // NOI18N
        jTextField8.setName("jTextField8"); // NOI18N

        jTextField9.setText(resourceMap.getString("jTextField9.text")); // NOI18N
        jTextField9.setName("jTextField9"); // NOI18N

        jTextField10.setText(resourceMap.getString("jTextField10.text")); // NOI18N
        jTextField10.setName("jTextField10"); // NOI18N

        jTextField11.setText(resourceMap.getString("jTextField11.text")); // NOI18N
        jTextField11.setName("jTextField11"); // NOI18N

        jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N
        jButton1.setName("jButton1"); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(56, 56, 56)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(69, 69, 69)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(jTextField7)
                        .addComponent(jTextField9)
                        .addComponent(jTextField8))
                    .addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 41, Short.MAX_VALUE)
                .addComponent(jButton1)
                .addGap(37, 37, 37))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(32, 32, 32)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton1))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(93, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>
 
Ајмо Java Reflection... :)

Class c = Class.forName(this.getClass().getName());
for (int i = 0; i < 10; i++) {
Field f = c.getDeclaredField(
"jTextField"+i);
f.setAccessible(true);
niza
[i]=((
JTextField)f.get(this)).getText();
}

Набрзинка, можда имам нешо утнато...
Ова би требало да ти поминит, без да модифицираш....
 
@evil eve ja greskata:

init:
deps-jar:

NewJFrame3.java:175: cannot find symbol

symbol : class JTextField
location: class formi.NewJFrame3.OkSlushac
niza=((JTextField)f.get(this)).getText();
1 error
BUILD FAILED (total time: 0 seconds)
 
Или import javax.swing.JTextField
или смени
niza=((javax.swing.JTextField)f.get(this)).getText();
 
Ајмо Java Reflection... :)

Class c = Class.forName(this.getClass().getName());
for (int i = 0; i < 10; i++) {
Field f = c.getDeclaredField(
"jTextField"+i);
f.setAccessible(true);
niza
[i]=((
JTextField)f.get(this)).getText();
}

Набрзинка, можда имам нешо утнато...
Ова би требало да ти поминит, без да модифицираш....

Фала и мене ќе ми се најди некогаш. Никогаш немам работено со Java Reflection. :)
 
Imam dve klasi, vo prvata klasa povikuvam kontroli(Label) od vtorata klasa, za da go postignam ova bidejki kontrolite vo vtorata klasa se deklarirani private vo vtorata klasa koristam getter method:

public javax.swing.JLabel getfield()
{
return jLabel2;
}

Posto imam 9 Label glupo mi 9 pati da go pastiram istiot kod(sa sekoja kontrola(jLabel) posebno)
Moze li so edna funkcija da gi referiram site 9 jLabeli?
Reflection ke treba, taka?
 
Код:
public javax.swing.JLabel getfield(int index)
  {
    Class c = Class.forName(this.getClass().getName());
    [COLOR=black]Field f = c.getDeclaredField([/COLOR][COLOR=black]"jLabel" + index[/COLOR][COLOR=black]);
    return ( (javax.swing.JLabel) f.get(this) );[/COLOR]
  }
Мислам дека е вака според кодот на evild1ck . :)
 

Kajgana Shop

Back
На врв Bottom