MyBatis基础介绍

news2024/12/26 21:03:50

目录

MyBatis是什么

怎么学MyBatis

第一个MyBatis查询

MyBatis的定位

创建数据库和表

搭建MyBatis环境

添加MyBatis框架支持

设置MyBatis的配置信息

设置数据库连接的相关信息

配置MyBatis xml的保存路径和xml命名规范

MyBatis模式开发

创建一个实体类

 创建MyBatis接口,加注解

创建xml文件


MyBatis是什么

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

一句话总结:MyBatis是更简单完成程序和数据库交互的工具,也就是更简单的操作和读取数据库工具.

怎么学MyBatis

MyBatis学习要掌握两个部分:

  • 配置MyBatis开发环境
  • 使用MyBatis模式和语法操作数据库

第一个MyBatis查询

MyBatis的定位

MyBatis也是一个ORM框架,ORM(Object Relational Mapping)即对象关系映射.在面向对象的编程语言中,将关系型数据库中的数据与对象建立起映射关系,进而自动完成数据与对象的互相转换.

转换过程:1.将输入的数据(即传入的对象) + SQL映射生成原生的SQL.

2.将结果集映射为返回对象,即输出对象.

  • 数据库表->类
  • 记录->对象
  • 字段->对象的属性

一般的ORM框架,会将数据库模型的每张表都映射成一个Java类.也就是说使用MyBatis可以像操作对象一样来操作数据库中的表,可以实现对象和数据库表之间的转换.

创建数据库和表

创建用户表,文章表,视频表,并添加一条默认的数据.

-- 创建数据库

drop database if exists mycnblog;

create database mycnblog DEFAULT CHARACTER SET utf8mb4;

-- 使用数据数据

use mycnblog;

-- 创建表[用户表]

drop table if exists  userinfo;

create table userinfo(

    id int primary key auto_increment,

    username varchar(100) not null,

    password varchar(32) not null,

    photo varchar(500) default '',

    createtime timestamp default current_timestamp,

    updatetime timestamp default current_timestamp,

    `state` int default 1

) default charset 'utf8mb4';

-- 创建文章表

drop table if exists  articleinfo;

create table articleinfo(

    id int primary key auto_increment,

    title varchar(100) not null,

    content text not null,

    createtime timestamp default current_timestamp,

    updatetime timestamp default current_timestamp,

    uid int not null,

    rcount int not null default 1,

    `state` int default 1

)default charset 'utf8mb4';

-- 创建视频表

drop table if exists videoinfo;

create table videoinfo(

    vid int primary key,

    `title` varchar(250),

    `url` varchar(1000),

        createtime timestamp default current_timestamp,

        updatetime timestamp default current_timestamp,

    uid int

)default charset 'utf8mb4';

-- 添加一个用户信息

INSERT INTO `mycnblog`.`userinfo` (`id`, `username`, `password`, `photo`, `createtime`, `updatetime`, `state`) VALUES

(1, 'admin', 'admin', '', '2021-12-06 17:10:48', '2021-12-06 17:10:48', 1);

-- 文章添加测试数据

insert into articleinfo(title,content,uid)

    values('Java','Java正文',1);

   

-- 添加视频

insert into videoinfo(vid,title,url,uid) values(1,'java title','http://www.baidu.com',1);


搭建MyBatis环境

添加MyBatis框架支持

不仅要添加MyBatis的框架支持,还要添加对应数据库类型的驱动.

注意:我们之前项目搭建好之后,都会启动项目看看项目能否正常启动.但是MyBatis项目创建好之后第一次启动会报错.是因为在配置文件中还没有配置数据库,当前项目不知道要连接哪个数据库,所以会报错.

设置MyBatis的配置信息

设置数据库连接的相关信息

配置MyBatis xml的保存路径和xml命名规范


MyBatis模式开发

MyBatis模式开发由两部分组成:

1.interface:让其他层可以注入使用的接口,其他层就可以调用接口中的方法

2.MyBatis:xml,对interface中的方法进行具体的实现.

Java中是不能使用xml对接口中的方法进行实现,然后提供给其他层调用的.在这里之所以能够这样做,是因为MyBatis框架内部的实现.MyBatis就相当于一个粘合剂,框架会生成一个代理对象,代理对象这个类实现了接口,并且把xml中对接口中方法的实现都融合到代理对象这个类中,所以我们可以直接调用接口中的方法.看似是调用了接口的方法,其实是调用了MyBatis中的代理对象.

