MyBatis-3.2.6使用手册

合集下载

SpringMVC+Spring+Hibernate框架整合原理,作用及使用方法

SpringMVC+Spring+Hibernate框架整合原理,作用及使用方法

SpringMVC+Spring+Hibernate框架整合原理,作⽤及使⽤⽅法

SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层

使⽤spring MVC负责请求的转发和视图管理

spring实现业务对象管理,mybatis作为数据对象的持久化引擎

原理:

SpringMVC:

1.客户端发送请求到DispacherServlet(分发器)

2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller

3.Controller调⽤业务逻辑处理后,返回ModelAndView

4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图

5.视图负责将结果显⽰到客户端

Spring:我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们中的类,当然也包括service dao⾥⾯的),有了这个机制,我们就

不⽤在每次使⽤这个类的时候为它初始化,很少看到关键字new。另外spring的aop,事务管理等等都是我们经常⽤到的。

Mybatis:mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕⼀个sqlSessionFactory实例展开的。mybatis通过配置⽂件

关联到各实体类的Mapper⽂件,Mapper⽂件中配置了每个类对数据库所需进⾏的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到

⼀个sqlSession,再执⾏sql命令。

使⽤⽅法:

要完成⼀个功能:

1. 先写实体类entity,定义对象的属性,(可以参照数据库中表的字段来设置,数据库的设计应该在所有编码开始之前)。

2. 写Mapper.xml(Mybatis),其中定义你的功能,对应要对数据库进⾏的那些操作,⽐如 insert、selectAll、selectByKey、delete、update等。

mybatis3.4.6批量更新foreach遍历map的正确姿势详解

mybatis3.4.6批量更新foreach遍历map的正确姿势详解

mybatis3.4.6批量更新foreach遍历map的正确姿势详解

好久没编码了!最近开始编码遇到⼀个问题 !⼀个批量修改的问题,就是mybatis foreach 的使⽤。

当时使⽤的场景 ,前端 传逗号拼接的字符串id, 修改id对应数据的数据顺序 ,顺序 就是id 的顺序.

就是⼀个条件(单个id值) 修改⼀个值(传⼊的id的顺序) ,

1、 把条件作为Map 的key 修改值是value,⽤map⼊参

2、⽤List 或者数组 ,把条件和值封装成对象放进list集合或者array数组

3、代码使⽤for循环调⽤mapper⽅法 穿两个参数。

因为考虑到第⼆种⽤法,需要不断创建对象 放进数组在 遍历数组获取对象取值。从虚拟机的堆内存考虑,放弃------------------------

第三种⽅法,会循环多少次就执⾏多少条sql语句,放弃-----------------------

于是使⽤Map,

可是在mybatis中参数是map的foreach使⽤,对于很久没编码的我,实在是忘记得很⼲净。于是百度⼀堆,⼀致性 就是报错:

把打印出的sql语句放到navicat 执⾏ 可以执⾏不会报错。那问题是什么(这⾥想来我1个⼩时),最后没办法 直接看mybatis的官⽹,把sql改成如下,正确执⾏。

下⾯给出正确的mybatis中foreach的map的姿势,避免⼤家以后在这上⾯浪费时间 ,直接上代码,涂改部分因公司保密协议问题(⼤家都知道是表名):mapper

⼀定要加@Param注解mapper.xml

最后 ⼤家遇到此问题的时候 看到我的这篇⽂章 少耽误时间!

补充知识:MyBatis3的Plugins功能使⽤

1、这是什么?

根据,这个功能可以让你在已映射语句执⾏过程中的某⼀点进⾏拦截调⽤。其实就是MyBatis给⽤户留了⼏个切⼊点,通过这些切⼊点,⽤户可以⾃⼰实现的功能。根据官⽅介绍,这些切⼊点(⽅法)包

括以下⼏个:

mybatis入门教程(一)(超简单)

mybatis入门教程(一)(超简单)

