首页 > IT职业 > IT图书 > 我的hibernate学习记录
<!-- name属性:实体类的完整类名
table属性:实体类对应的表名 --><!-- id标签表示唯一标识 name属性:实体类中的命名
column属性:数据表中字段名 --><!-- class属性:native代表自动增长 --> <!-- 实体类其余成员变量 -->
<!-- 连接数据库的配置 -->com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/hibernate root 1 <!-- 在控制台输出sql语句 -->true <!-- 格式化sql语句 -->true <!-- 如果表不存在即创建,如果存在即更新 -->update <!-- 映射文件配置 --> public class HibernateDemo1 {
@Test
public void Update() {
//加载hibernate核心配置文件
Configuration cfg = new Configuration();
cfg.configure();
//创建sessionFactory对象
SessionFactory sessionFactory = cfg.buildSessionFactory();
//使用sessionFactory对象创建session对象
Session session = sessionFactory.openSession();
//开启事务
Transaction ts = session.beginTransaction();
//具体增删改查操作
User user = new User();
user.setName("melon");
user.setPassword("1");
//调用session对象的对应方法
session.save(user);
//提交事务
ts.commit();
//关闭资源
session.close();
sessionFactory.close();
}
} 测试完成

hibernate中对象的三种状态:瞬时态、持久态、托管态。
瞬时态:新new出来的对象,在数据库没有id值,和session没有关联
持久态:对象已经存放到数据库里边,和session有关联
托管态:对象有id值,和session没有关联
hibernate存在一级缓存,当第一次在数据库查询到信息后,自动存放到缓存当中,之后再查询直接从缓存获取到相关信息
持久态会自动更新数据库,不用调用update方法。
thread Session session = sessionFactort.getCurrenSession();
hibernate配置一对多关系
<!--
父表配置
set标签里面name属性写对应子表的set名称
cascade属性填sava-update,delete代表级联保存、删除
-->
<!-- key标签里面column属性填子表的外键字段名 --> <!-- one-to-many标签里面class属性填子表的类名全路径 --> <!--
子表配置
name属性填实体类里面父表的对象名
class属性填父表对象的全路径
column属性填外键名称
--> 来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2387/viewspace-2808087/ ,如需转载,请注明出处,否则将追究法律责任。