创建一个实体类

 创建MyBatis接口,加注解

接口就是进行方法声明,方法的具体实现在xml中

创建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="com.example.demo.mapper.UserMapper">
   
</mapper>

 


这样一个基本的MyBatis开发模式就实现完成了,为了试验我们的MyBatis是否成功了,我们遵循标准分层,用service调用数据持久层,控制层来调用service层. 

 

启动项目,访问controller

 

可以看到,返回了正确的结果.

 


这就是一个基本的MyBatis开发模式的实现. 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/518134.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI换脸系统开发源码交付

AI换脸系统软件的发展趋势包括以下几个方面&#xff1a; 定制化和智能化&#xff1a;随着用户需求的不断增加&#xff0c;AI换脸系统将向更加定制化和智能化的方向发展&#xff0c;通过数据分析和用户画像等手段&#xff0c;为用户提供更加个性化的服务。 多模态应用&a…

通达信头肩底形态选股公式,突破波峰发出信号

本文将为大家介绍头肩底形态选股公式的编写方法&#xff0c;相较于前两篇文章介绍的N字形态和W底形态&#xff0c;头肩底形态更为复杂&#xff0c;包含3个波谷和2个波峰。 头肩底是一种反转形态&#xff0c;在下降趋势之后形成&#xff0c;其完成标志着趋势的改变。该形态包含三…

谷歌浏览器 | Chrome DevTools系统学习篇-Device Mode

大家好&#xff0c;文接上回谷歌浏览器 | Chrome DevTools系统学习篇-概述。所谓“工欲善其事&#xff0c;必先利其器”&#xff0c;我们进一步来熟悉谷歌开发者工具。今天分享的是Device Mode&#xff0c;使用设备模式来估算您的页面在移动设备上的外观和性能。 设备模式是 Ch…

java顺序表——ArrayList详解

