Hibernate运行环境搭建

来源:互联网 发布:淘宝找客服兼职 编辑:程序博客网 时间:2024/05/21 21:40

导入相关jar包:



实体User.java

package com.dx.pojo;

public class User {
private Integer userId;
private String name;
private String pass;

public User(){}
public User(String name,String pass){
this.name = name;
this.pass = pass;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
@Override
public String toString() {
return "User [userId=" + userId + ", name=" + name + ", pass=" + pass
+ "]";
}

}


对应表user


配置文件hibernate.cfg.xml

<!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.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<!-- 其他配置 -->
<!-- 运行时,控制台显示sql语句 -->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">false</property>
<!-- 
create:先删除,再创建
update:如果表不存在就创建,不一样就更新,一样就什么都不做。
create-drop:初始化时创建表,SessionFactory执行close()时删除表。
validate:验证表结构是否一致,如果不一致,就抛异常。
-->
<property name="hbm2ddl.auto">update</property>

<!-- 导入映射文件 -->
<mapping resource="com/dx/pojo/user.hbm.xml"/>

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

单个实体对应的映射文件(user.hbm.xml)

<?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">
<hibernate-mapping>
<class name="com.dx.pojo.User" table="user">
<id name="userId" column="t_id" type="java.lang.Integer">
<generator class="identity"/>
</id>
<property name="name" type="java.lang.String" column="t_name"/>
<property name="pass" type="java.lang.String" column="t_pass"/>
</class>

</hibernate-mapping>


工具类HibernateSessionFactory.java

package com.dx.util;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
public class HibernateSessionFactory {

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


static {
    try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
    }

    private HibernateSessionFactory() {
    }

    public static Session getSession() throws HibernateException {
        Session session = (Session) threadLocal.get();


if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
rebuildSessionFactory();
}
session = (sessionFactory != null) ? sessionFactory.openSession() : null;
threadLocal.set(session);
}


        return session;
    }

public static void rebuildSessionFactory() {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}

    public static void closeSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
        threadLocal.set(null);


        if (session != null) {
            session.close();
        }
    }

public static org.hibernate.SessionFactory getSessionFactory() {
return sessionFactory;
}

public static void setConfigFile(String configFile) {
HibernateSessionFactory.configFile = configFile;
sessionFactory = null;
}


public static Configuration getConfiguration() {
return configuration;
}

}


测试:Test.java

package com.dx.test;

import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import com.dx.pojo.User;
import com.dx.util.HibernateSessionFactory;

public class Test {
public static void main(String[] args) {
findAll();
//baocun();
}

//查找所有记录
public  static void findAll(){
String hql = "from User";
Query query = HibernateSessionFactory.getSession().createQuery(hql);
List<User> list = query.list();
for(User g:list){
System.out.println(g);
}
}

//保存
public static void baocun(){
User good = new User("zhangsan","12324");
Session session = HibernateSessionFactory.getSession();
//开启事务
org.hibernate.Transaction t = session.beginTransaction();
session.save(good);
t.commit();
}
}









0 0
原创粉丝点击