qq_28420603 2016-10-19 14:37 采纳率: 100%
浏览 1597
已结题

问下各位大神,我刚学Hibernate,下载是我的第一个代码,为什么老链接报错,希望大神们解答一下

1.持久化类代码:
package Model;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

//开发持久化类
public class Connec_Base {
private SessionFactory sessionFactory;
private Session session;
private Transaction trancaction;
private Configuration conf;
private ServiceRegistry serviceRegister;
public void init(){
//创建配置对象
try {
conf = new Configuration().configure();
} catch (HibernateException e) {
System.out.println("创建配置对象失败");
e.printStackTrace();
}
//创建服务注册对象
try {
// serviceRegister = new StandardServiceRegistryBuilder().
// applySettings(conf.getProperties()).build();
serviceRegister=new ServiceRegistryBuilder().applySettings(conf.getProperties()).buildServiceRegistry();
} catch (Exception e) {
System.out.println("创建服务注册对象失败");
e.printStackTrace();
}
System.out.println(serviceRegister);
try {
//创建会话工厂对象
sessionFactory=conf.buildSessionFactory(serviceRegister);
} catch (HibernateException e) {
System.out.println("创建会话工厂对象失败");
e.printStackTrace();
}
//会话对象
session=sessionFactory.openSession();
//开启事物
trancaction=session.beginTransaction();
}

public void Destory(){
    //开启事物
    trancaction.commit();
    //关闭会话
    session.close();
    //关闭会话工厂
    sessionFactory.close();
}

public void add(Student s){
    init();
    session.save(s);
    Destory();
}

}
2.hibernate.cfg.xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">


com.mysql.jdbc.Driver
jdbc:mysql://127.0.0.1:3306/text?useUnicode=true&characterEncoding=UTF-8
root
ch2738

     <!-- 显示sql语句  -->
    <property name="hibernate.show_sql">true</property>
    <!-- 自动创建表格 -->
    <property name="hibernate.hbm2ddl.auto">true</property>
    <!-- 方言:为每一种数据库提供适配器,方便转换 -->  
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>  

    <mapping resource="Model/Student.hbm.xml"/>
</session-factory>


3.Student.hbm.xml代码
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">















代码结构图
3报错信息
十月 19, 2016 10:34:49 下午 org.hibernate.annotations.common.reflection.java.JavaReflectionManager
INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
十月 19, 2016 10:34:49 下午 org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.11.Final}
十月 19, 2016 10:34:49 下午 org.hibernate.cfg.Environment
INFO: HHH000206: hibernate.properties not found
十月 19, 2016 10:34:49 下午 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
十月 19, 2016 10:34:49 下午 org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
十月 19, 2016 10:34:49 下午 org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml
十月 19, 2016 10:34:49 下午 org.hibernate.cfg.Configuration addResource
INFO: HHH000221: Reading mappings from resource: Model/Student.hbm.xml
十月 19, 2016 10:34:50 下午 org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
十月 19, 2016 10:34:50 下午 org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
org.hibernate.boot.registry.internal.StandardServiceRegistryImpl@184f6be2
十月 19, 2016 10:34:50 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!)
十月 19, 2016 10:34:50 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://127.0.0.1:3306/text?useUnicode=true&characterEncoding=UTF-8]
十月 19, 2016 10:34:50 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000046: Connection properties: {user=root, password=****}
十月 19, 2016 10:34:50 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000006: Autocommit mode: false
十月 19, 2016 10:34:50 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
创建会话工厂对象失败
org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:122)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:140)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:58)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:75)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:106)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:260)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:94)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845)
at Model.Connec_Base.init(Connec_Base.java:38)
at Model.Connec_Base.add(Connec_Base.java:59)
at Model.text.main(text.java:7)
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:943)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4113)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1308)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2336)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:792)
at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:55)
... 15 more
Exception in thread "main" java.lang.NullPointerException
at Model.Connec_Base.init(Connec_Base.java:44)
at Model.Connec_Base.add(Connec_Base.java:59)
at Model.text.main(text.java:7)

  • 写回答

2条回答 默认 最新

  • GrayHJX 2016-10-20 02:29
    关注

    你的数据库连接不正确导致你的连接空指针,着重检查关于数据库的配置或者重启一下你的mysql。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建