1.顺序表的概念 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存储。在数组上完成数据的增删查改。 2.自己实现一个顺序表——MyArrayList 2.1 顺序表成员变量的定义 public class MyArrayList {public static int FEFAU…

优思学院|什么是精益生产?企业如何实现精益生产?

简介 在现代工业社会中&#xff0c;企业的生产效率和质量管理是其生存和发展的关键因素之一。而精益生产作为一种高效的生产管理模式&#xff0c;已经成为了众多企业提升效率和质量的首选。优思学院[1]在本文将对精益生产进行详细的介绍&#xff0c;并提供企业实现精益生产的实…

【Java零基础入门篇】第 ④ 期 - 继承(二)

博主&#xff1a;命运之光 专栏&#xff1a;JAVA入门 学习目标 1.掌握继承性的主要作用、实现、使用限制&#xff1b; 2.掌握this和super的含义及其用法&#xff1b; 3.掌握方法覆写的操作&#xff1b; 4.掌握final关键字的使用&#xff1b; 5.掌握类变量、实例变量和局部变量的…

【应用场景详解】Web自动化测试适用于哪些场景?看完这篇文章你就知道了

【从入门到实战】WEB自动化测试基础教程&#xff0c;手把手教你封装自己的测试框架&#xff01; 目录 前言&#xff1a; 一、什么是web自动化测试&#xff1f; 二、Web自动化测试的应用场景 三、Web自动化测试的实现方法 1.安装Selenium 2.编写测试用例 四、Web自动自动…

第十二章 使用DHCP动态管理主机地址

文章目录 第十二章 使用DHCP动态管理主机地址一、动态主机地址管理协议1、DHCP简介2、DHCP常见术语 二、部署DHCP服务程序1、安装DHCP服务程序2、配置文件参考模板3、dhcpd服务程序配置文件中常见参数及作用 三、自动管理IP地址1、机房所用的网络地址以及参数信息2、关闭虚拟网…

原装二手Anritsu S331E安立S331L 手持式电缆和天线分析仪

Anritsu S331E Site Master 手持式电缆和天线分析仪涵盖 2 MHz 至 4 GHz 频谱&#xff0c;是无线基站电缆和天线系统安装、配置、维护和故障排除的行业标准。Site Master 准确、多功能、价格合理、坚固耐用&#xff0c;是真正的手持设备&#xff0c;重量不到 5 磅&#xff08;包…

跨越式升级,敏感数据动态脱敏系统全新而来!

“ 2020年 某医院疫情名单遭工作人员外泄至微信群&#xff0c;涉及6000余人个人身份信息&#xff0c;三人被拘 2021年 某银行未经客户本人授权查询并向第三方提供其个人银行帐户交易信息&#xff0c;被罚450万元 2022年 某银行未落实个人银行账户实名制管理规定&#xff…

民宿企业数字化最佳实践 :我终于跟线下表格和解了

“不由感叹&#xff0c;技术就是生产力啊&#xff01;” 这是偶来民宿店长在使用了腾讯轻联后不由得发出的感慨。 偶来民宿是一家管理超过100套城市民宿和公寓房源的民宿运营公司&#xff0c;以经营特色化、年轻化、个性化民宿、公寓为主营业务。IF HOUSE为该公司旗下高端民宿…

github copilot如何帮助写代码

Github Copilot是一个基于人工智能的代码助手&#xff0c;可以帮助程序员在编写代码时提供自动补全和建议功能。使用Github Copilot需要以下步骤&#xff1a; 1.注册Github账号并安装Github Copilot插件 首先你需要注册一个Github账号&#xff0c;然后在你使用的代码编辑器中安…

基于netty框架不使用SSL证书,实现websocket数据加密传输

文章目录 简介实现方式主要代码调用方法 1、简介 2、实现方式 3、服务端主要代码 4、客户端主要代码 5、调用方式 简介 为什么不使用SSL证书&#xff1f; 1、服务器运行在专网环境&#xff0c;不能访问互联网。证书有有效期&#xff0c;CA机构规定&#xff0c;证书有效期…

vue3【使用axios并封装axios请求】

第一步&#xff1a;安装axios npm install axios 第二步&#xff1a;编写请求文件 新建request.js 简单的axios封装&#xff0c;里面相关提示信息&#xff0c;自己可以引入element-plus去添加 /**axios封装* 请求拦截、相应拦截、错误统一处理*/ import axios from axios; i…

Linux入门篇-安装CentOS

一、先组织硬件 先把“买”一台空白的电脑&#xff0c;再进行操作系统的安装。 windows中&#xff0c;处理器&#xff1a; 本机 实际运行的时候能当多少个CPU来使呢&#xff1f;16个 处理器的数量是CPU的数量&#xff1b;&#xff08;本机上一个插槽&#xff0c;就只有一个CP…

同城跑腿能赚多少钱?“爱折腾”的创业者是否值得入局一试?

跑腿服务兴起的最大特点是节省时间和成本。现在城市发展越来越快&#xff0c;真的应该是“时间就是金钱”的道理。帮助人们排队购物、送外卖、送文件、买花、叫醒服务……“跑腿”在生活中无处不在。 同城跑腿系统的前景有多大&#xff1f; 一方面&#xff0c;外卖和网上购物…

深入学习MYSQL-使用触发器

触发器 每个表最多支持6个触发器&#xff0c;&#xff08;insert&#xff0c;update&#xff0c;delete&#xff09;之前和之后。 删除触发器 drop trigger trigger_name;insert 触发器  在INSERT触发器代码内&#xff0c;可引用一个名为NEW的虚拟表&#xff0c;访问被插入…

第一章--Java语言概述

一 Java知识脉络图 1.1 Java基础全程脉络图 1.2 本章专题与脉络 二 计算机的硬件与软件 2.1 计算机组成&#xff1a;硬件软件 2.2 CPU、内存与硬盘 CPU&#xff08;Central Processing Unit&#xff0c;中央处理器&#xff09; 人靠大脑思考&#xff0c;电脑靠CPU来运算、控…

【beego】bee工具安装使用

bee 工具是一个为了协助快速开发 beego 项目而创建的项目&#xff0c;通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。 1、安装 go get github.com/beego/bee2、配置bee.exe 运行完以上指令后&#xff0c;打开$GOPATH/bin &#xff0c;我的路径…

刷完这个笔记,17K不能再少了....

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;得准备面试了&#xff0c;又不知道从何下手&#xff01;为了帮大家节约时间&#xff0c;特意准备了一份面试相关的资料&#xff0c;内容非常的全面&#xff0c;真的可以好好补一补&#xff0c;希望大家在都能拿到理想…