mybatis使用手册

合集下载

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

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

mybati‎s第一天mybati‎s的基础知识‎课程安排:mybati‎s和spri‎n gmvc通‎过订单商品案例驱动第一天:基础知识(重点,内容量多)对原生态jd‎b c程序(单独使用jd‎b c开发)问题总结mybati‎s框架原理(掌握)mybati‎s入门程序用户的增、删、改、查mybati‎s开发dao‎两种方法:原始dao开‎发方法(程序需要编写‎d a o接口和‎d a o实现类‎)(掌握)mybait‎s的mapp‎e r接口(相当于dao‎接口)代理开发方法‎(掌握)mybati‎s配置文件S‎q lMapC‎onfig.xmlmybati‎s核心:mybati‎s输入映射(掌握)mybati‎s输出映射(掌握)mybati‎s的动态sq‎l(掌握)第二天:高级知识订单商品数据‎模型分析高级结果集映‎射(一对一、一对多、多对多)mybati‎s延迟加载mybati‎s查询缓存(一级缓存、二级缓存)mybait‎s和spri‎n g进行整合‎(掌握)mybati‎s逆向工程1对原生态jd‎bc程序中问‎题总结1.1环境java环境‎:jdk1.7.0_72eclips‎e:indigo‎mysql:5.11.2创建mysq‎l数据导入下边的脚‎本:sql_ta‎ble.sql:记录表结构sql_da‎t a.sql:记录测试数据‎,在实际企业开‎发中,最后提供一个‎初始化数据脚‎本1.3jdbc程序‎使用jdbc‎查询mysq‎l数据库中用‎户表的记录。

创建java‎工程,加入jar包‎:数据库驱动包‎(m ysql5‎.1)上边的是my‎sql驱动。

下边的是or‎a cle的驱‎动。

程序代码:1.4问题总结1、数据库连接,使用时就创建‎,不使用立即释‎放,对数据库进行‎频繁连接开启‎和关闭,造成数据库资‎源浪费,影响数据库性能。

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

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

mybatisx用法

mybatisx用法

mybatisx用法
1.
安装MyBatis-X插件:在MyBatis-X官网下载最新版本的插件,将其解压后放到项目的libs目录下,然后在MyBatis配置文件中添加插件配置。

2.创建实体类:根据数据库表结构创建实体类,实体类中的属性名应与表结构中的列
名对应,并使用注解或XML配置文件进行映射。

3.创建Mapper接口:创建与实体类对应的Mapper接口,并使用注解或XML配置文
件定义CRUD操作。

4.配置MyBatis-X:在MyBatis-X的配置文件中配置数据库连接信息和实体类、Mapper
接口等资源信息。

5.使用MyBatis-X:在应用程序中注入Mapper接口,调用其定义的方法进行数据库操
作。

需要注意的是,在使用MyBatis-X时,需要遵循一定的规范和最佳实践,例如合理设计数据库表结构、使用恰当的SQL语句、避免N+1查询问题等。

同时,还需要注意插件的版本兼容性和安全性问题,确保项目在开发和生产环境中的稳定性和安全性。

mybatis中文版教程

mybatis中文版教程

MyBatis Spring1.0.0-RC3参考文档MyBatis 社区()Copyright © 2010本文档的拷贝仅允许您个人使用或分发给其他用户,但是不能收取任何费用,后期的发布无论是印刷版或电子版,也会进行版权声明。

本文档由南磊(nanlei1987@)翻译目录第一章介绍 (3)1.1 整合动机 (3)1.2 要求 (3)1.3 感谢 (3)第二章入门 (4)2.1 安装 (4)2.2 快速创建 (4)第三章SqlSessionFactoryBean (6)3.1 创建 (6)3.2 属性 (6)第四章事务 (8)4.1 标准配置 (8)4.2 容器管理事务 (8)第五章使用SqlSession (9)5.1 SqlSessionSupport (9)5.2 SqlSessionTemplate (9)第六章MapperFactoryBean (11)6.1 创建 (11)6.2 注入映射器 (11)6.3 自动配置 (12)第七章使用MyBatis API (13)第八章示例代码 (14)第一章介绍1.1 整合动机正如第二版,Spring仅支持iBatis2。

