版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sv2008337/article/details/81353574
最近在看视频复习下Hibernate的相关知识,于是做了一些笔记如下。
hibernate是一个轻量级、企业级、开元的ORM持久层框架,可以操作数据库的操作。其中,轻量级指的是使用时所用的依赖资源很少(log4j,c3p0)。
Hibernate包含ORM(Obiect Relational Mapping 对象映射关系),就是建立实体类和数据库表的对应关系,实现操作实体类对象就相当于操作数据库表。
1、Hibernate中的配置文件:
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">1234</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernatedemo</property>
<!-- show_sql: 向控制台打印sql语句 -->
<property name="show_sql">true</property>
<!-- format_sql: 格式化SQL语句 -->
<property name="format_sql">true</property>
<!-- 配置C3P0 -->
<property name="hibernate.connection.provider_class">org.hibernate.connecetion.C3P0ConnectionProvider</property>
<!-- 绑定session -->
<property name="hibernate.current_session_context_class">thread</property>
</session-factory>
2、类名映射数据库名:
<mapping package="包名">
<class name=“类名” table=“数据库中的表名”>
<id>这里配置数据库表的id</id>
<generator class="native"></generator> <!--native代表使用本地数据库的自动增长能-->
<property name="列名" column=“数据库中字段名”>
2、Hibernate创建连接:
public class HibernateUtil{
//factory用于创建Session对象
private static SessionFactory factory;
static{
try{
//只创建不加载
Configuration cfg=new Configuration();
//加载配置文件
cfg.configure();
factory=cfg.buildSessionfactory();
}
catch(ExceptionInInitializerError e)
{
throw new ExceptionInInitializerError("初始化SessionFactory失败,请检查配置文件");
}
}
public static Session openSession()
{
//已经在配置中绑定了session,所以直接return就好
return factory.openSession();
}
}
4、SessiongFactory:一个应用应该只有一个SessionFactory,在应用加载时创建,应用卸载时销毁;而一个线程只有一个Session,