java.lang.unsupportedoperationexception应用程序必须提供JDBC连接

时间:2016-07-29 16:22:18

标签: java mysql spring hibernate jdbc

我是hibernate的新手,我正在尝试编写一个简单的程序,我在java代码中遇到了这行代码的错误:

session.beginTransaction();

这是我的hibernate.cfg.xml代码:

<session-factory>

    <!-- JDBC Database conncetion settings -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="conncetion.url">jdbc:mysql://127.0.0.1:3306/hb_student_tracker?useSSL=false</property>
    <property name="conncetion.username">hbstudent</property>
    <property name="connection.password">hbstudent</property>

    <!-- JDBC conncetion pool settings ... using built-in test pool -->
    <property name="conncetion.pool_size">1</property>

    <!-- Select our SQL dialect -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

    <!-- Echo the SQL to stdout -->
    <property name="show_sql">true</property>

    <!-- set the current session context -->
    <property name="current_session_context_class">thread</property>

</session-factory>

和java文件:

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

import com.luv2code.hibernate.demo.entity.Student;

public class CreateStudentDemo {

    public static void main(String[] args) {

        //create session factory
        SessionFactory factory = new Configuration()
                                    .configure("hibernate.cfg.xml")
                                    .addAnnotatedClass(Student.class)
                                    .buildSessionFactory();

        //create session
        Session session = factory.getCurrentSession();

        try{
            // use the session object to save java object

            //create a student object
            System.out.println("Creating new student object");
            Student tempStudent = new Student("Paul", "Wall", "paul@luv2code.com");

            //start a transaction
            session.beginTransaction();

            //save the student object
            System.out.println("Saving the student...");
            session.save(tempStudent);

            //commit transaction
            session.getTransaction().commit();
            System.out.println("Done!");

        }
        finally{
           factory.close();
        }

    }
}

我使用hibernate 5.2.1以防万一。 我还检查了其他问题,但没有一个可以提供帮助。

2 个答案:

答案 0 :(得分:2)

好像你有拼写错误。将conncetion更改为connection,即

<property name="conncetion.url">
<property name="conncetion.username">
<property name="conncetion.pool_size">

<property name="connection.url">
<property name="connection.username">
<property name="connection.pool_size">

答案 1 :(得分:0)

我认为你应该在你的名字属性中使用hibernate,如:

<property name="hibernate.connection.driver_class">
<property name="hibernate.connection.url">
<property name="hibernate.connection.username">
<property name="hibernate.connection.password">
<property name="hibernate.connection.pool_size">

还有拼写错误使用连接而不是 conncetion