当前位置:编程学习 > JAVA >>

制作Hibernate一个HelloWorld的例子,不知道怎么弄

自己看书弄了个HelloWorld,插入数据到数据库没有成功没有成功。
Mymain类代码

package helloworld;

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

public class MyMain{


//private static String configFile="/hibernate.cfg.xml";
private static Configuration configuration=new Configuration();
//private static final ThreadLocal<Session> threadLocal=new ThreadLocal<Session>();
//private static SessionFactory sessionFactory;

/*static{
try{
configuration.configure(configFile);
sessionFactory=configuration.buildSessionFactory();
}catch(Exception e){
e.printStackTrace();
}
}

public static Session getSession(){
Session session=(Session)threadLocal.get();
if(session==null || !session.isOpen()){
session=sessionFactory.openSession();
threadLocal.set(session);
}
return session;
}*/

public static void main(String[] args){


Session session=null;
Transaction trans=null;

try{
//session=HibernateSessionFactory.getSession();
//session=getSession();

SessionFactory sf=configuration.configure().buildSessionFactory();
session=sf.openSession();
trans=session.beginTransaction();
User[] users=new User[5];
for(int i=0;i<users.length;i++){
users[i]=new User("User"+i,"pwd");
session.save(users[i]);
System.out.println(i);
}

session.getTransaction().commit();
}catch(HibernateException e){
System.out.println("I am failed!");
if(trans!=null)
trans.rollback();
}finally{
if(session!=null)
session.close();
}
}
}



实体类代码

package helloworld;

public class User {

private int id;
private String username;
private String password;

public User(){
super();
}

public User(String username,String password){
super();
this.username=username;
this.password=password;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}


映射文件

<?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>
    <class name="User" table="users">
        <id name="id" column="id">
             <generator class="native"></generator>
        </id>
        <property name="username" unique="true" not-null="true" length="20" column="username"></property>
        <property name="password" unique="true" not-null="true" length="20" column="password"></property>
    </class>

</hibernate-mapping>


配置文件

<?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">
<hibernate-configuration>
    <session-factory>
        
        
        <property name="connection.url">jdbc:mysql://localhost:3306/test</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <mapping resource="helloworld/User.hbm.xml" />
    </session-factory>
</hibernate-configuration>


运行后的信息

2013-1-5 21:59:09 org.hibernate.cfg.Environment <clinit>
信息: Hibernate 3.2.5
2013-1-5 21:59:09 org.hibernate.cfg.Environment <clinit>
信息: hibernate.properties not found
2013-1-5 21:59:09 org.hibernate.cfg.Environment buildBytecodeProvider
信息: Bytecode provider name : cglib
2013-1-5 21:59:09 org.hibernate.cfg.Environment <clinit>
信息: using JDK 1.4 java.sql.Timestamp handling
2013-1-5 21:59:09 org.hibernate.cfg.Configuration configure
信息: configuring from resource: /hibernate.cfg.xml
2013-1-5 21:59:09 org.hibernate.cfg.Configuration getConfigurationInputStream
信息: Configuration resource: /hibernate.cfg.xml
2013-1-5 21:59:09 org.hibernate.cfg.Configuration addResource
信息: Reading mappings from resource : helloworld/User.hbm.xml
2013-1-5 21:59:09 org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
信息: Mapping class: User -> users
I am failed!



其实都是看书,敲出来的代码。求解,怎么插入数据呢 --------------------编程问答-------------------- 给你发一个最基础的例子吧。你的例子我就不看了。你照着我的对对。形式差不多的一个例子
package com.briup.hibernate.basic;

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

import com.briup.hibernate.pojo.Student;


public class FirstHibernate {
public static void main(String[] args) {
//1.使用configuration初始化hibernate读取配置文件
Configuration config=new Configuration();
config.configure();//默认加载hibernate.cfg.xml的配置文件
//config.configure("hibernate.cfg.xml");//配置文件自定义配置
//2构建sessionfactory
SessionFactory fac=config.buildSessionFactory();

//3生成session
//session是一个接口,openSession实现的接口的对象
Session session=fac.openSession();//使用默认session
Session session2=fac.getCurrentSession();

//System.out.println(session2);
//4.开始事务
Student s=new Student();
s.setId(1);
s.setName("briup");
s.setAddress("briup");
s.setAge(12); 
Transaction tr=session.beginTransaction();
session.save(s);//提交操作s
//save delete update

tr.commit();
session.close();
}
}

package com.briup.hibernate.pojo;

import java.io.Serializable;

import javax.persistence.Column;

import org.hibernate.annotations.Entity;


public class Student implements Serializable{

private Long id;
private String name;
private String address;
private int age;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(long id, String name, String address, int age) {
super();
this.id = id;
this.name = name;
this.address = address;
this.age = age;
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", address=" + address
+ ", age=" + age + "]";
}

}

配置文件:
student.hbm.xml

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

<hibernate-mapping package="com.briup.hibernate.pojo" >
<class name="Student"  table="student" >
<id name="id" column="id">
</id>
<property name="name" column="name"></property>
<property name="address" column="address"></property>
<property name="age" column="age"></property>
</class>
</hibernate-mapping>

注意账户名密码以及数据库url别复制

<?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="dialect">
org.hibernate.dialect.Oracle10gDialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@127.0.0.1:1521:xe
</property>
<property name="connection.username">briup</property>
<property name="connection.password">briup</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="show_sql">true</property><!-- 鏄剧ずsql璇彞-->
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<property name="current_session_context_class">thread</property>

<mapping resource="com/briup/hibernate/pojo/Student.hbm.xml </session-factory>
</hibernate-configuration>
--------------------编程问答-------------------- 求助解决!
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,