如何在动态Web项目中使用Hibernate在数据库中插入值

时间:2014-11-21 11:43:42

标签: hibernate

User_manager.java

package com.csc.trg.twit_clone.tweet_pack;

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

public class User_Manager 
{

    public static void main(String[] args)

    {  
          //creating configuration object  
        Configuration cfg=new Configuration();  
        cfg.configure("hibernate.cfg.xml");//populates the data of the configuration file         
        //creating session factory object     
        SessionFactory factory=cfg.buildSessionFactory();         
        //creating session object  
        Session session=factory.openSession();    
        //creating transaction object  
        Transaction t=session.beginTransaction();  
        User_Bean H =new User_Bean();
      H.setUserId(1001);  
        H.setUserName("visgf");  
        H.setUserPwd("passw");
       H.setEmailId("visa@gmail.com");
       // session.persist(H);                   //persisting the object  
          session.save(H);

        t.commit();                         //transaction is committed  
        session.close(); 
        factory.close();

        System.out.println("successfully registered");  
        }
}

**user_bean**

package com.csc.trg.twit_clone.tweet_pack;
public class User_Bean
{

    int userId;
    String userName;
    String emailId;
    String userPwd;

public String getUserPwd() 
{
    return userPwd;
}
public void setUserPwd(String userPwd) 
{
    this.userPwd = userPwd;
}

public int getUserId() 
{
    return userId;
}
public void setUserId(int userId)
{
    this.userId = userId;
}
public String getUserName()
{
    return userName;
}
public void setUserName(String userName) 
{
    this.userName = userName;
}
public String getEmailId() 
{
    return emailId;
}
public void setEmailId(String emailId)
{
    this.emailId = emailId;
}

}

**hibernate.cfg.xml**

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

<hibernate-configuration>  

    <session-factory>  
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
        <property name="connection.url">jdbc:mysql://localhost/payrol</property>  
        <property name="connection.username">root</property>   
        <property name="connection.password">root</property>  
         <property name="show_url">true</property> 
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>        
         <property name="hbm2ddl.auto">update</property>  
    <mapping resource="twitt.hbm.xml"/>  
    </session-factory>  
</hibernate-configuration>  

**twit.hbm.xml**

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

 <hibernate-mapping>  

  <class name="com.csc.trg.twit_clone.tweet_pack.User_Bean" table="User_table">  
    <id name="userId">  
     <generator class="assigned"/>  
    </id>  
    <property name="userId" column="user_name" type="int" />
    <property name="userName" column="user_name" type="string" />  
       <property name="password" column="password" type="string" /> 
       <property name="emailId" column="email" type="String" />
  </class>            
 </hibernate-mapping>  

我试图使用hibernate从java程序更新mysql数据库的值这是我在hibernate中的第一个程序&#34;我得到这个错误PLZ帮助。

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.MappingException: Could not determine type for: String, for columns: [org.hibernate.mapping.Column(email)]
    at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:266)
    at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:253)
    at org.hibernate.mapping.Property.isValid(Property.java:185)
    at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:410)
    at org.hibernate.mapping.RootClass.validate(RootClass.java:192)
    at org.hibernate.cfg.Configuration.validate(Configuration.java:1099)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1284)
    at com.csc.trg.twit_clone.tweet_pack.User_Manager.main(User_Manager.java:21)

我在src中添加了tdd,配置和映射文件。并添加了所有的罐子。

1 个答案:

答案 0 :(得分:1)

请在配置文件中交叉检查&#34;字符串&#34;的情况。

<property name="password" column="password" type="string" /> 
<property name="emailId" column="email" type="String" />
相关问题