• MyBatis框架


    MyBatis是什么?

    mybatis是基于JDBC的一种在Java中实现数据库操作的框架:

    mybatis是:MyBatis 的主要思想是将程序中的大量 SQL 语句剥离出来,使用 XML 文件或注解的方式实现 SQL 的灵活配置,将 SQL 语句与程序代码分离,在不修改 程序代码的情况下,直接在配置文件中修改 SQL 语句。 MyBatis 与其它持久性框架最大的不同是, MyBatis 强调使用 SQL ,而其它框架(例如 Hibernate )通常使用自定义查询语言,即 HQL ( Hibernate 查询语言)或 EJB QL ( Enterprise JavaBeans 查询语言)。

    优点:MyBatis 是免费且开源的。 与 JDBC 相比,减少了 50% 以上的代码量。 MyBatis 是最简单的持久化框架,体积小巧并且学习门槛低。 MyBatis 相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL 写在 XML 中,和程序逻辑代码分 离,降低耦合度,便于同一管理和优化,提高了代码的可重用性。 提供 XML 标签,支持编写动态 SQL 语句。 提供映射标签,支持实体对象与数据库的表字段关系映射。

    缺点:编写 SQL 语句工作量较大,对开发人员编写 SQL 语句的功底有一定要求。 SQL 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

    使用mybatis需要导入相关架包:

    官网地址:https://github.com/mybatis/mybatis-3/releases

     导入相关包后:

    准备工作:

    创建数据库:

    1. DROP TABLE IF EXISTS `website`;
    2. CREATE TABLE `website` (
    3. `id` int(11) NOT NULL AUTO_INCREMENT,
    4. `name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    5. `url` varchar(30) COLLATE utf8_unicode_ci DEFAULT '',
    6. `age` tinyint(3) unsigned NOT NULL,
    7. `country` char(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
    8. `createtime` timestamp NULL DEFAULT NULL,
    9. PRIMARY KEY (`id`)
    10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

    、创建映射文件:

    1. mapper
    2. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    4. <mapper namespace="com.apesource.mapper.WebsiteMapper">
    5. <insert id="insertWebsite" parameterType="com.apesource.entity.Website">
    6. insert into website
    7. (name,url,age,country)
    8. values(#{name},#{url},#{age},#{country})
    9. insert>
    10. <select id="selectAllWebsite"
    11. resultType="com.apesource.entity.Website">
    12. select * from website
    13. select>
    14. mapper>

    创建实体类:

    1. import java.util.Date;
    2. public class Website {
    3. private int id;
    4. private String name;
    5. private String url;
    6. private int age;
    7. private String country;
    8. private Date createtime;
    9. @Override
    10. public String toString() {
    11. return "Website [id=" + id + ", name=" + name + ", url=" + url + ", age=" + age + ", country=" + country
    12. + ", createtime=" + createtime + "]";
    13. }
    14. }

    配置日志文件:

    MyBatis 默认使用 log4j 输出日志信息,如果开发者需要查看控制台输出的 SQL 语句,可以在 classpath 路径下配置其日志文件。在 mybatisDemo 的 src 目录下创建 log4j.properties 文件,其内容如下:

    1. # Global logging configuration
    2. log4j.rootLogger=ERROR,stdout
    3. # MyBatis logging configuration...
    4. log4j.logger.com.apesource=DEBUG
    5. # Console output...
    6. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    7. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    8. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

     

    配置核心文件:

    1. configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    2. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    3. <configuration>
    4. <settings>
    5. <setting name="logImpl" value="LOG4J" />
    6. settings>
    7. <environments default="development">
    8. <environment id="development">
    9. <transactionManager type="JDBC" />
    10. <dataSource type="POOLED">
    11. <property name="driver" value="com.mysql.cj.jdbc.Driver" />
    12. <property name="url"
    13. value="jdbc:mysql://localhost:3306/my_db?charset=utf8mb4&useSSL=false&useTimezone=true&serverTimezone=GMT%2B8" />
    14. <property name="username" value="root" />
    15. <property name="password" value="......" />
    16. dataSource>
    17. environment>
    18. environments>
    19. <mappers>
    20. <mapper resource="com/apesource/mapper/WebsiteMapper.xml" />
    21. mappers>
    22. configuration>

     

    在测试类中进行操作:

    使用步骤:

    1 、首先,获取 SqlSessionFactoryBuilder 对象,可以根据 XML 配置文件或者 Configuration 类的实例构建 该对象。

    2 、其次,通过 SqlSessionFactoryBuilder 对象来获取 SqlSessionFactory 对象。

    3、 最后,获取 SqlSessionFactory 对象之后,就可以进一步获取 SqlSession 实例。 SqlSession 对象中完全 包含以数据库为背景的所有执行 SQL 操作的方法,用该实例可以直接执行已映射的 SQL 语句。

     

     

  • 相关阅读:
    极客日报:天猫双11交易额5403亿;史上最贵的苹果电脑出现; 超7成受访者认为脸书让美国更糟糕
    算网时代新思考,2023 移动云大会重磅来袭!
    字符检测专题第一期:OCR技术工业应用浅谈
    Android底层摸索改BUG(二):Android系统移除预置APP
    基于51单片机16路多路抢答竞答器系统
    如何在Spring Boot框架中打印响应的日志?
    如何使用Postman调试HMS Core推送接口?
    福建地区等保测评怎么做
    2023年云计算的发展趋势如何?
    车辆租赁管理系统
  • 原文地址:https://blog.csdn.net/m0_66971047/article/details/126273066