【Mybatis】mybatis3入门

2023-11-14

mybatis简介

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

使用入门

0.新建数据库

在这里插入图片描述

1.导包

在这里插入图片描述

2.加载配置文件

注释:

启用驼峰命名法检验
<settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
dao映射文件地址
<mappers>
        <mapper resource="com/blb/dao/UserDao-config.xml"/>
</mappers>

新建src目录下创建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>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <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://localhost/taobaodb"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/blb/dao/UserDao-config.xml"/>
    </mappers>
</configuration>

3.建立session

try (SqlSession session = sqlSessionFactory.openSession()) {
		代码
}

4.取dao层接口

 UserDao userDao = session.getMapper(UserDao.class);
创建以下文件

在这里插入图片描述

创建dao层接口
package com.blb.dao;

import com.blb.bean.User;

import java.util.List;

public interface UserDao {
    List<User> getUsers();
}

UserDao.xml映射配置文件

注释:

<mapper namespace="com.blb.dao.UserDao">
    <select id="dao接口方法名" resultType="方法返回值类型的类相对地址">
    sql语句,不加分号
  </select>
</mapper>

正文:

<?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="com.blb.dao.UserDao">
    <select id="getUsers" resultType="com.blb.bean.User">
    select * from userinfo
  </select>
</mapper>

创建User类

package com.blb.bean;

public class User {
    private int userid;
    private String username;
    private String userpwd;
    private int typeid;
    private String userstatus;

    public int getUserid() {
        return userid;
    }

    public void setUserid(int userid) {
        this.userid = userid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUserpwd() {
        return userpwd;
    }

    public void setUserpwd(String userpwd) {
        this.userpwd = userpwd;
    }

    public int getTypeid() {
        return typeid;
    }

    public void setTypeid(int typeid) {
        this.typeid = typeid;
    }

    @Override
    public String toString() {
        return "User{" +
                "userid=" + userid +
                ", username='" + username + '\'' +
                ", userpwd='" + userpwd + '\'' +
                ", typeid=" + typeid +
                ", userstatus='" + userstatus + '\'' +
                '}';
    }

    public String getUserstatus() {
        return userstatus;
    }

    public void setUserstatus(String userstatus) {
        this.userstatus = userstatus;
    }
}

5.操作

创建Test类

package com.blb.service;

import com.blb.bean.User;
import com.blb.dao.UserDao;
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.IOException;
import java.io.InputStream;
import java.util.List;

public class Test {
    public static void main(String[] args) throws IOException {
        //从 XML 中构建 SqlSessionFactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //从 SqlSessionFactory 中获取 SqlSession
        try (SqlSession session = sqlSessionFactory.openSession()) {
            UserDao userDao = session.getMapper(UserDao.class);
            List<User> users = userDao.getUsers();
            for(User u:users){
                System.out.println(u);
            }
        }
    }
}

Mybatis开启日志,增删改查的操作,请看下篇

点击传送门

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Mybatis】mybatis3入门 的相关文章

随机推荐

  • x86平台运行arm64平台docker 镜像

    本文介绍在x86服务器上安装qemu aarch64 statick仿真器 以实现x86服务器可以运行docker或docker compose镜像 报错信息 x86服务器默认不能运行ARM平台镜像 会提示如下错误 WARNING The
  • CMD命令读取某个目录下所有文件夹名或文件名

    CMD命令读取某个目录下所有文件夹名或文件名 CMD命令读取某个目录下所有文件夹名或文件名 要用到的dir命令 开始操作 CMD命令读取某个目录下所有文件夹名或文件名 目的是给自己留个笔记 要用到的dir命令 dir ad 只查看文件夹 d
  • sql:MySql create FUNCTION,VIEW,PROCEDURE

    use geovindu 函数 DELIMITER drop function if exists f GetDepartmentName CREATE function f GetDepartmentName did int return
  • TIOBE 发布 9 月编程语言排行榜:Python 登顶,Kotlin 重返前 20

    文章目录 前言 Kotlin 重新 杀回 Top 20 其他编程语言 Top 10 编程语言 TIOBE 指数走势 2002 2023 历史排名 1988 2023 编程语言 名人榜 2003 2022 说明 零基础Python学习资源介绍
  • ChatPPT 国内首个AI自动生成PPT效率工具

    场景 目前了解到ChatPPT使用首先需要下载安装MotionGo插件 安装完成之后在WPS或者office里面直接打开就可以了 方法 输入主题即可
  • 更改时间同步服务器bat文件,将windows server 2008设置成ntp时间同步服务器.bat

    echo off echo autor OAK echo off echo echo off REG ADD HKEY LOCAL MACHINE SYSTEM CurrentControlSet Services W32Time Para
  • matlab练习程序(Sepia Tone滤镜)

