什么是myBatis
MyBatis 是一个半自动化的ORM实现,也是一个持久层框架,它在 JDBC 上提供了一个抽象层,简化了 Java 与数据库的交互。
myBatis和jdbc的区别
主要区别如下:
-
JDBC 需要手动处理 SQL 语句的参数和结果集的映射,而 MyBatis 可以通过 XML 或注解的方式自动完成。
-
JDBC 对于每个数据库操作都需要编写相应的代码,而 MyBatis 通过配置文件可以复用 SQL 语句。
-
JDBC 依赖于 Java 代码的硬编码,而 MyBatis 的配置可以是 XML 或注解,使得数据库操作的变动不需要重新编译 Java 代码。
-
JDBC 对事务管理需要手动处理,而 MyBatis 可以使用其内置的事务管理机制。
ORM是什么以及ORM的优缺点
ORM:对象关系映射(Object Relation Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的技术,简单说,ORM是通过使用描述对象和数据库之间的映射的元数据,将程序中的关系自动化到数据库中。
ORM的优点包括提高开发效率、简化数据库操作、减少对数据库的学习成本,而其缺点则涉及性能问题、复杂的查询处理和额外的内存消耗
优点:
- 提高开发效率:ORM通过自动对Entity对象与数据库中的Table进行字段与属性的映射,减少了开发人员编写数据访问层的工作量,从而提高了开发效率。
- 简化数据库操作:ORM提供了对数据库的映射,使得开发人员不需要直接编写SQL语句,而是像操作对象一样从数据库获取数据,简化了数据库操作。
- 减少对数据库的学习成本:使用ORM框架,开发人员可以专注于业务逻辑的实现,而不需要深入了解数据库的细节,从而减少了学习成本。
缺点:
- 性能问题:虽然ORM可以提高开发效率,但它在执行效率上可能会牺牲一些性能。这是因为ORM的自动化映射和对象持久化操作需要消耗系统资源,特别是在处理大数据量、大运算量和复杂查询时,性能问题可能会更加明显。
- 复杂的查询处理:在处理多表联查或复杂的where条件查询时,ORM的语法可能会变得复杂且难以管理。这可能会降低系统的灵活性和可维护性。
- 额外的内存消耗:ORM在执行对象持久化时,可能会将所有属性持久化到内存中,这可能会消耗更多的内存。特别是在处理大量数据时,这种内存消耗可能会更加显著。
综上所述:ORM提供的多种便利,但是否使用ORM时,需要权衡其带来的便利与可能带来的性能和复杂性问题。
如何使用mybatis
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.3</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> |
mybatis的配置文件
切记:在XML文件中一定要有头!!!!!!!!!!下面的红色字体
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 环境 default=development 使用的默认的环境的id是development-->
<environments default="development">
<environment id="development">
<!-- 事务管理器-->
<transactionManager type="JDBC"/>
<!-- 数据源 type =pooled -->
<dataSource type="POOLED">
<!-- basedb driver mysql8的jar 必须是加cj-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!-- mysql8的时候一定要加时区不加的话 时间会错8个小时 2024-5-28 10:53:00 -->
<property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Asia/Shanghai"/>
<!-- 连接数据库的名字-->
<property name="username" value="root"/>
<!-- 连接数据库的密码-->
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration> |