十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)
创新互联是一家专业提供静乐企业网站建设,专注与网站设计、成都网站建设、成都h5网站建设、小程序制作等业务。10年已为静乐众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
对象关系映射,是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。
从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。如今已有很多免费和付费的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实现。
以上内容参考:百度百科-对象关系映射
ORM,接口封装在
ORM
机制内部,不对外暴露,理论上防止了
SQL
注入。
但是,外界访问你的网站不可能直接使用你的对象接口,也就是说你还要提供一个从
on-wire
protocol
到你的对象接口的转换。
这个转换的
decode/encode(或者叫做
serialize/deserilize
或者
parsing)也同样存在被
malformat
数据攻击的问题。
你只不过把一个叫做「SQL
注入」的特定攻击变成了你自定义接口格式的攻击而已。
1:
[SerializableAttribute] 是“可序列化”特征标示,
详情:
结合你的问题,一般这个标示会放在属性类的最上方,即这个类是可以被序列化的。
[SqlTable("表名称")] 这个也是特征标示, 一般是ORM框架写出的, 表示这个类和数据库表的映射关系。 如果不理解ORM、或者映射, 建议你补一下这方面的基础。
简单的说,就是数据库里面表叫T_STUDENT,对应的类就有[SqlTable("T_STUDENT")],
表示这个类是表的实体。
2:
数据库交互的技术统称ADO,C#即ADO.NET,
对于C#来说,sqlserver oracle mysql 或者其他nosql数据库都是一样的。
操作都是需要引用数据库操作dll,(由于都是微软出品,所以自带了 access 和sqlserver的dll)。
oracle需要去下载一个Oracle.ManagedDataAccess.dll 官网有下。
引用之后,和SQL server是一样的:
声明一个connection 然后声明 uid pwd database 这些参数。
然后打开connection,进行增删改查或者事物操作即可。
给你个示例代码:
public static string ConnectOracle()
{
try
{
string connString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=130.147.246.144)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ECMS)));Persist Security Info=True;User ID=system;Password=Service01;";
OracleConnection con = new OracleConnection(connString);
con.Open();
return string.Empty;
}
catch (Exception ex)
{
return ex.ToString();
}
}
ORM是对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。
(ORM is Object Relational Mapping (ORM, or O/RM, or O/R Mapping), a programming technique used to transform data between different types of systems in an object-oriented programming language. In effect, it creates a "virtual object database" that can be used in a programming language.)
拓展资料
ORM的由来:面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。
参考资料:百度百科《ORM》
没啥不好的,orm的底层也都是sql,orm的目的是将数据对象化,利用面向对象的特点完成数据操作
一 .Struts框架
Struts是开源软件。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。
流程:服务器启动后,根据web.xml加载ActionServlet读取struts-config.xml文件内容到内存。
架构:Struts对Model,View和Controller都提供了对应的组件。ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求。
二.Spring框架
Spring是一个解决了许多在J2EE开发中常见的的问题的强大框架。Springle提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类变成的好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control 容器。然而Spring在使用IoC容器作为构建玩关注所有架构层层的完整解决方案方面是独一无二的。Spring提供了唯一的数据管理抽象包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping 解决方案。
三.Hibernate框架
Hibernate 是一个开源代码的对象关系映射框架,对JDBC惊醒了费城轻量级的的对象封装,使得Java程序员可以随心所欲的使用对象变成思维来操作数据库。Hebernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用最具革命意义的事,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任!