// This is my pojo class
package com.kittu.hibernate;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue
private int Rollno;
private String Name;
public int getRollno() {
return Rollno;
}
public void setRollno(int Rollno) {
this.Rollno = Rollno;
}
public String getName() {
return Name;
}
public void setName(String Name) {
this.Name = Name;
}
}
//**Main class**
package com.kittu.hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class Main {
public static void main (String args[])
{
User u1=new User();
u1.setName("gontu");
Configuration cfg = new Configuration();
cfg = cfg.configure("hibernate.cfg.xml");
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session session=sessionFactory.openSession();
session.beginTransaction();
u1 = (User)session.get(User.class,1);
System.out.println("student object having name as" +u1.getName());
session.getTransaction().commit();
session.close();
sessionFactory.close();
}
}
// 我在MySQL数据库中创建的数据库名用户为什么我在我的hibernate get方法中出现空指针异常?
错误
run: Aug 12, 2017 10:42:18 AM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.1.0.Final} Aug 12, 2017 10:42:18 AM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Aug 12, 2017 10:42:18 AM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist Aug 12, 2017 10:42:18 AM org.hibernate.boot.jaxb.internal.stax.LocalXmlResourceResolver
resolveEntity 警告:HHH90000012:公认过时的休眠命名空间http://hibernate.sourceforge.net/hibernate-configuration。改为使用 命名空间http://www.hibernate.org/dtd/hibernate-configuration 。支持过时的DTD/XSD命名空间可随时在 处删除。 2017年8月12日上午10:42:19 org.hibernate.annotations.common.reflection.java.JavaReflectionManager 信息:HCANN000001:Hibernate Commons Annotations {5.0.1.Final} Aug 12,2017 10:42:19 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl 配置 警告:HHH10001002:(!不用于生产使用)中使用Hibernate内置的连接池 2017年8月12日上午十点42分19秒org.hibernate作为。 engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO:HHH10001005:在URL [jdbc:mysql:// localhost:3360/hibernate_tutorials]上使用驱动程序[com.mysql.jdbc.Driver] Aug 12,2017 10:42 :20 AM org.hibernate.engine.jdbc.connections.internal.Driv erManagerConnectionProviderImpl buildCreator INFO:HHH10001001:连接属性:{用户=根,密码= ****} 2017年8月12日上午10点42分20秒org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO:HHH10001003:自动提交模式:false Aug 12,2017 10:42:20 AM org.hibernate.engine.jdbc.connections.internal.PooledConnections INFO:HHH000115:Hibernate连接池大小:1(min = 1) Aug 12,2017 10:42:20 AM org.hibernate.dialect.Dialect 信息:HHH000400:使用方言:org.hibernate.dialect.MySQLDialect 2017年8月12日上午10:42:21 org.hibernate.envers.boot .internal.EnversServiceImpl配置 信息:Envers集成启用? :如果存在降表hibernate_sequence 休眠::真 休眠如果存在用户 降表休眠:创建表hibernate_sequence(next_val BIGINT) 休眠:插入hibernate_sequence值(1) 休眠:创建表用户(Rollno整数不为空,名称varchar(255),主键(Rollno)) 2017年8月12日上午10:42:24 org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources 信息:HHH000476:执行导入脚本'org.hibernate.tool .schema.internal.exec.ScriptSourceInputNonExistentImpl @ 623e088f' Hibernate:从user0选择user0_.Rollno作为Rollno1_0_0_,user0_.Name作为Name2_0_0_ user0_其中user0_.Rollno =? 异常在线程 “主” 显示java.lang.NullPointerException 在com.kittu.hibernate.Main.main(Main.java:24) BUILD停止(总时间:1分14秒)
是的。看起来数据库中没有数据。用户在保存之前试图检索对象。 –