济源新站seo关键词排名推广信誉好的网站开发
news/
2025/10/7 3:26:07/
文章来源:
济源新站seo关键词排名推广,信誉好的网站开发,自己做网站需要什么技术,做黑网站赚钱ORM ORM 即对象关系映射#xff08;Object Relational Mapping#xff09;#xff0c;是一种程序设计技术#xff0c;用于实现面向对象编程语言里不同类型系统的数据之间的转换。下面从基本概念、工作原理、优势与劣势、常见的 ORM 框架等方面详细介绍 ORM。 常见的orm框架…ORM ORM 即对象关系映射Object Relational Mapping是一种程序设计技术用于实现面向对象编程语言里不同类型系统的数据之间的转换。下面从基本概念、工作原理、优势与劣势、常见的 ORM 框架等方面详细介绍 ORM。 常见的orm框架有Mybatis-plusibatis、Hibernate、Jpa。 基本概念 在软件开发中面向对象编程OOP使用对象来表示数据和处理逻辑而关系型数据库RDBMS则使用表、行和列来存储数据。这两种模型在数据表示和操作方式上存在差异ORM 就是为了解决这种差异而出现的技术。它将数据库中的表映射为对象表中的行映射为对象的实例列映射为对象的属性从而让开发者可以使用面向对象的方式来操作数据库而无需编写复杂的 SQL 语句。 工作原理 ORM 框架的核心工作流程如下 映射配置开发者需要定义对象和数据库表之间的映射关系。这可以通过注解、XML 配置文件等方式来实现。例如在 Java 中使用 Hibernate 框架时可以使用 Entity、Table、Column 等注解来指定对象和表的映射关系。对象操作开发者使用面向对象的方式对对象进行创建、读取、更新和删除CRUD操作。例如创建一个对象实例并设置其属性值然后调用 ORM 框架提供的方法将对象保存到数据库中。SQL 生成ORM 框架根据对象的操作和映射配置自动生成相应的 SQL 语句。例如当调用保存对象的方法时ORM 框架会生成 INSERT 语句当调用查询对象的方法时会生成 SELECT 语句。数据库交互ORM 框架将生成的 SQL 语句发送到数据库执行并将数据库返回的结果集转换为对象实例。例如将查询结果集中的每一行数据转换为一个对象实例并将列值赋给对象的属性。 优势 提高开发效率开发者可以使用面向对象的方式操作数据库避免编写大量的 SQL 语句减少了开发时间和工作量。降低代码耦合度将数据库操作封装在 ORM 框架中使业务逻辑和数据库操作分离提高了代码的可维护性和可测试性。支持跨数据库ORM 框架可以屏蔽不同数据库之间的差异开发者可以在不修改业务代码的情况下切换数据库。 劣势 性能开销ORM 框架需要进行对象和数据库之间的映射和转换会带来一定的性能开销。在处理大量数据或复杂查询时性能可能不如原生 SQL。学习成本使用 ORM 框架需要学习框架的使用方法和配置规则对于初学者来说可能有一定的学习成本。复杂查询受限对于一些复杂的 SQL 查询ORM 框架可能无法直接支持需要编写原生 SQL 语句。 常见的 ORM 框架 Java 中的 Hibernate是一个广泛使用的 Java ORM 框架功能强大支持多种数据库提供了丰富的映射配置和查询功能。Java 中的 MyBatis是一个轻量级的 Java ORM 框架它允许开发者灵活地编写 SQL 语句同时也提供了对象映射功能。Python 中的 SQLAlchemy是一个流行的 Python ORM 框架支持多种数据库提供了高级的查询和事务管理功能。.NET 中的 Entity Framework是微软官方提供的 .NET ORM 框架与 .NET 平台紧密集成支持多种数据库。 实现面向对象编程语言里不同类型系统的数据之间转换
Java 数据库
Integer Integer
String varchar ORM的优点 最大的优势隐藏了数据访问细节“封闭”的通用数据库交互ORM的核心。他使得我们的通用数据库交互变得简单易行并且完全不用考虑该死的SQL语句。快速开发由此而来。 ORM的缺点 1性能较低。无可避免的自动化意味着映射和关联管理代价是牺牲性能早期这是所有不喜欢ORM人的共同点。现在的各种ORM框架都在尝试使用各种方法来减轻这块LazyLoadCache效果还是很显著的。 2对多表查询力不从心。 JDBCJava Database Connectivity 概念 JDBC 是 Java 编程语言用于与数据库进行交互的标准 API它为 Java 开发人员提供了一种统一的方式来访问各种不同类型的数据库如 MySQL、Oracle、SQL Server 等。通过 JDBC开发者可以执行 SQL 语句实现对数据库的增删改查操作。 工作原理 加载数据库驱动不同的数据库有不同的 JDBC 驱动程序需要使用 Class.forName() 方法加载相应的驱动类。建立数据库连接使用 DriverManager.getConnection() 方法传入数据库的 URL、用户名和密码建立与数据库的连接。创建 Statement 对象通过连接对象创建 Statement、PreparedStatement 或 CallableStatement 对象用于执行 SQL 语句。执行 SQL 语句使用 Statement 对象的 executeQuery()、executeUpdate() 等方法执行 SQL 语句。处理结果集如果执行的是查询语句会返回一个 ResultSet 对象通过该对象可以遍历查询结果。关闭资源使用完数据库连接、Statement 对象和 ResultSet 对象后需要关闭它们以释放资源。 缺点 编码繁琐效率低指的是编码效率低重复代码多。数据库连接的创建和释放比较重复也造成了系统资源的浪费大量硬编码缺乏灵活性不利于后期维护参数的赋值和数据的封装全是手动进行 try {//加载数据库驱动Class.forName(com.mysql.jdbc.Driver);//通过驱动管理类获取数据库链接Connection connection DriverManager.getConnection(jdbc:mysql://localhost:3306/test, root, 123);//定义sql语句?表示占位符String sql select * from t_book where author ?;//获取预处理statementPreparedStatement preparedStatement connection.prepareStatement(sql);//设置参数第一个参数为sql语句中参数的序号从1开始第二个参数为设置的参数值preparedStatement.setString(1, 张三);//向数据库发出sql执行查询查询出结果集ResultSet resultSet preparedStatement.executeQuery();//遍历查询结果集bookList new ArrayList();while(resultSet.next()){Book booknew Book();book.setId(resultSet.getInt(id));book.setName(resultSet.getString(bname));book.setAuthor(resultSet.getString(author));book.setPrice(resultSet.getDouble(price));bookList.add(book);}} catch (Exception e) {}finally{//释放资源resultSet.close();preparedStatement.close();connection.close(); } 第一类着重对JDBC进行API层的抽取和封装以及功能的增强 典型代表是Apache的DbUtils。 第二类借鉴面向对象的思想让程序员以操作对象的方式操作数据库无需编写sql语句典型代表是ORM(mybits )。 JDBC有四个核心对象 1DriverManager用于注册数据库连接 2Connection与数据库连接对象 3Statement/PrepareStatement操作数据库SQL语句的对象 4ResultSet结果集或一张虚拟表 Mybatis 集成第三方分页插件如 PageHelper 待完善
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929937.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!