Mybatis入门程序实验
mybastis boolean参数

MyBatis是一个持久层框架,它为Java应用程序与关系型数据库的交互提供了灵活且高效的方式。
其中一个非常重要的功能是支持boolean参数的处理。
在本文中,我们将探讨如何在MyBatis中使用boolean参数,并介绍一些相关的技巧和最佳实践。
1. MyBatis入门1.1 什么是MyBatis?MyBatis是一个开源的Java持久层框架,它提供了一种将Java对象映射到关系型数据库的方式。
它与传统ORM框架的不同之处在于,它使用了一种称为“SQL映射” 的方式来定义对象与数据库表之间的映射关系。
1.2 MyBatis的核心组件MyBatis由以下几个核心组件构成:•SqlSessionFactory:用于创建SqlSession对象的工厂。
•SqlSession:用于执行数据库操作的接口。
•Mapper:包含了执行数据库操作的方法。
1.3 使用MyBatis的好处使用MyBatis有以下几个好处:•简化了数据库操作的编写,提高了开发效率。
•提供了灵活的动态SQL语句支持,可以根据不同的条件生成不同的SQL语句。
•对数据库访问进行了细粒度的控制,可以更好地优化数据库性能。
2. MyBatis中的boolean参数在MyBatis中,boolean参数与其他基本类型参数一样,可以直接传递给SQL语句。
MyBatis会根据参数的值生成对应的查询条件,并将查询结果映射为Java对象。
2.1 使用boolean参数的示例假设我们有一个User表,其中包含了一个字段isActive,表示用户的状态是否激活。
我们可以使用一个boolean参数来查询所有激活状态的用户。
2.1.1 定义Mapper首先,我们需要在Mapper接口中定义一个查询方法:public interface UserMapper {List<User> findActiveUsers(boolean isActive);}2.1.2 编写SQL语句然后,我们在XML配置文件中编写SQL语句:<select id="findActiveUsers" resultType="User">SELECT * FROM User WHERE isActive = #{isActive}</select>2.1.3 执行查询最后,在Java代码中执行查询:SqlSession sqlSession = sqlSessionFactory.openSession();UserMapper userMapper = sqlSession.getMapper(UserMapper.class);List<User> activeUsers = userMapper.findActiveUsers(true);2.2 注意事项在使用boolean参数时,需要注意以下几点:•在SQL语句中使用#{}占位符来引用boolean参数,而不是使用${}占位符。
mybatis where用法

mybatis where用法MyBatis是一种Java持久化框架,主要用于数据库操作。
其中一个常用的功能就是通过where语句来实现数据查询以及数据过滤。
本文将详细介绍MyBatis中where语句的用法,包括基本的查询语法、嵌套查询、复杂查询和动态查询等。
一、基本查询语法在MyBatis中进行数据查询,通常需要使用select标签和where标签。
select标签用于指定查询的列名,而where标签用于指定查询的条件。
示例代码如下:```<select id="getUserById" parameterType="int" resultType="User">SELECT * from user WHERE id=#{id}</select>```在上面的代码中,getUserById是该查询操作的唯一标识符。
parameterType指定该查询的参数类型,resultType指定该查询结果的返回类型。
SELECT语句用于查询所有符合条件的行。
如果你查询的列比较多,可以使用如下示例代码中的select标签来指定查询的列名:```<select id="getUserById" parameterType="int" resultType="User">SELECT id, username, password from user WHERE id=#{id}</select>```二、嵌套查询当需要进行比较复杂的数据查询时,可以使用MyBatis的嵌套查询功能来查询数据。
嵌套查询是将一个查询语句作为子查询,嵌套到另一个查询语句中的过程,以实现更复杂的数据查询。
示例代码如下:```<select id="getUserByRoleId" parameterType="int" resultType="User">SELECT * from user WHERE id in (SELECT userId from user_role WHEREroleId=#{roleId})</select>```在上面的代码中,其中的子查询用于查询user_role表中符合roleId要求的userId,再以此查询结果为条件,查询user表中的相应记录。
Mybatis-3.3.0官方文档-中文.pdf

