一小时迅速入门Mybatis之初识篇

目录
  • 一、Mybatis简介
  • 二、mybatis入门
    • 2.1 创建Maven项目
    • 2.2 修改pom文件(引入jar包)
    • 2.3 编写xml
    • 2.4 编写Java代码
    • 2.5 唠唠

一、Mybatis简介

Mybatis是一款超级无敌的持久层框架,它支持自定义SQL、存储过程以及高级映射。Mybatis可以通过简单的XML或者注解来配置和映射原始类型、接口和Java POJO为数据库中的记录。

Mybatis相比于Hibernate在处理复杂业务的时候灵活度更高、复杂的SQL编写更容易。

二、mybatis入门

2.1 创建Maven项目

2.2 修改pom文件(引入jar包)

很早之前我们引入一个外部项目需要到处去下载jar包,然后放入项目的lib目录下,但是自从用了maven以后我们只需要一个坐标,maven帮我们搞定一切!

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>Mybatis-Test</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- 引入Mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <!-- mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>

    </dependencies>

</project>

2.3 编写xml

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone=GMT%2B8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="TestMapper.xml"/>
    </mappers>
</configuration>

说明:

1.注意自己的driver 看是否需要根据版本改为:com.mysql.cj.jdbc.Driver

2.&amp; 这个是&在xml中的转义表示

TestMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="TestMapper">
    <select id="list" resultType="map">
        select * from test
    </select>
</mapper>

2.4 编写Java代码

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 * @author 发现更多精彩  关注公众号:木子的昼夜编程
 * 一个生活在互联网底层,做着增删改查的码农,不谙世事的造作
 * @create 2021-08-25 21:26
 */
public class TestMain {
    public static void main(String[] args) throws Exception {
        // 1.配置文件编程输入流
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        // 2. 创建SqlSession工厂
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        // 3. 创建SqlSession
        // try里边创建数据流 try语句执行完后流会被自动关闭 但是资源必须实现java.lang.AutoCloseable接口
        // 这叫做 ARM 块(Automatic Resource Management)
        // SqlSession 实现了Closeable  Closeable继承了AutoCloseable接口
        try (SqlSession session = sqlSessionFactory.openSession()) {
            // 4. 执行查询 查列表出来
            List<Map<String,Object>> res = session.selectList("TestMapper.list");
            // 5. 遍历结果输出
            if (res != null) {
                for (int i = 0; i < res.size(); i++) {
                    Map<String,Object> tmp = res.get(i);
                    System.out.println("id="+tmp.get("id")+",name="+
                            tmp.get("name")+",salary="+tmp.get("salary"));
                }
            }
        }
    }
}

输出结果

项目结构:

2.5 唠唠

  1. demo中配置文件写在xml中 真实项目中不会这样写 会写到配置文件或者配置中心
  2. demo中没有使用自定义实体类 真实项目中大部分都是自定义实体类
  3. demo中没有使用接口 真实项目中大部分都是使用面向接口的
  4. demo中只写了查询 真实项目中大部分都是增删改查都有

下篇预告:

  1. 面向接口编写Mybatis代码
  2. 自定义实体类
  3. 增删改查