    我手机上有一个软件实现了很多图像滤镜 挺有意思 我打算都尝试一下 这个滤镜主要是实现老照片效果 代码很短 我就不详细介绍了 原图 处理后效果 matlab代码如下 clear all close all clc img imread len
  • xshell:全网最简单的将xshell连接图形界面linux虚拟机(ubantu,kali)

    问题提出 如何在windows连接图形界面linux虚拟机 我之前在网上找的教程都特别麻烦 要改这个改那个 相当复杂 机器配置 电脑windows10 虚拟机版本VMware 15 x xshell7 Linux kali linux最新版
  • JAVA异常

    异常 1 异常概述 异常 程序执行过程中 产出的问题 因为异常的问题程序的正常的逻辑中断 Java程序在执行过程中所发生的异常事件可分为两类 异常最顶层的类Throwable Error Java虚拟机无法解决的严重问题 如 JVM系统内部
  • [矩阵的三角分解系列五] 三角分解中的行列变换

    三角分解中的行列变换 简介 行变换分解 置换矩阵 PLU分解 证明 例子 引用 矩阵的三角分解是求解线性方程组常用的方法 包括LU分解 LDU分解 杜利特 Doolittle 分解 克劳特 Crout 分解 LLT 乔累斯基Cholesky
  • css 伪类清除浮动,CSS中盒模型、浮动以及清除浮动的方法

    盒模型 在 htm 中每一个元素都可以看成是一个盒子 默认情况下盒子的边框是无 背景色是透明的 所以在默认情况下看不到盒子 盒子由 margin border padding content 盒子中的内容 四部分组成 1 margin 元素
  • Redis内存被占满的解决办法(淘汰策略)

    Redis在实际使用中 肯定会遇到内存占满的问题 那么该如何解决这个问题呢 1 增加内存 不推荐 因为即使加大内存 以后还是会有内存被占满的可能 不能根本解决问题 2 使用Redis Cluster 关于Redis Cluster参考Red
  • 【深度学习】 Python 和 NumPy 系列教程(十):NumPy详解:2、数组操作(索引和切片、形状操作、转置操作、拼接操作)

    目录 一 前言 二 实验环境 三 NumPy 0 多维数组对象 ndarray 1 多维数组的属性 1 创建数组 2 数组操作 1 索引和切片 a 索引 b 切片 2 形状操作 a 获取数组形状 b 改变数组形状 c 展平数组 3 转置操作
  • 聚类算法(K-means & AGNES & DBSCAN)

    一 聚类算法基本概念 1 定义 聚类就是按照某个特定标准 如距离准则 把一个数据集分割成不同的类或簇 使得同一个簇内的数据对象的相似性尽可能大 即聚类后同一类的数据尽可能聚集到一起 不同数据尽量分离 简单来讲就是把相似的东西分到一起 2 无
  • 哈工大2021机器学习期末考试题

    一 说明参数正则化和参数后验之间的联系 并解释在机器学习模型参数估计中使用正则化的目的 二 给出条件熵的定义 举一个本课程中应用该方法的例子 说明使用条件熵的好处 给出你的直观解释 三 朴素贝叶斯的基本假设是什么 有什么好处 当假设满足时
  • webpack : 无法加载文件 C:\Users\12987\AppData\Roaming\npm\webpack.ps1,因为在此系统上禁止运行脚本。

    通过查询综合了意见给出以下解决办法 webpack src index js o build built js mode development出现的问题 解决 1 管理员身份cmd输入 set ExecutionPolicy Remote
  • ubuntu 18.04 安装 opencv-2.4.13.6

    ubuntu 18 04 安装 opencv 2 4 13 6 1 opencv 2 4 13 6下载 2 安装opencv 2 4 13 6 1 解压opencv 2 4 13 6 zip到根目录下 2 安装opencv 2 4 13 6
  • 几个友好Java代码习惯建议

    我工作多年 遇到过各种各样的同事 我见过各种代码 优秀的 垃圾的 没有吸引力的等等 所以这篇文章记录了一个优秀的Java开发应该具备哪些良好的开发习惯或最佳实践 1 封装方法参数 当你的方法参数过多时 建议封装一个对象 下面是反面教材 谁教
  • 理解傅里叶分析

    一 什么是频域 从我们出生 我们看到的世界都以时间贯穿 股票的走势 人的身高 汽车的轨迹都会随着时间发生改变 这种以时间作为参照来观察动态世界的方法我们称其为时域分析 而我们也想当然的认为 世间万物都在随着时间不停的改变 并且永远不会静止下
  • 【Mybatis】mybatis3入门

    mybatis简介 MyBatis 是一款优秀的持久层框架 它支持定制化 SQL 存储过程以及高级映射 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 MyBatis 可以使用简单的 XML 或注解来配置和映射