mybatis入门教程(一)(超简单)

mybatis 第一天mybatis的基础知识

课程安排:

mybatis和springmvc通过订单商品案例驱动

第一天:基础知识(重点,内容量多)

对原生态jdbc程序(单独使用jdbc开发)问题总结

mybatis框架原理(掌握)

mybatis入门程序

用户的增、删、改、查

mybatis开发dao两种方法:

原始dao开发方法(程序需要编写dao接口和dao实现类)(掌握)

mybaits的mapper接口(相当于dao接口)代理开发方法(掌握)mybatis配置文件SqlMapConfig.xml

mybatis核心:

mybatis输入映射(掌握)

mybatis输出映射(掌握)

mybatis的动态sql(掌握)

第二天:高级知识

订单商品数据模型分析

高级结果集映射(一对一、一对多、多对多)

mybatis延迟加载

mybatis查询缓存(一级缓存、二级缓存)

mybaits和spring进行整合(掌握)

mybatis逆向工程

1对原生态jdbc程序中问题总结

1.1环境

java环境:jdk1.7.0_72

eclipse:indigo mysql:5.1

1.2创建mysql数据

sql_table.sql:记录表结构

sql_data.sql:记录测试数据,在实际企业开发中,最后提供一个初始化数据脚本

1.3jdbc程序

使用jdbc查询mysql数据库中用户表的记录。

创建java工程,加入jar包:

数据库驱动包(mysql5.1)

上边的是mysql驱动。

下边的是oracle的驱动。

程序代码:

1.4问题总结

1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。

设想:使用数据库连接池管理数据库连接。

2、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护。

mybatis中文版教程

mybatis中文版教程

MyBatis Spring 1.0.0-RC3

参考文档

MyBatis 社区 ()

Copyright © 2010

本文档的拷贝仅允许您个人使用或分发给其他用户,但是不能收取任何费用,后期的发

布无论是印刷版或电子版,也会进行版权声明。

本文档由南磊(nanlei1987@)翻译

目录

第一章 介绍 .................................................................................................................... 3 1.1 整合动机 ............................................................................................................ 3

1.2 要求 ................................................................................................................... 3

1.3 感谢 ................................................................................................................... 3

第二章 入门 .................................................................................................................... 4

2.1 安装 ................................................................................................................... 4 2.2 快速创建 ............................................................................................................ 4

java学习--Mybatis使用方法

java学习--Mybatis使用方法

java学习--Mybatis使⽤⽅法

⼀、需要的包:mybatis,spring-jdbc,junit

⼆、需要添加的配置⽂件:主要是连接池的配置和映射⽂件的位置。

"/dtd/ibatis-3-config.dtd">

value="jdbc:oracle:thin:@localhost:1521:xe" />

三、写实体类

 注意:实体类的属性名与表的字段名要⼀样(⼤⼩写可以忽略)

四、添加映射⽂件,写sql语句

映射⽂件格式:

insert into t_dept

