• MyBatis介绍和基础案例(有代码)


    目录

    Mybatis概念

    JDBC 缺点

    体验MyBatis

    要求:查询Stu表中所有数据


    Mybatis概念

    MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发 MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

    官网:https://mybatis.org/mybatis-3/zh/index.html

    持久层: 负责将数据到保存到数据库的那一层代码。 以后开发我们会将操作数据库的Java代码作为持久层。而Mybatis就是对jdbc代码进行了封装。

    JavaEE三层架构:表现层、业务层、持久层 。

    框架: 框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型 在框架的基础之上构建软件编写更加高效、规范、通用、可扩展

    JDBC 缺点

    1:硬编码 注册驱动、获取连:的代码有很多字符串,而这些是连接数据库的四个基本信息,以后如果要将Mysql数据库换成其他的关系型 数据库的话,这四个地方都需要修改,如果放在此处就意味着要修改我们的源代码。 SQL语句如果表结构发生变化,SQL语句就要进行更改。这也不方便后期的维护

    2: 操作繁琐 手动设置参数 手动封装结果集 

    体验MyBatis

    要求:查询Stu表中所有数据

    1创建stu表,添加数据

    2创建模板,导入坐标

    这里我是用的Maven导入(编写pom.xml文件)

    1. <project xmlns="http://maven.apache.org/POM/4.0.0"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0modelVersion>
    5. <groupId>org.examplegroupId>
    6. <artifactId>MyBatis_domeartifactId>
    7. <version>1.0-SNAPSHOTversion>
    8. <properties>
    9. <maven.compiler.source>8maven.compiler.source>
    10. <maven.compiler.target>8maven.compiler.target>
    11. properties>
    12. <dependencies>
    13. <dependency>
    14. <groupId>org.mybatisgroupId>
    15. <artifactId>mybatisartifactId>
    16. <version>3.5.5version>
    17. dependency>
    18. <dependency>
    19. <groupId>mysqlgroupId>
    20. <artifactId>mysql-connector-javaartifactId>
    21. <version>5.1.46version>
    22. dependency>
    23. <dependency>
    24. <groupId>junitgroupId>
    25. <artifactId>junitartifactId>
    26. <version>4.13version>
    27. <scope>testscope>
    28. dependency>
    29. dependencies>
    30. project>

    3 编写 Mybatis核心配置文件    (stuMapper.xml)

    1. configuration
    2. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    4. <configuration>
    5. <environments default="development">
    6. <environment id="development">
    7. <transactionManager type="JDBC"/>
    8. <dataSource type="POOLED">
    9. <property name="driver" value="com.mysql.jdbc.Driver"/>
    10. <property name="url" value="jdbc:mysql:///school?useSSL=false"/>
    11. <property name="username" value="root"/>
    12. <property name="password" value="666"/>
    13. dataSource>
    14. environment>
    15. environments>
    16. <mappers>
    17. <mapper resource="stuMapper.xml"/>
    18. mappers>
    19. configuration>

    4编写  sql映射文件(mybatis-config.xml)  统一管理sql语句,解决硬编码问题

    1. mapper
    2. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    4. <mapper namespace="test">
    5. <select id="selectAll" resultType="com.chen.pojo.Student">
    6. select * from stu;
    7. select>
    8. mapper>

    创建一个学生实体类

    1. package com.chen.pojo;
    2. public class Student {
    3. private int id;
    4. private String name;
    5. private String className;
    6. public Student(int id, String name, String className) {
    7. this.id = id;
    8. this.name = name;
    9. this.className = className;
    10. }
    11. public int getId() {
    12. return id;
    13. }
    14. public void setId(int id) {
    15. this.id = id;
    16. }
    17. public String getName() {
    18. return name;
    19. }
    20. public void setName(String name) {
    21. this.name = name;
    22. }
    23. public String getClassName() {
    24. return className;
    25. }
    26. public void setClassName(String className) {
    27. this.className = className;
    28. }
    29. @Override
    30. public String toString() {
    31. return "Student{" +
    32. "id=" + id +
    33. ", name='" + name + '\'' +
    34. ", className='" + className + '\'' +
    35. '}';
    36. }
    37. }

    5编码

    加载核心配置文件 获取SqlSessionFactory

    获取SqlSession 对象,执行SQL语句

    释放资源

    1. import com.chen.pojo.Student;
    2. import org.apache.ibatis.io.Resources;
    3. import org.apache.ibatis.session.SqlSession;
    4. import org.apache.ibatis.session.SqlSessionFactory;
    5. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    6. import java.io.InputStream;
    7. import java.util.List;
    8. public class D1Test {
    9. public static void main(String[] args) throws Exception{
    10. //加载mybatis核心配置文件,获取sqlSessionFactory
    11. String resource = "mybatis-config.xml";
    12. InputStream inputStream = Resources.getResourceAsStream(resource);
    13. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    14. //获取sqlSession对象,用他执行sql
    15. SqlSession sqlSession=sqlSessionFactory.openSession();
    16. //执行sql
    17. List students =sqlSession.selectList("test.selectAll");//这里的参数为sql映射文件中namespace的值和id的值
    18. System.out.println(students);
    19. sqlSession.close();//释放资源
    20. }
    21. }

  • 相关阅读:
    算法的概述
    前端面试宝典React篇03 如何避免生命周期中的坑?
    深度学习推荐系统--协同过滤推荐算法+实现代码
    国产操作系统之深度deepin安装
    Node学习十五 —— 使用TLS/SSL提高安全性
    digitalLogic_逻辑门和基本公式
    力扣刷题-链表理论基础
    Java8 巨强大的新特性 lambda表达式
    《Python》典型数据结构
    速卖通、lazada店铺增加销量有哪些技巧,你知道吗?
  • 原文地址:https://blog.csdn.net/m0_64365315/article/details/126190462