orm是object relational mapping的简称,对象关系映射它的出现是为了解决对象和关系型数据库不匹配的技术。
orm是使用描述对象和关系数据库之间映射的元数据,将java中的对象自动持久化到数据库中。orm是随着面向对象的软件开发方法发展而产生的。先进面向对象是主流的软件开发方法,而关系型数据库也是主流的数据存储数据库,但是面向对象的编程在内存对象之间存在关联和继承关系。
而在数据库中的数据无法直接表达多对多的关联和继承的关系所以orm一般充当的是中间件,主要实现程序对象到关系数据库的映射。目前来说实现orm的产品比较流行的是:Apache ojb开源。Oracle topLink商业。hibernate开源。Cayenne开源。iBatis开源。hibernate逐渐成为orm的主导,甚至有可能代替ejb出现。
概念:
对象关系映射,是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。
对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。
对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)
对象关系映射,是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。
从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。如今已有很多免费和付费的ORM产品,而有些程序员更倾向于创建自己的ORM工具。ORM相当于中继数据,对象关系映射成功运用在不同的面向对象持久层产品中。
ORM框架
常见的ORM框架有:Hibernate、iBatis 等。Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL的自动生成和执行。
Mybatis:主要着力点在于 POJO 与 SQL 之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定 POJO 。
相对Hibernate“O/R”而言,Mybatis 是一种“Sql Mapping”的ORM实现。
以上内容参考:百度百科-对象关系映射
我用Python写ORM,插入一条数据进MySql的时候报了:1366 Incorrect string value: '这条数据是有中文的,所以很明显是编码问题!
我插入的数据格式:
以下是我的解决办法!
看我的文章,中有一篇是修改MySql的my.ini配置文件,修改MySql的字符编码格式修改成utf8格式的编码!
有可能你这步改完就可以了! 也有可能这步 *** 作完还是报错!那就看第二步。
第一步 *** 作完了,但是添加数据的时候还是报错,原因是因为第一步还没 *** 作完,你就已经建了一张表,我的表名是app_book。所以这张app_book的字符编码还是按我没修改字符编码之前的编码格式,所以这个时候我需要将这张表的编码格式转换一下,具体 *** 作如下!
比如:你可以先查看这张app_book表中的每个字段的编码格式
改变表的编码,为 utf8mb4 或者 utf8
OK! 完成以上 *** 作,再次执行ORM语句:
这次就没报错了,添加成功!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)