@

总结内容

1. 基本概念

  • Mybatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。

2. Mybatis的使用

需求

配置文件简介

  • 添加项目需要的jar包

    1)mysql-connection-java-5.1.26-bin.jar(jar包可以根据自己需要更换)

      MySQL数据库的JDBC驱动包,访问MySQL必须导入的jar包

    2)mybatis-3.4.5.jar(jar包可以根据自己需要更换)

      MyBatis 框架的核心jar包

  • XxxMapper.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 属性,对应的值必须是改文件所在包名 + "." + 该文件的名称(不带后缀名)
用于区分sql的唯一性-->
<mapper namespace="com.yy.homework.mapper.TeacherMapper"> <!-- insert 标签 id 属性,它是唯一标识符,指在当前文件中必须是唯一的
目的:表示 sql 唯一性 --> <!-- 原因:在开发中,如果需要获取到数据库中自动生成的主键,可以通过mybatis来实现
useGeneratedkeys: 表示当前文件中唯一
keyProperty: 表示是否需要获取主键的值
parameterType: 传入参数的类型(一般不写)--> <!-- #{变量} 整体是占位符,相当于 preparedStatement 中的 ?
变量:如果传入的参数类型是简单类型(包含String),可以随便使用变量使用变量名
如果传入的参数类型是对象类型,必须使用对象中的属性的名称 --> <insert id="delete">
delete from Teacher where userID = #{userID}
</insert> <!-- resultType 设置数据的类型,高数MyBatis框架,让 MyBatis 把数据库返回的数据封装成 resultType 类型的对象
resultMap 处理表中的列的名称和类中属性名称不一致的情况的映射关系 -->
<select id="selectAll" resultType="com.yy.domain.Teacher>
select * from Teacher
</select>
</mapper>
  • 理解:MyBatis 的执行流程

    1)加载主配置文件(mybatis-config.xml)到内存中,将数据封装到对象(Configuration/Environment/TransactionManager/DataSource等)

    2)通过操作拿到访问数据库的基本信息,根据这些数据创建SqlSessionFactory对象

    3)从SqlSessionFactory对象中获取到SqlSession对象,然后执行SQL

    4)insert into user(name,age,salary,hiredate) values(#{name},#{age},#{salary},#{hiredate}); 被翻译成 insert into user(name,age,salary,hiredate) values(?,?,?,?);

    5)使用PreparedStatement来执行指定的SQL,从传递进来的User对象中依次获取到name/age/salary/hiredate 这些属性的值,这里需要使用到内省机制来访问对象中的属性。

总结

以上就是 jdbc 连接数据库的总结了,代码仅供参考,欢迎讨论交流。

Mybatis的简介+简单实现增删改查案例的更多相关文章

  1. SSM框架之MyBatis框架实现简单的增删改查

    MyBatis框架介绍 MyBatis是一个优秀的数据持久层框架,在实体类和SQL语句之间建立映射关系是一种半自动化的ORM实现,其封装性要低于Hibernate,性能优越,并且小巧,简单易学,应用也 ...

  2. mybatis实现最简单的增删改查

    1.数据库设计 2.项目结构(针对User不用管Blogger) User.java package com.yunqing.mybatis.bean; public class User { pri ...

  3. springboot(三 使用mybatis +springboot 完成简单的增删改查)

    先说一些注解: @EnableAutoConfiguration 可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器 ...

  4. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...

  5. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  6. 通过JDBC进行简单的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  7. SpringMVC之简单的增删改查示例(SSM整合)

    本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...

  8. SpringBoot+Mybatis+Maven+MySQL逆向工程实现增删改查

    SpringBoot+Mybatis+MySQL+MAVEN逆向工程实现增删改查 这两天简单学习了下SpringBoot,发现这玩意配置起来是真的方便,相比于SpringMVC+Spring的配置简直 ...

  9. 通过JDBC进行简单的增删改查(以MySQL为例) 目录

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

随机推荐

  1. [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器 --(9)--- Local hash表

    [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器 --(9)--- Local hash表 目录 [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器 --(9)--- ...

  2. tensorflow源码解析之common_runtime拾遗

    把common_runtime中剩余的内容,按照文件名排序进行了简单的解析,时间原因写的很仓促,算是占个坑,后续有了新的理解再来补充. allocator_retry 有时候内存分配不可能一次完成,为 ...

  3. 8、msyql性能分析工具

    性能分析工具 1服务器优化的步骤 2查询系统参数 在MySQL中,可以使用 SHOW STATUS 语句查询一些MySQL数据库服务器的性能参数.执行频率 . SHOW STATUS语句语法如下: S ...

  4. LGP5795题解

    首先 \(k\) 大容易让我们想到 主席树&树套树&整体二分,而异或又让我们想到 01-Trie. 所以就有一个很明显的二分,二分一个 mid 看有多少个数不大于 mid. 然后发现 ...

  5. 1354:括弧匹配检验ybt

    [题目描述]假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[([ ][ ])]等为正确的匹配,[( ])或([ ]( )或 ( ( ) ) )均为错误的匹配. 现在 ...

  6. 一步一步迁移ASP.NET Core 6.0-Part2

    .NET 6 发布后,我们现有的应用会逐步升级到这个版本,首当其冲的是原因的ASP.NET Core的工程,如果一步一步升级到ASP.NET Core 6.0. 上一篇博文中,跟大家详细介绍了中间件. ...

  7. c++-投骰子

    #include<iostream>#include<cstdlib>//产生随机数的函数using namespace std;enum GameStatus{WIN,LOS ...

  8. switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

    在Java 7以前,在switch(expr1)中,expr1只能是一个整数表达式(但不包括long和Long)或者枚举常量,整数表达式可以是int基本类型或Integer包装类型,byte.shor ...

  9. 深入理解Java虚拟机-JVM运行时数据区域

    一.运行时数据区域 1.程序计数器 程序计数器( Program Counter Register) 是一块较小的内存空间, 它可以看作是当前线程所执行的字节码的行号指示器. Java虚拟机的多线程是 ...

  10. Java有没有goto?

    goto 是Java中的保留字,在目前版本的Java中没有使用.(根据James Gosling(Java之父)编写的<The Java Programming Language>一书的附 ...