MyBatis基础介绍

目录

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开发模式的实现. 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值