第一个Hibernate项目
1.启动MySQL服务
D:\DataBase\mysql-program\bin\mysqld-nt.exe
2.新建Java项目
3.导包Hibernate和MySQL
Bulid Path->Add Library->User Library->...
4.新建hibernate.cfg.xml
<?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="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">lyyf</property>
<property name="show_sql">true</property>
<mapping resource="BasicCar/bean/BasicCar.hbm.xml"/>
</session-factory>
</hibernate-configuration>
5. 新建BasicCar.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="BasicCar.bean.basicCar" table="car" lazy="true">
<id name="id" type="long">
<generator class="increment"></generator>
</id>
<property name="name" type="string"></property>
<property name="factory" type="string"></property>
<property name="date" type="date"></property>
</class>
</hibernate-mapping>
6.新建BasicCar.java文件
7.创新ExportToDB.java文件
package BasicCar;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class ExportToDB {
public static void main(String[] args) {
//读取配置文件
Configuration cfg = new Configuration().configure();
//创建生成表的对象
SchemaExport export = new SchemaExport(cfg);
//生成表
export.create(true,true);
}
}
8.创建一个测试类
package basicCar;
import java.util.Date;
import org.hibernate.*;
import org.hibernate.cfg.*;
import org.junit.Before;
import org.junit.Test;
import basicCar.bean.BasicCar;
public class TestHibernate {
Configuration cfg;//Configuration类用于读取数据库配置
SessionFactory sf;//生成session工厂类
Session session;//用于操作数据库的session接口
@Before
public void init(){
//读取hibernate.cfg.xml配置文件
Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
//生成session
sf = cfg.buildSessionFactory();
//得到session 就相当于得到Connection
session = sf.openSession();
}
@Test//保存一个BasicCar到事务中
public void testSave(){
//开始一个保存的事务
Transaction tr = session.beginTransaction();
BasicCar bc=new BasicCar();
bc.setFactory("上u28023 ");
bc.setName("BenZ");
bc.setDate(new Date());
session.save(bc);
tr.commit();
}
@Test//更新数据库中BasicCar
public void testUpdate(){
Transaction tr = session.beginTransaction();
BasicCar bc=new BasicCar();
bc.setFactory("上u28023 ");
bc.setId(1);
bc.setName("BenZ");
bc.setDate(new Date());
session.update(bc);
tr.commit();
}
@Test//从数据库中删除id=1的BasicCar记录
public void testDelete(){
Transaction tr = session.beginTransaction();
BasicCar bc = (BasicCar)session.load(BasicCar.class, new Long(1));
session.delete(bc);
tr.commit();
}
@Test//从数据库查询所有的BasicCar
public void testLoad(){
Query query = session.createQuery("from basicCar");
BasicCar bc =(BasicCar)query.list().get(1);
System.out.println(bc.getId());;
System.out.println(bc.getName());
System.out.println(bc.getFactory());
System.out.println(bc.getDate());
}
}
- 大小: 94.5 KB
分享到:
相关推荐
第一个可持久化类 1.3. 映射cat 1.4. 与猫同乐 1.5. 结语 2. 体系结构 2.1. 总览 2.2. JMX集成 2.3. JCA支持 3. SessionFactory配置 3.1. 可编程配置方式 3.2. 获取SessionFactory...
4. 预加载(Eager Loading):通过fetch()或@Fetch注解,可以在一次查询中获取所有关联对象。 八、其他高级特性 1. 异步操作:利用Future或CompletableFuture实现异步数据库访问,提升应用响应速度。 2. 联合主键:...
3. Session:会话对象,代表一次数据库会话,用于执行查询和事务管理。 4. Transaction:事务对象,处理数据库的ACID属性,确保数据一致性。 5. Query和Criteria API:用于执行数据库查询,提供动态和类型安全的查询...
- SessionFactory:是重量级的不可变对象,它的创建开销很大,通常在整个应用启动时创建一次,在整个应用生命周期内都使用同一个SessionFactory实例。 - Session:是轻量级对象,代表与数据库的一次会话,它是线程...
SessionFactory是Hibernate的核心组件,它是线程不安全的,因此通常在应用启动时创建一次。通过`Configuration`对象加载配置并建立SessionFactory,然后使用SessionFactory创建Session实例,进行数据操作。 7. **...
【私塾在线Hibernate4教程】是一份详尽的Java持久层框架学习资源,分为上下两部分,共计241页,旨在帮助开发者深入...这份资源是免费提供的,相比于其他网站的收费下载,它无疑为Java开发者提供了一次宝贵的学习机会。
SessionFactory由Configuration类实例化,通常在应用启动时创建一次并缓存,因为创建过程涉及读取配置信息、加载映射文件等较重的操作。 2. **Session接口**: Session是与数据库进行交互的前线接口,它模拟了JDBC...
级联操作则允许一次操作影响关联的对象集合,简化了代码并减少了数据库交互。 九、实体状态管理 Hibernate根据对象与数据库的同步情况,将对象分为瞬时、持久化、游离和脱管四种状态。理解这些状态有助于更好地控制...
- **批量更新**:支持一次性更新多个对象,减少数据库操作次数。 #### 七、性能调优 - **SQL 优化**:合理设计查询逻辑,避免 N+1 问题。 - **批处理**:利用批处理机制,减少网络 I/O 操作。 - **并发控制**:...
延迟加载(Lazy Loading)是Hibernate的一项重要特性,允许我们在真正需要时才加载关联对象,从而避免了“大数据量”的一次性加载。理解并合理运用懒加载,可以避免内存溢出。 10. **性能优化**: Hibernate 提供...
9. 第一次Hello World程序:通过一个简单的例子,展示如何使用Hibernate进行首次数据库操作。 10. 引入关联和级联操作:讨论如何处理实体之间的关联,如一对一、一对多、多对一和多对多,以及级联操作的使用。 11. ...
**标题解析:** "Hibernate教程25_Hibernate缓存" 这个标题表明了我们要讨论的是关于Hibernate框架的第25个教程,重点是它的缓存机制。Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发者用面向对象的...
3. **`最经典的hibernate教程_从入门到精通_第一篇(共四篇).ppt`**:系列教程,逐步讲解Hibernate从基础到进阶的应用,帮助读者从零开始掌握Hibernate。 在学习过程中,建议结合实际项目练习,理论与实践相结合,以...
11. **缓存机制**:理解Hibernate的第一级缓存(Session级别)和第二级缓存(SessionFactory级别),以及如何配置和使用第三方缓存。 12. **性能优化**:如批处理、延迟加载、懒加载、缓存策略等提高Hibernate应用...
Hibernate4是Hibernate框架的第四个主要版本,它在兼容性、性能和API设计上都有所提升。这个版本支持JPA 2.1规范,使得开发者可以同时利用Hibernate的高级特性与Java企业版的标准接口。 二、环境配置 配置Hibernate...
- **Session**:是与数据库交互的接口,代表一次会话,它不是线程安全的。 #### 七、Hibernate高级特性 - **XDoclet与Hibernate映射**:XDoclet是一个注释处理器,可以帮助生成或更新Hibernate映射文件和其他元数据...
`hibernate.cfg.xml`是Hibernate的主要配置文件,包含了数据库连接信息、缓存设置、日志配置等,是启动Hibernate的第一步。 **5. 映射文件(User.hbm.xml)** 这是用户实体类到数据库表的映射文件,定义了对象属性...