来获取。
Copyright © 2010–2015 . All rights reserved.XML 配置文件(configuration XML)中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务范围和控制方式的事务管理器(TransactionManager)。
XML 配置文件的详细内容后面再探讨,这里先给出一个简单的示例:当然,还有很多可以在XML 文件中进行配置,上面的示例指出的则是最关键的部分。
要注意 XML 头部的声明,用来验证 XML 文档正确性。
environment 元素体中包含了事务管理和连接池的配置。
mappers 元素则是包含一组 mapper 映射器(这些 mapper 的XML 文件包含了 SQL 代码和映射定义信息)。
不使用 XML 构建 SqlSessionFactory如果你更愿意直接从 Java 程序而不是 XML 文件中创建 configuration,或者创建你自己的 configuration 构建器,MyBatis 也提供了完整的配置类,提供所有和 XML 文件相同功能的配置项。
注意该例中,configuration 添加了一个映射器类(mapper class)。
映射器类是 Java 类,它们包含 SQL 映射语句的注解从而避免了 XML 文件的依赖。
不过,由于 Java 注解的一些限制加之某些 MyBatis 映射的复杂性,XML 映射对于大多数高级映射(比如:嵌套Join 映射)来说仍然是必须的。
有鉴于此,如果存在一个对等的 XML 配置文件的话,MyBatis 会自动查找并加载它(这种情况下,BlogMapper.xml 将会基于类路径和 BlogMapper.class 的类名被加载进来)。
具体细节稍后讨论。
从 SqlSessionFactory 中获取 SqlSession既然有了 SqlSessionFactory ,顾名思义,我们就可以从中获得 SqlSession 的实例了。
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上下文环境的样板和冗余代码。
mybatis plus generator 实例

mybatis plus generator 实例MyBatis-Plus 是一个强大的MyBatis 扩展插件,它提供了许多实用的功能,如简化CRUD 操作、条件构造器等。
而MyBatis-Plus Generator 是MyBatis-Plus 的代码生成器插件,它可以快速生成MyBatis-Plus 的实体类、Mapper 接口以及XML 映射文件。
下面是一个简单的MyBatis-Plus Generator 的使用示例:1.添加依赖首先,你需要在你的项目中添加MyBatis-Plus 和MyBatis-Plus Generator 的依赖。
例如,在Maven 项目中,你可以在pom.xml文件中添加以下依赖:xml<dependencies><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>最新版本</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>最新版本</version></dependency></dependencies>2.配置MyBatis-Plus Generator在application.yml或application.properties文件中配置MyBatis-Plus Generator的相关属性,例如数据源、生成目录等。
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调用存储过程获取返回值

mybatis调用存储过程获取返回值一、前言MyBatis是一款开源的持久层框架,它支持自定义SQL、存储过程和高级映射等功能。
在实际项目中,我们经常需要调用存储过程来完成一些特殊的业务需求。
本文将介绍如何使用MyBatis调用存储过程并获取返回值。
二、准备工作1. 安装MyBatis和数据库驱动程序首先,我们需要在项目中引入MyBatis和相应的数据库驱动程序。
可以通过Maven或手动下载jar包的方式进行引入。
2. 创建数据库和存储过程为了演示如何调用存储过程,我们需要在数据库中创建一个简单的存储过程。
以下是一个示例:```sqlCREATE PROCEDURE `get_user_count`(OUT `count` INT)BEGINSELECT COUNT(*) INTO count FROM user;END```该存储过程接受一个OUT参数count,返回user表中记录数。
三、配置MyBatis1. 配置数据源在mybatis-config.xml文件中配置数据源信息。
这里以MySQL为例:```xml<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url"value="jdbc:mysql://localhost:3306/test"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments></configuration>```2. 配置映射文件在Mapper映射文件中配置调用存储过程的SQL语句。
mybatis调用存储过程带inout参数

