hibrnate
来源:互联网 发布:影响现货白银的数据 编辑:程序博客网 时间:2024/05/19 15:19
一、java是面向对象模型关系、数据库中是关系模型
两者是不匹配的,将两者进行转换:
1-1、以前在jdbc中手动完成:
1、 在jdbc中手动完成关系模型转换成对象模型
Rs读取出来的结果集存到对象时
2、 在jdbc中手动完成对象模型转换成关系模型
为占位符赋值时
由于以上方法比较繁琐。所以引进了以下框架,进行二者进行转换
1-2、使用orm框架(对象关系映射技术),主流的orm框架有:
Hibrnate、toblink、ojb
二、Hibernate
配置文件:驱动、url、用户名、密码、方言
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
映射文件:java对象映射成数据库二维关系表
<classname=”java中的实体名称” table=“表名”>
<!-java中属性映射成表中的字段,id特殊要单独拿出来用id进行映射,其他的属性为普通的用property来进行映射->
<id name="java中作为主键的那个属性的名字" column="表中列名">
<!-当name的值和column的值一样时,后者可省略->
<!-generator是指定主键生成器的, native是一个主键生成器->
<generator class="native"/>
</id>
<property name="name"/>
<property name="birthday"/>
</class>
三、
1、创建一个实体类User
2、将hibrnate所需要的jar包构建到项目中
Mysql驱动、hibrnate3.jar、lib/required文件夹下所有的jar、lib/jpa文件夹下的的jar
3、 配置文件
Hibrnate.cfg.xml或者是hibrnate.properties
配制的基本信息:驱动、url、应户名、密码、方言、自动生成表格、将hibrnate在工作的过程中产生的sql语句进行输出、映射文件的位置
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc.mysql:///r</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.hbm2ddl.auto">create</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="com/hbsi/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
4、 映射文件
<hibernate-mapping
package="com.hbsi.domain"> ----指定java实体类的包名
<class name="User" table="user"> ----说明实体类怎么映射成表
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="brithday"/>
</class>
</hibernate-mapping>
四、出现的问题
1、sql驱动找不到
2、unkonw entity :不认识user实体类。原因是在配置文件没有指明映射文件
<mapping resource="com/hbsi/domain/User.hbm.xml"/>
3、Table doesn’t exist:
在数据库中建一个表
Create tableuser(
Id int auto_increment;
Name varchar(20);
Birthday date;
)
或者在配置文件中设置
<property name="hibernate.hbm2ddl.auto">create</property>
取值:
(1)Create-drop:在hibrnate初始化时创建表,程序运行结束时表会被删除
(2)create:在hibrnate初始化时创建表,将原来的表格删除,程序运行结束时表不会被删除
(3)update:只是根据映射文件去和数据库中的表对应起来如果不一致就更新表的结构
(4)validate:校验映射文件和数据库中的表是不是对应起来,如果不能够对应起来,不更新表
4、表建好,表格中没有记录
在配置文件中增加:显示sql语句、看看是否执行了
<property name="hibernate.show_sql">true</property>
事务
Transactiontx=S.beginTransaction();
…….
Tx.commit();
- hibrnate
- 关联关系,hibrnate
- hibrnate内部缓存分析
- hibrnate入门案例
- springMVC +spring +hibrnate集成
- hibrnate的基本概念和curd
- hibrnate 两表 排序 sql
- Ext.net布局技巧
- C++获取时间
- DbVisualizer 8.0.1 破解版本
- Ext.net 合计行/导出Excel/定时刷新
- 获取对话框上控件的DC
- hibrnate
- 使用axis1+spring+hibernate搭建webservice
- Linux下汇编学习-3寻址方式
- php引用(&)详解及注意事项
- 符号英译
- ChartDirector与JreeChart这两款web图形报表工具比较
- HTTP for iOS在线播放
- winform 屏幕右下角弹出消息框,自动消失
- Hibernate应用详解