IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SSM-Mybatis-1-基础使用 -> 正文阅读

[Java知识库]SSM-Mybatis-1-基础使用

1 Mybatis简介

1.1 原始jdbc操作

使用原始jdbc查询数据时:
在这里插入图片描述
使用原始jdbc插入数据时:
在这里插入图片描述
通过上述的示例可以看到原始jdbc操作存在的问题:

1,数据库频繁创建连接,释放连接会影响系统性能

2,sql语句在代码中硬编码,造成代码不易维护
实际应用中sql变化的可能性很大,sql的变化也需要更改Java代码

3,查询操作中,需要手动将结果集中的数据封装到实体中
插入操作中,需要手动将实体的数据设置到sql的占位符位置

对于上述的问题给出的解决方案:

1,使用数据库连接池初始化连接资源

2,将sql语句抽取到xml配置文件中

3,使用反射等技术,自动将实体与表的属性与字段进行映射

1.2 什么是Mybatis

Mybatis是一个Java持久层框架,内部封装了jdbc,使得开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动,创建连接,创建statement等繁杂的过程

Mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终的sql语句,最后Mybatis框架执行sql并将结果映射为java对象并返回,采用ORM思想解决了实体和数据库映射的问题,对jdbc进行了封装,屏蔽了jdbcAPI底层访问的细节,使得我们不需要和jdbcAPI打交道,就能完成对数据库的持久化操作

2 Mybatis快速入门

Mybatis的开发步骤:

1,添加Mybatis相关的jar包

2,数据库中创建表

3,编写与表对应的实体类

4,编写映射文件UserMapper.xml
主要编写sql语句

5,编写核心文件SqlMapConfig.xml
Mybatis的核心配置

6,编写测试类

1,添加Mybatis相关的jar包:

     <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.32</version>
      </dependency>

      <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.4.5</version>
      </dependency>

      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>test</scope>
      </dependency>

      <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.17</version>
      </dependency>

2,数据库中创建表:
在这里插入图片描述

3,编写与表对应的实体类:
在这里插入图片描述
4,编写映射文件UserMapper.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">

映射文件的结构:

在这里插入图片描述
在这里插入图片描述

5,编写核心文件SqlMapConfig.xml:
需要在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">

在这里插入图片描述

6,编写测试类:
在这里插入图片描述

3 Mybatis的增删改查操作

3.1 插入操作

1,在UserMapper.xml中编写sql语句:

    <!-- 插入操作 -->
    <insert id="save" parameterType="com.coisini.domain.User">
        INSERT INTO user VALUES(#{id}, #{username}, #{password})
    </insert>

2,测试:
在这里插入图片描述
在进行更新操作时(插入,修改,删除)时,需要提交事务,即sqlSession.commit(),因为Mybatis默认是不提交事务的

3.2 修改和删除

修改操作:

1,在UserMapper.xml中编写sql语句:

    <!-- 修改操作  -->
    <update id="update" parameterType="com.coisini.domain.User">
        UPDATE user SET username=#{username}, password=#{password} WHERE id=#{id}
    </update>

2,测试:
在这里插入图片描述

删除操作:

1,在UserMapper.xml中编写sql语句:

    <!-- 删除操作  -->
    <delete id="delete" parameterType="java.lang.Integer">
        DELETE FROM user WHERE id=#{id}
    </delete>

2,测试:
在这里插入图片描述

4 Mybatis的核心配置文件

4.1 environments标签

数据库环境的配置,支持多环境配置

在这里插入图片描述
其中事务管理类型transactionManager有两种:

1,JDBC: 直接使用JDBC的提交和回滚设置

2,MANAGED: 几乎什么都不做

数据源dataSource有三种:

1,UNPOOLED: 这个数据源的实现只是每次被请求时打开和关闭连接

2,POOLED: 这种数据源的实现利用"池"的概念将JDBC连接对象组织起来

3,JNDI: 这个数据源的实现是为了能在EJB或应用服务器这类容器中使用

4.2 mappers标签

该标签用于加载映射文件,加载方式有如下几种:
在这里插入图片描述

4.3 properties标签

开发中习惯将数据源配置信息单独抽取成一个properties文件,该标签可以加载properties文件
在这里插入图片描述

4.4 typeAliases标签

typeAliases即类型别名,为Java类型设置一个短的名字
在这里插入图片描述
在核心配置文件中配置别名,在映射文件中使用

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:08:15  更:2021-07-16 11:09:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 21:20:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码