mybatis调用存储过程带inout参数MyBatis是一个开源的Java持久化框架,它提供了很多强大的特性,其中包括调用存储过程并传递in和out参数。
在本文中,我们将探讨如何在MyBatis中调用存储过程以及如何处理in和out参数。
##1.配置存储过程调用首先,要在MyBatis中使用存储过程,我们需要在配置文件中进行相应的配置。
假设我们已经有一个存储过程`get_user_info`,它接收一个输入参数`user_id`,并返回一个输出参数`user_info`。
这个存储过程的定义可能如下所示:```CREATE PROCEDURE get_user_infoIN user_id INT,OUT user_info VARCHAR(255)BEGINSELECT info INTO user_info FROM users WHERE id = user_id;END```现在,我们需要在MyBatis的配置文件中添加相应的配置。
假设我们的配置文件为`mybatis-config.xml`,那么我们应该在这个文件中添加以下内容:```xml<configuration>...<mapper resource="UserMapper.xml"/>...</configuration>```## 2. 创建Mapper接口接下来,我们需要创建一个Mapper接口,它将定义我们要执行的数据库操作。
在我们的例子中,我们将创建一个名为`UserMapper`的接口,并在其中添加一个方法`getUserInfo`来调用存储过程。
```javapublic interface UserMapper```##3.创建XML映射文件接下来,我们需要创建一个XML映射文件来指定如何执行存储过程。
在我们的例子中,我们将创建一个名为`UserMapper.xml`的文件,并在其中定义我们的存储过程调用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广州学院
Java EE 实验报告
专业班级计科181 实验日期2021.5.10 姓名张三学号201814252 实验名称Mybatis入门程序指导教师张三国
(报告内容包括实验目的、实验设备及器材、实验步骤、程序框图、代码、运行结果、实验小结等)
一、实验目的
1.了解mybatis的工作原理;
2. 掌握Mybatis环境搭建;
3.掌握基于Mybatis框架实现数据查询。
二、实验要求
根据ID查询信息:使用Navicat创建数据库和表;搭建Mybatis环境;创建POJO;创建mapper文件;Mybatis核心对象的使用;log4j调试和测试方法。
三、实验内容
1.在MySQL数据库中,参加一个mybatisde 数据库,并且创建一个t_customer 表,同事插入几条数据。
mysql> create database mybatis;
mysql> create table t_customer (
-> id int(32) primary key auto_increment,
-> username varchar(50),
-> jobs varchar(50),
-> phone varchar(16));
mysql> insert into t_customer values ('1','joy','doctor','122224233'); Query OK, 1 row affected
mysql> insert into t_customer values
('2','jack','teacher','122224233');
Query OK, 1 row affected
mysql> insert into t_customer values ('3','tom','worker','1353524233'); Query OK, 1 row affected
2、在src目录下,创建一个com.itheima.po包,在该包下创建持久化类Customer,并在类中声明id、username、jobs、phone属性。
public class Customer {
private Integer id; // 主键id
private String username; // 客户名称
private String jobs; // 职业
private String phone; // 电话
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) { ername = username;
}
public String getJobs() {
return jobs;
}
public void setJobs(String jobs) {
this.jobs = jobs;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return"Customer [id=" + id + ", username=" + username +
", jobs=" + jobs + ", phone=" + phone + "]";
}
}
3、在src目录下,创建MyBatis的核心配置文件mybatis-config.xml,编辑后如图。
4、在src目录下,创建一个com.itheima.test包,在该包下创建测试类MybatisTest,在类中编写测试方法findCustomerByIdTest()。
测试运行结果如图4-1所示。
图4-1 ID查询测试结果
四.实验小结
通过此次实验,我已基本了解mybatis的工作原理,并且初步掌握Mybatis 环境搭建。