技术文章分类(180)

技术随笔(11)

eclipse中hibernate的配置(mysql)

注意:一共需要新增4个文件,外加数据库建表,添加jar包。就ok了

java工程:

sqlyog新建的数据库:

1、添加需要的jar包(9个)

jar包下载链接:http://download.csdn.net/download/li841538513/7066477

注意:mysqldriver.jar建议最好换成:mysql-connector-java-3.0.17-bin.jar。(java.sql.SQLException: Unknown type '246 in column 0 of 1 in binary-encoded result set这个异常容易出现在对Bigint字段的操作上。使用mysql-connector-java-3.0.17-bin.jar就没有问题了,而且目前好象只有这个版本无此bug。

mysql-connector-java-3.0.17-bin.jar下载地址:

添加jar包到工程。

2、假设我新建数据库名:tianmao_data   表名:user  (你也可以去其他名字)

添加你需要的字段:这里我添加的字段id , user_id , brand_id, type, date   5个字段。

注意id设置不为空,自增长

3、User.java

每个字段都对应数据库的字段

package cn.itcast.hibernate.domain;


public class User {
    
    private int id;
    private int user_id;
    private int brand_id;
    private String type;
    private String date;
    
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public int getUser_id() {
        return user_id;
    }
    public void setUser_id(int user_id) {
        this.user_id = user_id;
    }
    public int getBrand_id() {
        return brand_id;
    }
    public void setBrand_id(int brand_id) {
        this.brand_id = brand_id;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    
    
    
    

}

4、User.hbm.xml

注意: table=“user” 是数据库表名,其他参数都对应User.java的字段。  

    id特殊对待。  

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping package = "cn.itcast.hibernate.domain">

    <class name="User" table="user">
        <id name = "id">
            <generator class="native"/>
        </id>
        <property name="user_id"/>
        <property name="brand_id"/>
        <property name="type"/>
        <property name="date"/>
        
    </class>
    

</hibernate-mapping>

 

5、hibernate.cfg.xml

注意:tianmao_data是数据库名   这里是mysql数据库

<?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">
<hibernate-configuration>
    <session-factory>

       <property name="hibernate.connection.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <property name="hibernate.connection.password">sa</property>
        <property name="hibernate.connection.url">
            jdbc:mysql://localhost:3306/tianmao_data
        </property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
        <property name="show_sql">true</property>
       
      <!-- mapping resources --> 
      <mapping resource="cn/itcast/hibernate/domain/User.hbm.xml"/> 

    </session-factory>
</hibernate-configuration>

 

6、Base.java(就是用来启动主函数,名字随便取)

这里实现的功能:新增一组数据

package cn.main;

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

import cn.itcast.hibernate.domain.User;

public class Base {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Configuration cfg = new Configuration();
        SessionFactory sf = cfg.configure().buildSessionFactory();
        Session session = sf.openSession();
        session.beginTransaction();
        
        User s = new User();
        s.setUser_id(2);
        s.setBrand_id(2);
        s.setType("3");
        s.setDate("06-07");
        session.save(s);
        
        session.getTransaction().commit();
     session.close();
     sf.close(); System.out.println(
"Base.main()"); } }

完了后,就可以运行了,一般来说,是不会有什么问题了。

注意的是,包名要跟我的一样,如果你自己完全能改我的代码,那就随意了。

好啦,祝您愉快

 

 

 

posted @ 2014-03-19 16:56  坤哥MartinLi  阅读(522)  评论(0编辑  收藏  举报