0
package com.candidjava;

import java.sql.*;
import java.io.*;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;

public class AddStudent {
    private static SessionFactory sessionFactory1;

    public static void main(String args[]) throws Exception {
        if (args[0] != null || args[1] != null || args[2] != null) {// begin if
                                                                    // A
            String name = args[0];
            String name1 = args[0];
            String degree = args[1];
            String phone = args[2];
            System.out.println("Name: " + name);
            System.out.println("Degree: " + degree);
            System.out.println("Phone: " + phone);

            if ((name.equals("") || degree.equals("") || phone.equals(""))) {
                System.out.println("All informations are Required");
            } else {

                try {// begin try

                    sessionFactory1 = new Configuration().configure(
                            "com\\xml\\student1.cfg.xml").buildSessionFactory();
                } catch (Exception e) {
                    System.out.println("mathan");
                    System.out.println(e.getMessage());
                    System.err
                            .println("Initial SessionFactory creation failed."
                                    + e);

                }

                Session s1 = sessionFactory1.openSession();
                Transaction tx1 = s1.beginTransaction();
                Student1 stu1 = new Student1();
                stu1.setName(name1);
                s1.save(stu1);
                tx1.commit();
                System.out.println("Added to mysql Database");
                if (s1 != null)
                    s1.close();
            }
        }
    }
}

これは私のコードですが、どこで間違いを犯しているのかわかりませんが、このアプリケーションを実行すると例外が発生します Hibernateサンプルアプリケーションを作成しています

スレッド「メイン」での例外 java.lang.ArrayIndexOutOfBoundsException: 0 at com.candidjava.AddStudent.main(AddStudent.java:15) この例外が発生します 修正方法がわかりません 助けてください ...

4

4 に答える 4

2

問題の 1 つは、次の条件で && を使用する必要があることです。

    if (args[0] != null || args[1] != null || args[2] != null) {// begin if

次のように変更します。

    if (args[0] != null && args[1] != null && args[2] != null) {

また、次のチェックにも同じ論理的な問題があります。

        if ((name.equals("") || degree.equals("") || phone.equals(""))) {

する必要があります:

        if ((name.equals("") && degree.equals("") && phone.equals(""))) {
于 2013-10-03T06:03:31.340 に答える
1

私はあなたがすべての引数を渡していないと思います

 if (args[0] != null && args[1] != null && args[2] != null) { 

そして、あなたは設定で間違った方向に進んでいますconfigure

student1.cfg.xml

上記のファイルは、Studentpojo のマッピング xml ファイルだと思います。

休止状態configurationファイルではありません。

休止状態を処理している間、引数からではなくファイルpropertiesから読み取ります。hibernate.cfg.xml

休止状態の構成の公式ドキュメント

于 2013-10-03T06:04:14.590 に答える
0

一度に簡単に検証できます

package com.candidjava;

java.sql.* をインポートします。

java.io.* をインポートします。

org.hibernate.SessionFactory をインポートします。

org.hibernate.Transaction をインポートします。

org.hibernate.HibernateException をインポートします。

org.hibernate.Session をインポートします。

org.hibernate.cfg.Configuration をインポートします。

パブリック クラス AddStudent {

private static SessionFactory sessionFactory1;

public static void main(String args[]) throws Exception {
     if ((name.equals("") && degree.equals("") && phone.equals(""))) {
            System.out.println("All informations are Required");
        } else {

        String name = args[0];
        String name1 = args[0];
        String degree = args[1];
        String phone = args[2];
        System.out.println("Name: " + name);
        System.out.println("Degree: " + degree);
        System.out.println("Phone: " + phone);   

            try {// begin try

                sessionFactory1 = new Configuration().configure(
                        "com\\xml\\student1.cfg.xml").buildSessionFactory();
            } catch (Exception e) {
                System.out.println("mathan");
                System.out.println(e.getMessage());
                System.err
                        .println("Initial SessionFactory creation failed."
                                + e);

            }

            Session s1 = sessionFactory1.openSession();
            Transaction tx1 = s1.beginTransaction();
            Student1 stu1 = new Student1();
            stu1.setName(name1);
            s1.save(stu1);
            tx1.commit();
            System.out.println("Added to mysql Database");
            if (s1 != null)
                s1.close();
        }
    }
}
于 2013-10-03T10:15:53.720 に答える