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();
}
}
}
}
这是我的代码我不知道在哪里做错误但是当我运行这个应用程序然后Exception来了我创建Hibernate示例应用程序
线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:0 在com.candidjava.AddStudent.main(AddStudent.java:15) 这个例外来了我不知道如何解决它请帮助...
答案 0 :(得分:2)
问题之一可能是您需要使用&&在以下情况下:
if (args[0] != null || args[1] != null || args[2] != null) {// begin if
cHange to:
if (args[0] != null && args[1] != null && args[2] != null) {
以下检查也存在相同的逻辑问题:
if ((name.equals("") || degree.equals("") || phone.equals(""))) {
应该是:
if ((name.equals("") && degree.equals("") && phone.equals(""))) {
答案 1 :(得分:1)
我猜你没有传递所有的参数使你的条件符合逻辑而不是
if (args[0] != null && args[1] != null && args[2] != null) {
而且,您在配置configure
student1.cfg.xml
我相信上面的文件是Student
pojo。
不是hibernate configuration
文件。
在处理hibernate时,请从properties
文件中读取hibernate.cfg.xml
而不是args。
答案 2 :(得分: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;
公共类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();
}
}
}
答案 3 :(得分:0)
本教程已经在candidjava网站上重写,试试这个新的hibernate annotations示例