MyBatis-3.2.6使用手册
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的正确姿势详解
好久没编码了!最近开始编码遇到⼀个问题 !⼀个批量修改的问题,就是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和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 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使⽤⽅法
⼀、需要的包: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(原名为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注解
如果有好用的插件,欢迎在下方评论推荐给大家使用~
