2 sinat 36899414 sinat_36899414 于 2017.01.03 19:00 提问

hibernate 配置文件报错

图片说明
之前是create没问题,换成update就报错,但还是能执行。不过第二天数据库就报10061错误,不清楚问题到底出在哪里。下面是我的全部代码。

配置文件:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<session-factory>
    <property name="connection.username">root</property>
    <property name="connection.url">jdbc:mysql://localhost:5656/mysql</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="connection.password">123456</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="hbm2ddl.auto">update</property>
    <mapping resource="Students.hbm.xml"/>
</session-factory>

测试文件:

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.Date;

public class Studentstest {
    private SessionFactory sessionFactory;
    private Session session;
    private Transaction transaction;

    @Before
    public void init() {
        //创建配置对象
        Configuration config = new Configuration().configure();
        //创建服务注册对象
      //  ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build();
        //创建会话工厂对象
        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
        sessionFactory = config.buildSessionFactory(serviceRegistry);
        //会话对象
        session = sessionFactory.openSession();
        //开启事务
        transaction = session.beginTransaction();
    }

    @After
    public void destory() {
        transaction.commit(); //提交事务
        session.close(); //关闭会话
        sessionFactory.close(); //关闭会话工厂
    }

    @Test
    public void testSaveStudents() {//增加
        //生成学生对象
        Students s = new Students();
        s.setSname("POLY Ma");
        s.setBirthday(new Date());
        s.setAddress("Hong Kong");
        s.setGender("M");
        session.save(s); //保存对象进入数据库
    }
    @Test
    public void search(){//查找
        Students s=session.get(Students.class,1);//1 is primary key
        System.out.print(s);
    }
    @Test
    public void update(){//修改
        Students s=session.get(Students.class,2);//look on
        s.setAddress("Hang Zhou");
        session.update(s);
    }
    @Test
    public void delete(){//删除
        Students s=session.get(Students.class,1);
        session.delete(s);
    }
}

映射文件:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<class name="Students" table="students">
    <id name="sid" type="int">
        <column name="sid"/>
        <generator class="native"/>
    </id>
    <property name="sname" type="java.lang.String">
        <column name="sname"/>
    </property>
    <property name="gender" type="java.lang.String">
        <column name="gender"/>
    </property>
    <property name="birthday" type="date">
        <column name="birthday"/>
    </property>
   <property name="address" type="java.lang.String">
       <column name="address"/>
   </property>

</class>

主体:
import java.util.Date;

/**

  • Created by tcxd on 2016/12/28.
    */
    public class Students {
    private int sid; //学号
    private String sname; //姓名
    private String gender; //性别
    private Date birthday; //出生日期
    private String address; //地址

    public Students() {
    }

    public Students(int sid, String sname, String gender, Date birthday, String address) {
    this.sid = sid;
    this.sname = sname;
    this.gender = gender;
    this.birthday = birthday;
    this.address = address;
    }

    public int getSid() {
    return sid;
    }

    public void setSid(int sid) {
    this.sid = sid;
    }

    public String getSname() {
    return sname;
    }

    public void setSname(String sname) {
    this.sname = sname;
    }

    public String getGender() {
    return gender;
    }

    public void setGender(String gender) {
    this.gender = gender;
    }

    public Date getBirthday() {
    return birthday;
    }

    public void setBirthday(Date birthday) {
    this.birthday = birthday;
    }

    public void setAddress(String address) {
    this.address = address;
    }
    public String getAddress() {
    return address;
    }

    @Override
    public String toString() {
    return "Students{" +
    "sid=" + sid +
    ", sname='" + sname + '\'' +
    ", gender='" + gender + '\'' +
    ", birthday=" + birthday +
    ", address=" + address +
    '}';
    }
    }

2个回答

devmiao
devmiao   Ds   Rxr 2017.01.03 19:00
已采纳
sinat_36899414
sinat_36899414 <property name="hbm2ddl.auto">update</property>注释后,会默认哪种形式?
一年多之前 回复
JE_GE
JE_GE   2017.01.03 21:25
sinat_36899414
sinat_36899414 还是没有回答我的问题
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于Hibernate配置文件,头文件的一个错误
hibernate.cfg.xml和XXXX.hbm.xml,头文件是不一样的。 Hibernate如下: "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> XXXX.hbm.xml如下:
初始化hibernate 时可能出现重复读取hibernate配置文件导致报错的解决办法
假设你有一个应用程序,登录系统时会初始化很多信息,比如使用ajax同时初始化两类信息,这时如果你的hibernate还没初始化信息,就会有两个线程同时进行初始化操作。这时hibernate就会发现两个相同的hbm配置文件 被读取,所以,问题发生了。这怪谁?其实是我们自己的问题,如果你出现了上面的问题,就需要看看你的获取session的机制是否正常了这是使用myeclipse自动生成的ses
hibernate.cfg.xml配置Mysql连接字符串时提示错误
<!DOCTYPE hibernate-configuration PUBLIC           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> JDBC for MySQL jdb
Hibernate介绍与配置文件、jar包的说明(一)
在编写java程序的时候总会和数据库打交道,大家都知道java是面向对象的编程语言、 在java里面一切都是类,java里面用的是对象模型,对象模型包括的概念有:继承、多态等; 而数据库是关系模型,反映的是表与表的关系、关系模型包括的概念有:表、主键、外键等, 在我们编写java程序时需要将对象模型与关系模型进行转换,通常采用两种方法来转换这两种关系: 1、使用数据库连接技
Hibernate配置文件不在默认目录时的路径问题
1、Hibernate主配置文件hibernate.cfg.xml和映射文件className.hbm.xml不在默认的src/目录下,而是放在同一个自定义目录中,如图所示。 2、此时调用configure()方法加载主配置文件时,就要将主配置文件的全路径(包名+文件名全名)作为方法参数。 3、当主配置文件引入映射文件时,resource属性的值也要写映射文件的
Hibernate 映射文件配置错误信息
今天写hibernate映射文件时,进行单元测试时,提示一下错误。
Hibernate同名不同包下的映射文件同时加载问题
如图,经过测试如果使用同名的映射文件,虽然不同包下,但是还是会报错: java.lang.ExceptionInInitializerError at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newIns
Hibernate配置文件中配置MySQL编码问题
不要轻易下结论,除非你亲自测试成功过.
hibernateJar资源包
hibernate主配置文件hibernate主配置文件hibernate主配置文件hibernate主配置文件hibernate主配置文件
hibernate的配置文件*hbm.xml的class标签的 schema 是什么意思有什么作用?
schema 是什么意思有什么作用?