values(t_dept_seq.nextval,#{deptName},#{addr})

select * from t_dept

select * from t_dept where id = #{id2}

update t_dept SET deptName = #{deptName},addr = #{addr} WHERE id = #{id}

delete from t_dept where id = #{id1}

Select * From t_emp Where id = #{id1}

select * from t_emp where id = #{id}

五、 调⽤SqlSession对象提供的⽅法来访问数据库测试⽅法内容

1 package test;

2

3 import java.util.List;

4 import java.util.Map;

5

6 import org.apache.ibatis.session.SqlSession;

7 import org.apache.ibatis.session.SqlSessionFactory;

8 import org.apache.ibatis.session.SqlSessionFactoryBuilder;

mybatis语法和介绍详细

mybatis语法和介绍详细

mybatis语法和介绍详细

MyBatis(原名为iBATIS)是一种开源的持久化框架,它主要用于将Java对象与SQL语句进行映射,从而实现对象关系映射(ORM)。

MyBatis有一套独立的SQL映射文件,其中定义了对象属性与数据库列之间的映射关系。这些SQL映射文件通过XML进行定义,使得开发人员可以将SQL语句与Java代码进行解耦。SQL映射文件可以包含各种插入、更新、删除和查询语句,同时还支持存储过程和函数的调用。

MyBatis的核心组件包括SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession和Mapper。SqlSessionFactoryBuilder负责创建SqlSessionFactory对象,SqlSessionFactory负责创建SqlSession对象,SqlSession则是与数据库进行交互的核心类,而Mapper则负责定义与数据库交互的接口。

MyBatis的使用非常灵活,可以通过注解或者XML进行配置。注解是直接在Java代码中使用的标记,通过注解可以直接在Java代码中定义SQL语句,从而省去了编写XML文件的过程。XML配置方式则需要额外编写SQL映射文件,但是更加灵活和可维护。

下面是一个使用MyBatis的例子,其中使用了XML配置方式:

首先,我们需要编写一个User类,用于与数据库中的user表进行映射:

```java

public class User

private int id; private String name;

private String email;

// 省略getter和setter方法

```

接下来,我们需要编写一个UserMapper接口,用于定义与数据库交互的方法:

```java

public interface UserMapper

User selectUser(int id);

MyBatis详解一篇就够啦

MyBatis详解⼀篇就够啦

第1章MyBatis框架配置⽂件详解

1.1 typeHandlers类型转换器

每当MyBatis 设置参数到PreparedStatement 或者从ResultSet 结果集中取得值时,就会使⽤TypeHandler 来处理数据库类型与java 类型之间转换。下表描

述了默认TypeHandlers

1.1.1 ⾃定义类型转换器

假设表中字段是int类型,⽽实体类与之对应的属性是boolean类型,此时可以采⽤⾃定义类型转换器进⾏对应

(1)实体类

1 package com.chenyanbin.beans;

2

3 public class Dept {

4 private Integer deptNo;

5 private String dname;

6 private String loc;

7 private boolean flag;

8 public Integer getDeptNo() {

9 return deptNo;

10 }

11 public boolean isFlag() {

12 return flag;

13 }

14 public void setFlag(boolean flag) {

15 this.flag = flag;

16 }

17 public void setDeptNo(Integer deptNo) {

18 this.deptNo = deptNo;

19 }

20 public String getDname() {

21 return dname;

22 }

23 public void setDname(String dname) {

24 this.dname = dname;

25 }

26 public String getLoc() {

27 return loc;

28 }

29 public void setLoc(String loc) {

MyBatis中文教程

MyBatis中文教程

1. SQL和Java代码的解耦:MyBatis将SQL代码和Java代码分离,通过配置文件中的映射来实现二者之间的映射关系,这样可以减少代码的冗余和维护的工作量。

2. 灵活的SQL查询:MyBatis提供了强大的SQL查询功能,支持动态SQL、参数处理、结果映射等功能,可以灵活地编写和执行各种SQL查询。

3. 缓存支持:MyBatis支持多级缓存机制,可以提高查询性能。它提供了一级缓存和二级缓存的支持,可以根据需要进行配置和开启。

4. 事务支持:MyBatis对JDBC的事务做了封装,提供了简单易用的事务管理机制,可以很方便地实现数据库事务的控制。

5. 易于集成:MyBatis是一个独立的框架,可以很容易地集成到Java项目中,支持各种常见的数据库。

使用MyBatis的基本步骤如下:

1. 添加MyBatis的依赖:在项目的pom.xml文件中添加MyBatis的依赖,或者将MyBatis的jar包添加到项目的classpath中。

2. 创建映射文件:创建一个XML文件,用于配置SQL语句和结果映射规则。该文件一般包含一个元素和多个元素。

3. 配置数据源:在项目的配置文件中配置数据源,用于连接数据库。可以使用JDBC的数据源,也可以使用其他的数据源,如C3P0、Druid等。 4. 创建SqlSessionFactory:使用MyBatis的API创建一个SqlSessionFactory对象,该对象是一个线程安全的工厂类,用于创建SqlSession。

5. 创建SqlSession:使用SqlSessionFactory创建一个SqlSession对象,该对象用于执行SQL语句和管理事务。每个线程应该有一个独立的SqlSession对象。

6.编写SQL语句:在映射文件中编写SQL语句,可以使用动态SQL、参数处理和结果映射等特性。

7. 执行SQL语句:使用SqlSession的方法执行SQL语句,如selectOne、selectList、insert、update、delete等。

Mybatis学习笔记(详细)

Mybatis学习笔记(详细)

介绍三层架构:视图层、业务逻辑层、持久层

mybatis框架:

执⾏数据库操作,完成对数据库的增删改查,封装了jdbc

mapper映射,将表中数据转为⼀个Java对象,⼀个表对应⼀个接⼝

Mybatis实战使⽤⽅式:

直接获取SqlSession,根据sql id执⾏sql

⾃定义dao接⼝实现类,使⽤接⼝实现类对象操作(会有⼤量重复代码)

使⽤mybatis的代理对象:使⽤getMapper()获取dao对象,直接执⾏⽅法访问数据库。

mybatis框架使⽤步骤:定义实体类定义接⼝

定义mapper⽂件

定义主配置⽂件:1.数据源,2.mapper⽂件位置

使⽤SqlSessionFactoryBuild创建SqlSessionFactory并传⼊xml配置⽂件,通过Factory创建SqlSession,通过SqlSession执⾏⼀系列数据库操作

mybatis传递参数

dao⽅法有⼀个简单类型,直接使⽤#{任意字符}

多个参数:使⽤@Param("xx")指明xml解析的名字

使⽤Java对象,mapper中使⽤对象的属性

#和$的区别

#是占位符,使⽤PreparedStatement执⾏sql,效率⾼表⽰列的值,⼀般放在等号右侧使⽤

$是字符串连接,使⽤Statement,效率低,有sql注⼊的风险

$⼀般是替换表名、列名

mybatis封装sql的执⾏结果

标签中的resultType,指明封装结果的对象,可以使⽤别名(需要定义,可以复⽤)

标签中的resultMap,指明数据库列名与Java对象属性的对应关系(需要定义,可以复⽤),或者使⽤sql语句的as给列取别名

like:直接使⽤#{xxx},传递参数给mapper

动态sql

:⾥⾯是if,条件满⾜加⼊where,并去除多余的and,or等关键字

:如果条件满⾜,加⼊后⾯的sql语句

:list或array

mybatis主配置⽂件:配置项有顺序

IDEA下MyBatis插件安装与使用图文教程

IDEA插件安装与使用图文教程

开发中实用的插件,如Lombok、MyBatis Plugin等推荐多加使用。

例如:

 free-idea-mybatis是一款增强idea对mybatis支持的插件,主要功能如下:

 生成mapper xml文件

 快速从代码跳转到mapper及从mapper返回代码

 mybatis自动补全及语法错误提示

 集成mybatis generator gui界面

 根据数据库注解,生成swagger model注解

1、打开IDEA设置界面

2、如下图搜索、安装所要插件

3、插件安装完成后,重启IDE即可使用

4、在项目中Mapper与XML就可通过下图箭头便捷地相互跳转。

5、开发中实用的插件,如Lombok、MyBatis Plugin等推荐多加使用。

例如:

 free-idea-mybatis是一款增强idea对mybatis支持的插件,主要功能如下:

 生成mapper xml文件

 快速从代码跳转到mapper及从mapper返回代码

 mybatis自动补全及语法错误提示

 集成mybatis generator gui界面

 根据数据库注解,生成swagger model注解

如果有好用的插件,欢迎在下方评论推荐给大家使用~

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档