1.在Ecplipse搭建Hibernate框架
(1).安装Hibernatetools插件
a.在线:Help——>Eclipse MarketPlace --搜索Hibernate
b.离线: Help-->InstallNewSoftWare-->add (在线和离线任选一种安装Hibernatetools插件,推荐使用在线)
(2).导入相对应的Jar文件
(3).创建Hibernate配置文件:hibernate.cfg.xml(SRC)
a.配置和数据库有关的属性:
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/数据库名</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">数据库用户名</property>
<property name="hibernate.connection.password">数据库密码</property>
b.配置方言:dialect 取值:请看hibernate-release-5.2.0.Final\project\etc\hibernate.properties 列如:<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
c.显示SQL语句:<property name="show_sql">true</property>
d.格式化SQL语句:<property name="format_sql-true">true</property>
(4).创建实体类(和数据库表中相对应)
(5).创建映射文件(对象/关系):Hibernate XML Mapping file(hbm.xml)(创建在实体类下面) 将此映射文件关联到配置文件 <mapping resource="包/文件名"/>
(6).访问数据库操作(测试):
//加载Hibernate配置文件:
Configuration configuration=new Configuration().configure();
//创建SessionFactory:
SessionFactory sessionFactory = configuration.buildSessionFactory();
//创建Session
Session session = sessionFactory.openSession();
//开始事务
Transaction transaction = session.beginTransaction();
//执行数据库操作
//提交事务
transaction.commit();
//关闭Session
session.close();
//关闭SessionFactory
sessionFactory.close();
2.基本的CRUD
添加:session.save(object)
读取:a.读取单个 session.get(实体类.class, 查询条件:如20); b.读取所有session.createCriteria(实体类.class).list();
修改:update():两种方式
//根据ID找到要修改的对象
Sheng s=(Sheng)session.get(Sheng.class, sheng.getSid());
//设置要修改的属性值
s.setSname(sheng.getSname());
//执行修改操作
session.update(s);
删除:delete():两种方式
//找到要删除的对象
Sheng sheng=(Sheng) session.get(Sheng.class, sid);
//执行删除
session.delete(sheng);
3.主键的生成策略:ID Generator
数字:
a.increment:由Hibernate框架生成,会去查询数据库中最大值,适应任何数据库
b.sequence:由数据库的序列(sequence),生成只适应Oracle数据库
<generator class="sequence" >
<param name="sequence">数据库中序列的名字</param>
</generator>
c.indentity:SqlServer的自动增长方式
d.native:由框架判断底层数据库的类型,并有数据库生成
如果底层是oracle数据库,数据库中必须创建序列,并且序列的名字必须为Hibernate_sequence
字符串:
assigned:由程序中指定,手动设置,也就是手动设置id的值
uuid:由框架生成32位的字符串,作为表的主键,适应于所有数据库
外键:foreign
<id name="uid" type="int">
<column name="UID" />
<generator class="foreign">
<param name="property">外键的表名</param>
</generator>
</id>
(1).安装Hibernatetools插件
a.在线:Help——>Eclipse MarketPlace --搜索Hibernate
b.离线: Help-->InstallNewSoftWare-->add (在线和离线任选一种安装Hibernatetools插件,推荐使用在线)
(2).导入相对应的Jar文件
(3).创建Hibernate配置文件:hibernate.cfg.xml(SRC)
a.配置和数据库有关的属性:
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/数据库名</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">数据库用户名</property>
<property name="hibernate.connection.password">数据库密码</property>
b.配置方言:dialect 取值:请看hibernate-release-5.2.0.Final\project\etc\hibernate.properties 列如:<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
c.显示SQL语句:<property name="show_sql">true</property>
d.格式化SQL语句:<property name="format_sql-true">true</property>
(4).创建实体类(和数据库表中相对应)
(5).创建映射文件(对象/关系):Hibernate XML Mapping file(hbm.xml)(创建在实体类下面) 将此映射文件关联到配置文件 <mapping resource="包/文件名"/>
(6).访问数据库操作(测试):
//加载Hibernate配置文件:
Configuration configuration=new Configuration().configure();
//创建SessionFactory:
SessionFactory sessionFactory = configuration.buildSessionFactory();
//创建Session
Session session = sessionFactory.openSession();
//开始事务
Transaction transaction = session.beginTransaction();
//执行数据库操作
//提交事务
transaction.commit();
//关闭Session
session.close();
//关闭SessionFactory
sessionFactory.close();
2.基本的CRUD
添加:session.save(object)
读取:a.读取单个 session.get(实体类.class, 查询条件:如20); b.读取所有session.createCriteria(实体类.class).list();
修改:update():两种方式
//根据ID找到要修改的对象
Sheng s=(Sheng)session.get(Sheng.class, sheng.getSid());
//设置要修改的属性值
s.setSname(sheng.getSname());
//执行修改操作
session.update(s);
删除:delete():两种方式
//找到要删除的对象
Sheng sheng=(Sheng) session.get(Sheng.class, sid);
//执行删除
session.delete(sheng);
3.主键的生成策略:ID Generator
数字:
a.increment:由Hibernate框架生成,会去查询数据库中最大值,适应任何数据库
b.sequence:由数据库的序列(sequence),生成只适应Oracle数据库
<generator class="sequence" >
<param name="sequence">数据库中序列的名字</param>
</generator>
c.indentity:SqlServer的自动增长方式
d.native:由框架判断底层数据库的类型,并有数据库生成
如果底层是oracle数据库,数据库中必须创建序列,并且序列的名字必须为Hibernate_sequence
字符串:
assigned:由程序中指定,手动设置,也就是手动设置id的值
uuid:由框架生成32位的字符串,作为表的主键,适应于所有数据库
外键:foreign
<id name="uid" type="int">
<column name="UID" />
<generator class="foreign">
<param name="property">外键的表名</param>
</generator>
</id>