到此这篇关于一小时迅速入门Mybatis之初识篇的文章就介绍到这了,更多相关Mybatis 入门内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • FluentMybatis快速入门详细教程

    使用fluent mybatis可以不用写具体的xml文件,通过java api可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一. 不再需要在Dao中组装查询或更新操作,在xml或mapper中再组装参数. 对底层数据表关联关系的处理,我们总是绕不开什么一对一,一对多,多对多这里比较烦人的关系. 业界优秀的ORM框架也都给出了自己的答案,简单来说就以下几种方式: hibernate和JPA对开发基本屏蔽了底层数据的处理,只需要在model层设置数据级联关系即可.但这种设置也往往

  • JAVA MyBatis入门学习过程记录

    目录 一.Mybatis 1.mybatis-config.xml 2.Mapper.xml 3.db.properties 4.MybatisUtils工具类 5.多对一AND多对一: 6.使用注解开发 7.自定义缓存:ehcache 8.mybatis 其他工具 二.MAVEN资源导出错误解决 三.常用依赖导入 四.LOG4J 1.log4j.properties 配置文件 2.log4j 在mybatis-config.xml的配置 3.使用场景 好用的插件: 1.lombok 总结 一.

  • MyBatis-Plus简介和快速入门教程

    目录 一.MyBatis-Plus简介(来自官网) 二.快速开始 三.通用CRUD 3.1 insert(插入操作) 3.2 updateById(更新操作) 3.3 查询操作--各种select 3.4 删除操作--各种delete 附加1:如果表名或者表中属性的名称与我们实体类的名称不同解决方法 一.MyBatis-Plus简介(来自官网) MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做修改,为简化开发.提高效率而生. 特性: 无侵入

  • 深入浅出JAVA MyBatis-快速入门

    目录 创建项目前的环境搭建 简介 特点 (开始)创建Maven项目,导入依赖 创建一个新的Maven项目 (开始)在数据库中创建表 创建表详细信息 从 XML 中构建 SqlSessionFactory 总结: 创建项目前的环境搭建 本篇使用工具: 1.JDK:jdk1.8 2.Mysql l数据库 :mysql-5.7.31-winx64 3.Maven 开发工具 :apache-maven-3.8.1 4.IDEA开发工具: IntelliJ IDEA 2020.1.3 x64 在这里我们使

  • SpringBoot MyBatis简单快速入门例子

    目录 一.MyBatis简介 二.MyBatis使用步骤 一.MyBatis简介 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射.MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作.MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型.接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录. 二.MyBatis使用步骤 1.MyBatis工程总体目录结构 2

  • 一小时迅速入门Mybatis之初识篇

    目录 一.Mybatis简介 二.mybatis入门 2.1 创建Maven项目 2.2 修改pom文件(引入jar包) 2.3 编写xml 2.4 编写Java代码 2.5 唠唠 一.Mybatis简介 Mybatis是一款超级无敌的持久层框架,它支持自定义SQL.存储过程以及高级映射.Mybatis可以通过简单的XML或者注解来配置和映射原始类型.接口和Java POJO为数据库中的记录. Mybatis相比于Hibernate在处理复杂业务的时候灵活度更高.复杂的SQL编写更容易. 二.m

  • 一小时迅速入门Mybatis之增删查改篇

    目录 一.说明 二.开搞 2.1 数据库表 2.1 创建实体类 2.2 创建接口 2.3 创建XML 2.5 测试类 2.6 唠唠 一.说明 这二篇涉及到映射Java实体类.面向接口编写Mybatis.增删查改示例 怎么引入jar包,怎么配置数据库看上一篇哦~ 二.开搞 2.1 数据库表 上一篇好像丢了数据库创建语句 -- 主键自增 DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` bigint(20) NOT NULL AUTO_I

  • 一小时迅速入门Mybatis之Prepared Statement与符号的使用

    目录 一.用一用 PreparedStatement 二.用一用 Statement 三.Mybatis #{} ${} 的使用 四.ResultMap ResultType的区别 引入Mysql的Jar包以及表结构前几篇已经有了这里就不赘述了 一.用一用 PreparedStatement import java.math.BigDecimal; import java.sql.*; /** * @author 发现更多精彩 关注公众号:木子的昼夜编程 * 一个生活在互联网底层,做着增删改查的

  • 一小时迅速入门Mybatis之实体类别名与多参数 动态SQL

    目录 一.说明 二.开搞 数据库表 2.1 实体类别名 2.1.1 第一种方式 2.1.2 第二种方式 2.1.3 mybatis默认别名 2.2 插入数据返回自增主键 2.2.1方式一 2.2.2 方式二 2.3 多参数 2.3.1 一个参数 2.3.2 多个参数 之实体类 2.3.3 多个参数之@Param注解 2.3.4 多个参数之Map 2.3.5 多个参数之默认 2.3.6 数组参数之基础值&实体类 2.3.7 集合参数之基础值&实体类 2.4 四大标签的说明 2.5 唠唠 一.

  • 一小时迅速入门Mybatis之bind与多数据源支持 Java API

    目录 一.bind 二. 多数据库支持 2.1 pom.xml 2.2 mybatis-config.xml 2.3 接口 PersonMapper 2.4 xml PersonMapper.xml 2.5 测试 这次说一下bind.多数据源支持.Java API 一.bind // 测试bind List<Person> testBind(@Param("name") String name); <!--测试bind--> <!--相当于SQL sele

  • ActiveMQ简单入门(新手必看篇)

    一.创建一个简单的Hello World案例 首先需要导入activemq-all-5.14.5.jar包,写生产端: package com.ietree.mq.helloworld; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.MessageProduc

  • C# Dockpanel入门基础必看篇

    一.引用: 1.建立一个WinForm工程,默认生成了一个WinForm窗体Form1(此处默认为主窗体). 2.引用->添加引用->浏览->weiFenLuo.winFormsUI.Docking.dll. 3.设置Form1窗体属性IsMdiContainer:True. 4.工具箱->右键->选择项->.net组件->浏览->weiFenLuo.winFormsUI.Docking.dll->在工具箱出现dockPanel. 5.将dockPan

  • Java-lambda表达式入门看这一篇就够了

    概述 Lambda表达式,也可称为闭包,是JDK8的新特性.Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中),可以使代码变的更加简洁紧凑.Lambda表达式是一个可传递的代码块,可以在以后执行一次或多次. 名字起源是以前还没有计算机时,逻辑学家Alonzo Church想要形式化的表示能有效计算的数学函数,使用了希腊字母lambda( λ \lambda λ)来标记参数,从那以后,带参数变量的表达式就被称为lambda表达式. lambda表达式本质是一个匿名函数,比如以下

  • PyTorch一小时掌握之神经网络气温预测篇

    目录 概述 导包 数据读取 数据预处理 构建网络模型 数据可视化 完整代码 概述 具体的案例描述在此就不多赘述. 同一数据集我们在机器学习里的随机森林模型中已经讨论过. 导包 import numpy as np import pandas as pd import datetime import matplotlib.pyplot as plt from pandas.plotting import register_matplotlib_converters from sklearn.pre

  • C# 异步多线程入门到精通之Thread篇

    上一篇:C# 异步多线程入门基础 下一篇:C# 异步多线程入门到精通之ThreadPool篇 Thread API 这里对 Thread 的一些常用 API 进行介绍,使用一些案例进行说明.由于 Thread 的不可控与效率问题,Thread 现在已经不常用了,这里介绍一些 API ,想更深入的同学可以继续研究研究. Instance 首先看 Thread 的构造函数,有 ThreadStart .ParameterizedThreadStart .maxStackSize 类型的参数,这三个常

随机推荐