MyBatis快速入门

Mybatis概述

Mybatis概念

  • MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发
  • MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 201311月迁移到Github
  • 官网:https://mybatis.org/mybatis-3/zh/index.html
持久层:
  • 负责将数据到保存到数据库的那一层代码。 以后开发我们会将操作数据库的Java代码作为持久层。而Mybatis就是对jdbc代码进行了封装。
  • JavaEE三层架构:表现层、业务层、持久层。
框架:
  • 框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型
  • 在框架的基础之上构建软件编写更加高效、规范、通用、可扩展


JDBC 缺点

MyBatis快速入门_第1张图片

硬编码
  • 注册驱动、获取连接
        上图标1 的代码有很多字符串,而这些是连接数据库的四个基本信息,以后如果要将 Mysql 数据库换成其他的关系型 数据库的话,这四个地方都需要修改,如果放在此处就意味着要修改我们的源代码。
  • SQL语句
        上图标2 的代码。如果表结构发生变化, SQL 语句就要进行更改。这也不方便后期的维护。
操作繁琐
  •  手动设置参数
  • 手动封装结果集
        上图标4 的代码是对查询到的数据进行封装,而这部分代码是没有什么技术含量,而且特别耗费时间的。

Mybatis 优化

  • 硬编码可以配置到配置文件
  • 操作繁琐的地方mybatis自动完成

MyBatis快速入门_第2张图片

Mybatis快速入门

需求:查询user表中所有的数据

  •  创建user表,添加数据
create database mybatis;
use mybatis;
drop table if exists tb_user;
create table tb_user (
id int primary key auto_increment ,
username varchar ( 20 ) ,
password varchar ( 20 ) ,
gender char ( 1 ) ,
addr varchar ( 30 )
) ;
INSERT INTO tb_user VALUES ( 1 , 'zhangsan' , '123' , ' ' , ' 北京 ' ) ;
INSERT INTO tb_user VALUES ( 2 , ' 李四 ' , '234' , ' ' , ' 天津 ' ) ;
INSERT INTO tb_user VALUES ( 3 , ' 王五 ' , '11' , ' ' , ' 西安 ' ) ;
  •  创建模块,导入坐标

 在创建好的模块中的 pom.xml 配置文件中添加依赖的坐标

org.mybatis
mybatis
3.5.5
mysql
mysql-connector-java
5.1.46
junit
junit
4.13
test
org.slf4j
slf4j-api
1.7.20
ch.qos.logback
logback-classic
1.2.3
ch.qos.logback
logback-core
1.2.3

 注意:需要在项目的 resources 目录下创建logback的配置文件

  • 编写 MyBatis 核心配置文件 -- > 替换连接信息 解决硬编码问题

 在模块下的 resources 目录下创建mybatis的配置文件 mybatis-config.xml ,内容如下:

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
name = "com.itheima.pojo" />
default = "development" >
id = "development" >
type = "JDBC" />
type = "POOLED" >
name = "driver" value = "com.mysql.jdbc.Driver" />
name = "url" value = "jdbc:mysql:///mybatis?useSSL=false" />
name = "username" value = "root" />
name = "password" value = "1234" />
id = "test" >
type = "JDBC" />
type = "POOLED" >
name = "driver" value = "com.mysql.jdbc.Driver" />
name = "url" value = "jdbc:mysql:///mybatis?useSSL=false" />
name = "username" value = "root" />
name = "password" value = "1234" />
resource = "UserMapper.xml" />
  •  编写 SQL 映射文件 --> 统一管理sql语句,解决硬编码问题

 在模块的 resources 目录下创建映射配置文件 UserMapper.xml ,内容如下:

 

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
namespace = "test" >

 com.itheima.pojo 包下创建 User

 public class User {

private int id ;
private String username ;
private String password ;
private String gender ;
private String addr ;
// 省略了 setter getter
}

 com.itheima 包下编写 MybatisDemo 测试类

public class MyBatisDemo {

public static void main ( String [] args ) throws IOException {
//1. 加载 mybatis 的核心配置文件,获取 SqlSessionFactory
String resource = "mybatis-config.xml" ;
InputStream inputStream = Resources . getResourceAsStream ( resource );
SqlSessionFactory sqlSessionFactory = new
SqlSessionFactoryBuilder (). build ( inputStream );
//2. 获取 SqlSession 对象,用它来执行 sql
SqlSession sqlSession = sqlSessionFactory . openSession ();
//3. 执行 sql
List < User > users = sqlSession . selectList ( "test.selectAll" ); // 参数是一个字符串,该
字符串必须是映射配置文件的 namespace.id
System . out . println ( users );
//4. 释放资源
sqlSession . close ();
        }
}

 解决SQL映射文件的警告提示:

  • 产生的原因:Idea和数据库没有建立连接,不识别表信息。但是大家一定要记住,它并不影响程序的执行。
  • 解决方式:在Idea中配置MySQL数据库连接

IDEA中配置MySQL数据库连接

  • 点击IDEA右边框的 Database ,在展开的界面点击 + 选择 Data Source ,再选择 MySQL

 MyBatis快速入门_第3张图片

  •  在弹出的界面进行基本信息的填写

 MyBatis快速入门_第4张图片

  •  点击完成后就能看到如下界面

 MyBatis快速入门_第5张图片

 而此界面就和 navicat 工具一样可以进行数据库的操作。也可以编写SQL语句

你可能感兴趣的:(后端,mybatis,java,开发语言)