1、下载Hibernate3.0.jar包。
2、在src下新建hibernate.cfg.xml文件其内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property><!-- 显示SQL语句 -->
<property name="max_fetch_depth">1</property><!-- 未知 -->
<property name="jdbc.fetch_size">5</property><!-- 未知 -->
<property name="connection.url">jdbc:mysql://localhost:3306/myuser?useUnicode=true&characterEnconding=GB2312</property><!-- 连接数据库字符串 -->
<property name="connection.username">****</property><!-- 数据库用户名 -->
<property name="connection.password">****</property><!-- 数据库密码 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property><!-- 驱动路径 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- 数据库方言 -->
<mapping resource="com/test/myhibernate/dto/user.hbm.xml" /><!-- hbm.xml文件配置路径 -->
</session-factory>
</hibernate-configuration>
3、根据项目要求在模块目录下新建几个pagekage。分别是:action,dto,dao,util。
4、在dto中新建user.hbm.xml和User.java。其内容分别如下:
4.1——user.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>
<class name="com.tset.myhibernate.dto.User" table="user"
dynamic-insert="true" dynamic-update="true">
<id name="id" column="id">
<generator class="increment" />
</id>
<property name="username" column="username" type="string"/>
<property name="password" column="password" type="string"/>
<property name="name" column="name" type="string"/>
<property name="age" column="age" type="java.lang.Long"/>
<property name="sex" column="sex" type="string" />
<property name="birthday" column="birthday" type="string"/>
</class>
</hibernate-mapping>
4.1——User.java:
5、在dao中新建一个接口UserInterface.java。其内容如下:
package com.test.myhibernate.dao;
import java.util.List;
import com.test.myhibernate.dto.User;
public interface UserInterface {
/**
* @deprecated 得到所有的用户对象
* @return
*/
public abstract List<User> getAllUser();
/**
* @deprecated 通过Id查询到一个User对象。
* @param id
* @return
*/
public abstract User getUserById(int id);
/**
* @deprecated 通过Id删除一个User对象
* @param id
* @return
*/
public abstract boolean deleteUserById(int id);
/**
* @deprecated 添加一个User记录
* @param user
* @return
*/
public abstract boolean addUser(User user);
/**
* @deprecated 修改一条记录
* @param user
* @return
*/
public abstract boolean updateUser(User user);
}
6、在dao中实现这个接口UserDAO.java。其内容如下:
package com.test.myhibernate.dao;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import com.test.myhibernate.dto.User;
import com.test.myhibernate.util.HibernateBase;
/*******************************************************************************
* @deprecated 数据库操作DAO
* @author 高增光
* @time 2009-年11月09日
*/
public class UserDAO extends HibernateBase implements UserInterface {
/**
* @throws HibernateException
*/
public UserDAO() throws HibernateException {
super();
}
@Override
public boolean addUser(User user) {
try {
beginTransaction();
if (user != null) {
session.save(user);
return true;
} else {
return false;
}
} catch (Exception e) {
e.printStackTrace();
endTransaction(false);
return false;
} finally {
endTransaction(true);
}
}
@Override
public boolean deleteUserById(int id) {
try {
beginTransaction();
User user = (User) session.get(
com.test.myhibernate.dto.User.class, new Long(id));
if (user != null) {
session.delete(user);
return true;
} else {
System.out.print("没有该记录!");
return false;
}
} catch (Exception e) {
e.printStackTrace();
endTransaction(false);
return false;
} finally {
endTransaction(true);
}
}
@Override
public List<User> getAllUser() {
try {
beginTransaction();
Query users = session
.createQuery("from com.test.myhibernate.dto.User");
List<User> list = users.list();
return list;
} catch (HibernateException e) {
e.printStackTrace();
endTransaction(false);
return null;
} finally {
endTransaction(true);
}
}
@Override
public User getUserById(int id) {
try {
beginTransaction();
User user = (User) session.get(
com.test.myhibernate.dto.User.class, new Long(id));
if (user != null) {
return user;
} else {
System.out.print("没有该记录!");
return null;
}
} catch (HibernateException e) {
e.printStackTrace();
endTransaction(false);
return null;
} finally {
endTransaction(true);
}
}
@Override
public boolean updateUser(User user) {
try {
beginTransaction();
if (user != null) {
session.update(user);
return true;
} else {
return false;
}
} catch (HibernateException e) {
e.printStackTrace();
endTransaction(false);
return false;
} finally {
endTransaction(true);
}
}
}
7、在util中新建HibernateBase.java。初始SessionFactory。其内容如下:
package com.test.myhibernate.util;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class HibernateBase {
private static SessionFactory sessionFactory = null;// 会话工厂,用于创建会话
public Session session;// hibernate会话
public Transaction transaction; // hiberante事务
/***
* @throws HibernateException
*/
public HibernateBase() throws HibernateException {// 初始化Session
this.initHibernate();
}
/***
* @throws HibernateException
*/
public void initHibernate() throws HibernateException {
// 装载配置,构造SessionFactory对象
if (sessionFactory == null) {
sessionFactory = new Configuration().configure()
.buildSessionFactory();
}
}
/****
* 开始一个hibernate事务
* @throws HibernateException
*/
public void beginTransaction() throws HibernateException {
session = sessionFactory.openSession();
transaction = session.beginTransaction();
}
/****
* 结束一个hibernate事务。
* @throws HibernateException
*/
public void endTransaction(boolean commit) throws HibernateException {
if (commit) {
transaction.commit();
} else {
// 如果是只读的操作,不需要commit这个事务。
transaction.rollback();
}
session.close();
}
}
8、在action中新建一个测试类main.java。其内容如下:
package com.test.myhibernate.action;
import java.util.ArrayList;
import java.util.List;
import com.test.myhibernate.dao.UserDAO;
import com.test.myhibernate.dto.User;
public class main {
/**
* @param args
*/
public static void main(String[] args) {
/*初始化数据*/
User user = new User();
user.setAge(22);
user.setBirthday("1988-10-07");
user.setName("Sun-Shine");
user.setPassword("te sf");
user.setSex("dfd");
user.setUsername("dddddd");
UserDAO userDAO = new UserDAO();
userDAO.addUser(user);
userDAO.deleteUserById(2);
user.setId(3);
user.setName("xiaozhou");
userDAO.updateUser(user);
List<User> list = new ArrayList<User>();
list = userDAO.getAllUser();
int size = list.size();
for(int i=0;i < size;i++)
{
System.out.println(list.get(i).getId());
}
User newUser = userDAO.getUserById(1);
System.out.println(newUser);
}
}
分享到:
相关推荐
Spring框架提供了IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)等核心特性,通过XML配置文件管理Bean的生命周期和依赖关系。Hibernate则是一个强大的ORM框架,能够将...
7. dom4j.jar:XML解析库,Hibernate使用它来处理XML配置文件和HQL查询结果。 8. slf4j-api.jar和slf4j-log4j12.jar:日志框架接口和适配器,用于记录Hibernate的日志信息。 9. jandex.jar:元数据索引库,用于处理...
在这个项目中,所有配置都采用XML文件,虽然这种方式相对直观,但随着项目的扩大,XML配置文件可能会变得庞大且难以维护。现代开发中,更倾向于使用注解配置或者Spring Boot的自动配置来简化配置过程。 总结来说,...
Hibernate配置文件hibernate.cfg.xml中配置信息详解!
在本实例中,我们将深入探讨如何使用XML配置文件来实现Hibernate的表映射。 首先,Hibernate的XML配置文件通常被称为`hibernate.cfg.xml`,它是连接数据库、定义SessionFactory等核心设置的地方。在这个文件中,...
使用Hibernate时,首先会通过`Configuration`类加载XML配置文件,然后创建`SessionFactory`,它是线程安全的,负责生成`Session`实例。`Session`是与数据库交互的接口,可以用来执行CRUD操作。 总的来说,Hibernate...
build.xml 手写自动生成Hibernate映射文件和配置文件源代码
本知识点主要聚焦于Hibernate的配置文件,它是使用Hibernate进行数据库交互的基础。 首先,我们需要理解Hibernate的核心配置文件——`hibernate.cfg.xml`。这个文件是Hibernate与数据库建立连接的桥梁,它包含了...
1. **hibernate.cfg.xml**:这是Hibernate的全局配置文件,用于配置数据源、方言、缓存等信息。 2. **实体类映射文件**:如`User.hbm.xml`,它将Java实体类映射到数据库表。在这里,你可以定义字段对应的列名、主键...
在这个场景中,我们关注的是Hibernate的配置文件——`hibernate.cfg.xml`。这个文件是Hibernate应用的核心,它定义了数据源、SessionFactory、实体类映射等关键信息,使得Java对象可以直接与数据库进行交互。 首先...
在学习和使用Hibernate时,理解这些配置文件的用途和结构至关重要。通过对`hibernate.cfg.xml`的调整,你可以定制化你的数据库连接、优化性能,同时通过实体类映射文件,实现对象与数据库之间的无缝转换。这个...
这个"spring2.5+hibernate基于xml配置的实例"是一个经典的组合,展示了如何在旧版本的Spring(2.5)和Hibernate中通过XML配置文件来整合和管理应用的组件。 首先,Spring 2.5是Spring框架的一个早期版本,它引入了...
此时,MyEclipse将自动为所选表生成对应的Hibernate配置文件,包括实体类映射文件(`.hbm.xml`)以及核心的`hibernate.cfg.xml`文件。 #### 三、自动生成配置文件的优势 1. **节省时间**:自动化的配置生成大大...
在XML配置文件`hibernate.cfg.xml`中,你可以配置数据库连接信息、实体类的映射等。此外,实体类可以通过`@Entity`注解标识,属性通过`@Column`等注解定义数据库列的映射。 SSM(Spring、SpringMVC、MyBatis)是另...
hibernate.cfg.xml 文件是 Hibernate 的基本配置文件,它包含了 Hibernate 与数据库的基本连接信息。在 Hibernate 工作的初始阶段,这些信息被加载到 Configuration 和 SessionFactory 实例中。该文件的基本结构如下...
这是Hibernate的配置文件,hibernate.cfg.xml的具体写法,共友友们参考~~谢谢~
在这个"hibernate的xml配置关系例子"中,我们将探讨如何使用XML配置文件来定义Java对象与数据库表之间的映射关系。 1. Hibernate XML配置文件: Hibernate的核心配置文件通常是`hibernate.cfg.xml`,这个文件包含...
hibernate.cfg.xml hibernate框架的配置文件
### Hibernate配置文件hibernate.cfg.xml的详细解释 #### 一、引言 在Java持久化框架Hibernate中,`hibernate.cfg.xml`是核心配置文件之一,它用于配置Hibernate的运行环境,包括数据库连接信息、性能参数以及其他...