Java

THE_CHOSEN_ONE

1903-2012
Член од
13 август 2007
Мислења
3.724
Поени од реакции
1.333
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();
    }
  }
}
 
Член од
28 мај 2008
Мислења
3.966
Поени од реакции
4.073
Како прво провери дали имаш табела во базата и како што гледам во
SQL:
insert into akaunti values ('','Tosho','Malerot','vcera','Cile','Portoriko','tetertg','ds','fdf','gg')

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

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

 

THE_CHOSEN_ONE

1903-2012
Член од
13 август 2007
Мислења
3.724
Поени од реакции
1.333
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.
 

THE_CHOSEN_ONE

1903-2012
Член од
13 август 2007
Мислења
3.724
Поени од реакции
1.333
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();
      }
}

}

}
 
Член од
1 април 2008
Мислења
75
Поени од реакции
3
Ова
for (i = 1; i <= 10; i++)
во ова
for (i = 0; i < 10; i++)
 

диме

When Am I ?
Член од
14 февруари 2007
Мислења
806
Поени од реакции
21
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: прозорче.
 

THE_CHOSEN_ONE

1903-2012
Член од
13 август 2007
Мислења
3.724
Поени од реакции
1.333
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?
 

диме

When Am I ?
Член од
14 февруари 2007
Мислења
806
Поени од реакции
21
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();
 

THE_CHOSEN_ONE

1903-2012
Член од
13 август 2007
Мислења
3.724
Поени од реакции
1.333
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>
 
Член од
1 април 2008
Мислења
75
Поени од реакции
3
Ајмо 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();
}

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

THE_CHOSEN_ONE

1903-2012
Член од
13 август 2007
Мислења
3.724
Поени од реакции
1.333
@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)
 
Член од
1 април 2008
Мислења
75
Поени од реакции
3
Или import javax.swing.JTextField
или смени
niza=((javax.swing.JTextField)f.get(this)).getText();
 

диме

When Am I ?
Член од
14 февруари 2007
Мислења
806
Поени од реакции
21
Ајмо 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. :)
 

THE_CHOSEN_ONE

1903-2012
Член од
13 август 2007
Мислења
3.724
Поени од реакции
1.333
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?
 

диме

When Am I ?
Член од
14 февруари 2007
Мислења
806
Поени од реакции
21
Код:
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

На врв Bottom