那么我们就想将MyBatis3的支持加入到Spring3.0(参考Spring的Jira的问题)中。

不幸的是,Spring 3.0的开发在MyBatis 3.0官方发布前就结束了。

因为Spring开发团队不想发布一个基于非发行版的MyBatis的整合支持,那么Spring 官方的支持就不得不等到至少3.1版本了。

要在Spring中支持MyBatis,MyBatis社区认为现在应该是自己团结贡献者和有兴趣的人一起来开始进行Spring和MyBatis整合的时候了。

这个小类库就来创建丢失的粘贴Spring和MyBtatis这两个流行框架的胶水。

减少用户不得不来配置MyBatis和Spring 3.X上下文环境的样板和冗余代码。

MyBatisPlus入门使用详细教程

MyBatisPlus入门使用详细教程

MyBatisPlus⼊门使⽤详细教程⼀、MyBatis Plus 介绍MyBatis Plus 是国内⼈员开发的 MyBatis 增强⼯具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提⾼效率⽽⽣。

MyBatis Plus 的核⼼功能有:⽀持通⽤的 CRUD、代码⽣成器与条件构造器。

通⽤ CRUD:定义好 Mapper 接⼝后,只需要继承BaseMapper<T>接⼝即可获得通⽤的增删改查功能,⽆需编写任何接⼝⽅法与配置⽂件条件构造器:通过EntityWrapper<T>(实体包装类),可以⽤于拼接 SQL 语句,并且⽀持排序、分组查询等复杂的SQL代码⽣成器:⽀持⼀系列的策略配置与全局配置,⽐ MyBatis 的代码⽣成更好⽤BaseMapper<T>接⼝中通⽤的 CRUD ⽅法:⼆、MyBatis Plus 集成 Spring数据表结构DROP TABLE IF EXISTS `tbl_employee`;CREATE TABLE `tbl_employee` (`id` int(11) NOT NULL AUTO_INCREMENT,`last_name` varchar(50) DEFAULT NULL,`email` varchar(50) DEFAULT NULL,`gender` char(1) DEFAULT NULL,`age` int(11) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;pom⽂件<dependencies><!-- MP --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>2.3</version></dependency><!-- 测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!-- 数据源 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><!-- 数据库驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.39</version></dependency><!-- Spring 相关 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>4.3.9.RELEASE</version></dependency></dependencies>MyBatis 全局配置⽂件mybatis-config.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-////DTD Config 3.0//EN""/dtd/mybatis-3-config.dtd"><!-- 不作任何配置 --><configuration />数据源db.propertiesjdbc.url=jdbc:mysql://localhost:3306/mpername=rootjdbc.password=1234Spring 配置⽂件applicationContext.xml<!-- 数据源 --><context:property-placeholder location="classpath:db.properties"/><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="url" value="${jdbc.url}"></property><property name="username" value="${ername}"></property><property name="password" value="${jdbc.password}"></property></bean><!-- MP 提供的 MybatisSqlSessionFactoryBean --><bean id="sqlSessionFactoryBean"class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean"><!-- 数据源 --><property name="dataSource" ref="dataSource"></property><!-- mybatis 全局配置⽂件 --><property name="configLocation" value="classpath:mybatis-config.xml"></property><!-- 别名处理 --><property name="typeAliasesPackage" value="com.jas.bean"></property><!-- 注⼊全局MP策略配置 --><property name="globalConfig" ref="globalConfiguration"></property><!-- 插件注册 --><property name="plugins"><list><!-- 注册分页插件 --><bean class="com.baomidou.mybatisplus.plugins.PaginationInterceptor" /><!-- 注⼊ SQL 性能分析插件,建议在开发环境中使⽤,可以在控制台查看 SQL 执⾏⽇志 --> <bean class="com.baomidou.mybatisplus.plugins.PerformanceInterceptor"><property name="maxTime" value="1000" /><!--SQL 是否格式化默认false--><property name="format" value="true" /></bean></list></property></bean><!-- 定义 MybatisPlus 的全局策略配置--><bean id ="globalConfiguration" class="com.baomidou.mybatisplus.entity.GlobalConfiguration"> <!-- 在 2.3 版本以后,dbColumnUnderline 默认值是 true --><property name="dbColumnUnderline" value="true"></property><!-- 全局的主键策略 --><property name="idType" value="0"></property><!-- 全局的表前缀策略配置 --><property name="tablePrefix" value="tbl_"></property></bean><!-- 配置mybatis 扫描mapper接⼝的路径 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.jas.mapper"></property></bean>三、快速体验 MyBatis Plus实体类Employee@TableName(value = "tbl_employee")public class Employee {@TableId(value = "id", type = IdType.AUTO)private Integer id;@TableField(value = "last_name")private String lastName;private String email;private Integer gender;private Integer age;public Employee() {super();}public Employee(Integer id, String lastName, String email, Integer gender, Integer age) {this.id = id;stName = lastName;this.email = email;this.gender = gender;this.age = age;}// 省略 set、get 与 toString() ⽅法mapper 接⼝/*** 不定义任何接⼝⽅法*/public interface EmployeeMapper extends BaseMapper<Employee> {}在测试类中⽣成测试的 mapper 对象private ApplicationContext context =new ClassPathXmlApplicationContext("classpath:applicationContext.xml");private EmployeeMapper employeeMapper =context.getBean("employeeMapper", EmployeeMapper.class);简单查询测试@Testpublic void getEmpByIdTest() {Employee employee = employeeMapper.selectById(1);System.out.println(employee);}分页查询测试@Testpublic void getEmpByPage() {Page<?> page = new Page<>(1, 5);List<Employee> list = employeeMapper.selectPage(page, null);System.out.println("总记录数:" + page.getTotal());System.out.println("总页数" + page.getPages());System.out.println(list);}条件构造器测试@Testpublic void getEmpByName() {EntityWrapper<Employee> wrapper = new EntityWrapper<>();// 'last_name' 与 'age' 对应数据库中的字段wrapper.like("last_name", "张");wrapper.eq("age", 20);List<Employee> list = employeeMapper.selectList(wrapper);System.out.println(list);}控制台输出的 SQL 分析⽇志上⾯⼏个例⼦中,并没有在EmployeeMapper接⼝中定义任何⽅法,也没有在配置⽂件中编写 SQL 语句,⽽是通过继承BaseMapper<T>接⼝获得通⽤的的增删改查⽅法,复杂的 SQL 也可以使⽤条件构造器拼接。

mybatis gt用法

mybatis gt用法

mybatis gt用法MyBatis-GT是一款强大的MyBatis插件,它提供了许多实用的功能,如数据查询、事务管理、缓存机制等,可以帮助开发者更高效地处理数据库操作。

本文将介绍MyBatis-GT的基本用法和常见技巧。

一、基本用法1.引入MyBatis-GT依赖首先,需要在项目中引入MyBatis-GT的依赖。

可以通过在Maven中添加以下依赖到`pom.xml`文件中:```maven<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>最新版本号</version></dependency>```2.配置数据源在application.yml或application.properties文件中配置数据源信息,包括数据库连接地址、用户名、密码等。

3.创建实体类根据数据库表结构,创建对应的实体类。

实体类需要继承`BaseEntity`类,并实现`getId()`方法。

4.创建Mapper接口根据数据库操作需求,创建对应的Mapper接口,并定义相应的SQL语句和方法。

5.配置MyBatis-GT在SpringBoot项目中,需要在配置类中启用MyBatis-GT功能,并配置相关的数据源信息。

6.集成MyBatis-GT插件在Mapper接口或Model类上使用MyBatis-GT提供的注解或注解生成工具,自动生成对应的SQL语句和执行逻辑。

二、常用功能和技巧1.批量操作MyBatis-GT提供了批量插入、更新和删除的功能,可以大大提高数据库操作的效率。

可以使用`insertList`、`updateList`和`deleteList`方法批量操作数据。

mybatis select用法

mybatis select用法

mybatis select用法MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。

Select查询是MyBatis中最常用的查询方式之一,用于从数据库中检索数据。

下面我们将详细介绍MyBatis Select的用法。

一、Select查询基本语法MyBatis中的Select查询基本语法如下:```sql<select id="selectByExample" parameterType="example"resultType="resultType">SELECT column1, column2 FROM table_name WHERE condition</select>```其中:* `id`:别名,用于引用该查询。

* `parameterType`:指定参数类型,可以是Java对象或Map。

* `resultType`:指定返回结果类型,可以是Java对象或Map。

* `SELECT`:指定要检索的列名和表名。

* `FROM`:指定要查询的表名。

* `WHERE`:可选,用于指定查询条件。

二、参数传递在MyBatis中,可以通过Map或Java对象传递参数给Select查询。

以下是一个使用Java对象作为参数的示例:```javaExample example = new Example(Student.class);example.setParameterValue("age", 20); // 将年龄设置为20selectByExample(example); // 调用Select查询方法```在MyBatis映射文件中,可以通过`<if>`标签根据条件动态生成SQL语句中的参数值。

例如:```xml<select id="selectByExample" parameterType="example"resultType="Student">SELECT * FROM student WHERE age = <iftest="example.getParameterValue('age') !=null">${example.getParameterValue('age')}</if></select>```三、结果映射Select查询返回的结果可以通过Java对象进行映射。

mybatis-plus-boot-starter用法 概述及解释说明

mybatis-plus-boot-starter用法 概述及解释说明

mybatis-plus-boot-starter用法概述及解释说明1. 引言1.1 概述本篇文章旨在为读者提供关于mybatis-plus-boot-starter的详细解释和使用指南。

Mybatis-plus-boot-starter是一个重要的开源项目,它在Mybatis的基础上提供了更多便捷的功能和优化,使得我们可以更轻松地进行数据库操作。

本文将对该工具包进行概述,并介绍其主要特点和功能。

1.2 文章结构本文分为五个部分:引言、Mybatis-plus-boot-starter用法、使用示例、实际应用场景分析和总结与展望。

首先我们将对文章整体结构进行简单介绍,然后逐个章节详细阐述每部分的内容。

1.3 目的本文的主要目的是帮助读者更好地理解和掌握mybatis-plus-boot-starter的使用方法和技巧。

通过具体的实例演示和理论解释,读者可以深入了解该工具包,并能够灵活运用于实际项目中。

此外,我们还将分析一些常见应用场景,并给出相应的解决方案,以期帮助读者进一步拓展思路,提高开发效率。

以上是关于“1. 引言”部分内容的详细说明,请根据需要自行组织语言并撰写文章。

2. Mybatis-plus-boot-starter用法2.1 简介Mybatis-plus-boot-starter是一个方便快捷地使用MyBatis-Plus的开发工具。

它提供了许多封装好的方法和功能,简化了对数据库的操作,并且提高了开发效率。

通过引入mybatis-plus-boot-starter依赖,我们可以轻松地在Spring Boot 项目中集成MyBatis-Plus。

2.2 配置方式在Spring Boot项目中使用mybatis-plus-boot-starter非常简单。

首先,在项目的pom.xml文件中添加对mybatis-plus-boot-starter的依赖。

然后,在application.properties或application.yml配置文件中设置相关属性,如数据库连接信息、实体类包路径等。

MyBatis3用户指南中文版

MyBatis3用户指南中文版
1. SqlSessionFactoryBuilder..................................................................................................7 2. SqlSessionFactory............................................................................................................ 7 3. SqlSession....................................................................................................................... 7 4. Mapper 实例................................................................................................................... 8 第三章 Mapper 的 XML 配置文件........................................................................................................ 9 一、属性(properties)................................................................................................................. 9 二、设置(settings).............
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。

MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。

MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

二、mybatis快速入门2.1、准备开发环境1、创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示:2、添加相应的jar包【mybatis】mybatis-3.1.1.jar【MYSQL驱动包】mysql-connector-java-5.1.7-bin.jar3、创建数据库和表,针对MySQL数据库SQL脚本如下:1createdatabase mybatis;2use mybatis;3CREATETABLE users(id INTPRIMARYKEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);4INSERTINTO users(NAME, age) VALUES('孤傲苍狼', 27);5INSERTINTO users(NAME, age) VALUES('白虎神皇', 27);将SQL脚本在MySQL数据库中执行,完成创建数据库和表的操作,如下:到此,前期的开发环境准备工作全部完成。

2.2、使用MyBatis查询表中的数据1、添加Mybatis的配置文件conf.xml在src目录下创建一个conf.xml文件,如下图所示:conf.xml文件中的内容如下:1<?xml version="1.0" encoding="UTF-8"?>2<!DOCTYPE configuration PUBLIC "-////DTD Config 3.0//EN" "/dtd/mybatis-3-config.dtd">3<configuration>4<environments default="development">5<environment id="development">6<transactionManager type="JDBC"/>7<!-- 配置数据库连接信息 -->8<dataSource type="POOLED">9<property name="driver" value="com.mysql.jdbc.Driver"/>10<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> 11<property name="username" value="root"/>12<property name="password" value="XDP"/>13</dataSource>14</environment>15</environments>1617</configuration>2、定义表所对应的实体类,如下图所示:User类的代码如下:1package me.gacl.domain;23/**4 *@author gacl5 * users表所对应的实体类6*/7publicclass User {89//实体类的属性和表的字段名称一一对应10privateint id;11private String name;12privateint age;1314publicint getId() {15return id;16 }1718publicvoid setId(int id) {19this.id = id;20 }2122public String getName() {23return name;24 }2526publicvoid setName(String name) { = name;28 }2930publicint getAge() {31return age;32 }3334publicvoid setAge(int age) {35this.age = age;36 }3738 @Override39public String toString() {40return "User [id=" + id + ", name=" + name + ", age=" + age + "]";41 }42 }3、定义操作users表的sql映射文件userMapper.xml创建一个me.gacl.mapping包,专门用于存放sql映射文件,在包中创建一个userMapper.xml文件,如下图所示:userMapper.xml文件的内容如下:1<?xml version="1.0" encoding="UTF-8" ?>2<!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd">3<!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的4例如namespace="erMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)5-->6<mapper namespace="erMapper">7<!-- 在select标签中编写查询的SQL语句,设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复8使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型9resultType="er"就表示将查询结果封装成一个User类的对象返回10 User类就是users表所对应的实体类11-->12<!--13根据id查询得到一个user对象14-->15<select id="getUser"parameterType="int"16resultType="er">17 select * from users where id=#{id}18</select>19</mapper>4、在conf.xml文件中注册userMapper.xml文件1<?xml version="1.0" encoding="UTF-8"?>2<!DOCTYPE configuration PUBLIC "-////DTD Config 3.0//EN" "/dtd/mybatis-3-config.dtd">3<configuration>4<environments default="development">5<environment id="development">6<transactionManager type="JDBC"/>7<!-- 配置数据库连接信息 -->8<dataSource type="POOLED">9<property name="driver" value="com.mysql.jdbc.Driver"/>10<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> 11<property name="username" value="root"/>12<property name="password" value="XDP"/>13</dataSource>14</environment>15</environments>1617<mappers>18<!-- 注册userMapper.xml文件,19 userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml-->20<mapper resource="me/gacl/mapping/userMapper.xml"/>21</mappers>2223</configuration>5、编写测试代码:执行定义的select语句创建一个Test1类,编写如下的测试代码:package me.gacl.test;import java.io.IOException;import java.io.InputStream;import java.io.Reader;import er;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;publicclass Test1 {publicstaticvoid main(String[] args) throws IOException {//mybatis的配置文件String resource = "conf.xml";//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)InputStream is =Test1.class.getClassLoader().getResourceAsStream(resource);//构建sqlSession的工厂SqlSessionFactorysessionFactory =new SqlSessionFactoryBuilder().build(is);//使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)//Reader reader = Resources.getResourceAsReader(resource); //构建sqlSession的工厂//SqlSessionFactorysessionFactory = new SqlSessionFactoryBuilder().build(reader);//创建能执行映射文件中sql的sqlSessionSqlSession session = sessionFactory.openSession();/*** 映射sql的标识字符串,* erMapper是userMapper.xml文件中mapper标签的namespace属性的值,* getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL*/String statement = "erMapper.getUser";//映射sql的标识字符串//执行查询返回一个唯一user对象的sqlUser user = session.selectOne(statement, 1);System.out.println(user);}}。

相关文档
最新文档