spring的mybatis-puls 配置,增删改查操作,分页
pom
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>zys_</groupId>
<artifactId>mybatis_plus1</artifactId>
<version>0.0.1-SNAPSHOT</version> <properties>
<mybatisplus.version>3.2.0</mybatisplus.version>
<spring.version>4.3.24.RELEASE</spring.version>
<mysql.version>8.0.17</mysql.version>
<!-- 注意只能使用2.0以下的版本 -->
<log4j.version>1.2.17</log4j.version>
<lombok.version>1.18.8</lombok.version>
</properties> <dependencies>
<!-- spring配置 -->
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency> <!-- 引入spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency> <!-- mysql数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency> <!-- 引入mp -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>${mybatisplus.version}</version>
</dependency> </dependencies> </project>
配置
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test_demo?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC
user=root
password=root
<!-- dao层的配置:核心是要产生 Mapper代理类对象 1.引入数据库配置信息 2.数据源配置 3.SqlSessionFactory
4.产生Mapper接口的代理类对象 -->
<!-- 1.引入数据库配置信息 -->
<context:property-placeholder
location="classpath:db.properties" system-properties-mode="FALLBACK" />
<!--2.数据源配置 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${driver}"></property>
<property name="url" value="${url}"></property>
<property name="username" value="${user}"></property>
<property name="password" value="${password}"></property>
</bean> <!-- 3.SqlSessionFactory -->
<bean id="sqlSessionFactory"
class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property> <property name="globalConfig" ref="globalConfig"></property>
<!-- 加载xxMapper.xml -->
<property name="mapperLocations">
<array>
<value>classpath:mapper/*Mapper.xml</value>
</array>
</property>
<!-- 配置分页插件 -->
<property name="plugins">
<array>
<bean class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor">
</bean>
</array>
</property>
</bean>
<!-- 声明全局配置 -->
<bean id="globalConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig">
<!-- 指定主键自动增长类型 -->
<property name="dbConfig" ref="dbConfig"></property>
</bean>
<bean id="dbConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig">
<property name="idType" value="AUTO"></property>
</bean> <!-- 4.产生Mapper接口的代理类对象 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 需要生成代理类对象的mapper接口包 -->
<property name="basePackage"
value="com.sxt.mapper"></property>
<!-- sqlSessionFactory 的name 用于为代理类中生成SqlSession -->
<property name="sqlSessionFactoryBeanName"
value="sqlSessionFactory"></property>
</bean>
创建数据库

提示:使用query5方法需要配置分页配置
/**
* mybatisplus的配置类
* @author LJH
*
*/
@Configuration
@ConditionalOnClass(value= {PaginationInterceptor.class})
public class MybatisPlusConfig { @Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
} }
实体类
import java.io.Serializable;
import java.util.Date; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString; @Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName(value="test_user")//建立User.class和数据的test_user表的关系
public class User implements Serializable{ /**
*
*/
private static final long serialVersionUID = 1L; @TableId(value="id") //代表它是主键
private Integer id;
private String name;
private String pwd;
}
创建mapper接口
public interface UserMapper extends BaseMapper<User>{
}
创建一个test类

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sxt.domain.User;
import com.sxt.mapper.UserMapper; public class TestApp { public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
UserMapper userMapper=context.getBean(UserMapper.class);
User user = new User(1,"xiao","666"); //插入
//userMapper.insert(user); //更新
//updateUser(userMapper);
//删除
//deleteUser(userMapper);
//查询
query1(userMapper);
//c查询 返回user集合
//query2(userMapper);
//map的用法为and拼接 SELECT id,name,pwd FROM test_user WHERE name = ? AND pwd = ?
//query3(userMapper);
//模糊查询
// query4(userMapper,"xia"); // query5(userMapper); System.out.println("操作成功"); } private static void query5(UserMapper userMapper) {
IPage<User> page=new Page<>(1, 5);
userMapper.selectPage(page, null);
long total = page.getTotal();
System.out.println("总条数:"+total);
List<User> list = page.getRecords();
print(list); } private static void query4(UserMapper userMapper,String name) {
// Integer count = userMapper.selectCount(null);
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
//模糊查询 判断name不为空
queryWrapper.like(name!=null, "name", name);
Integer selectCount = userMapper.selectCount(queryWrapper);
System.out.println(selectCount);
} /**
* 查询 map为and拼接条件
* @param userMapper
*/
private static void query3(UserMapper userMapper) {
Map<String, Object> columnMap=new HashMap<>();
columnMap.put("name", "xiao");
columnMap.put("pwd", "q");
List<User> list = userMapper.selectByMap(columnMap);
print(list);
} /**
* 查询 返回user集合
* @param userMapper
*/
private static void query2(UserMapper userMapper) {
Collection<Serializable> idList=new ArrayList<Serializable>();
idList.add(2);
idList.add(3);
idList.add(4);
List<User> list = userMapper.selectBatchIds(idList);
print(list);
}
/**
* 查询
* @param userMapper
*/
private static void query1(UserMapper userMapper) {
User user = userMapper.selectById(2);
System.out.println(user);
} /**
* 删除用户
* @param userMapper
*/
private static void deleteUser(UserMapper userMapper) {
// userMapper.deleteById(1);//根据主键删除
//批量删除
// Collection<Serializable> idList=new ArrayList<Serializable>();
// idList.add(2);
// idList.add(3);
// userMapper.deleteBatchIds(idList);
//批量and删除
// Map<String, Object> columnMap=new HashMap<String, Object>();
// columnMap.put("id", 6);
// columnMap.put("name", "666");
// userMapper.deleteByMap(columnMap);
//区间删除
QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper.between("id", 1, 3);
userMapper.delete(wrapper); } /**
* 修改
* @param userMapper
*/
private static void updateUser(UserMapper userMapper) {
//userMapper.updateById(new User(1, "q", "q"));//根据主键修改
UpdateWrapper<User> updateWrapper=new UpdateWrapper<>();
// updateWrapper.eq("id", 1); //sql ===where id=1
// updateWrapper.between("id", 1, 3);
// userMapper.update(new User(1, "q", "q"), updateWrapper);
} private static void print(List<User> list) {
for (User user : list) {
System.out.println(user);
}
} }
spring的mybatis-puls 配置,增删改查操作,分页的更多相关文章
- mybatis中的增删改查操作
在这一个部分,主要进行增删改查的示例书写. 增删改查可以基于xml的,也可以基于注解的方式. 一:对单条数据的查询 1.目录结构 这个使得目录更加清晰 2.User.java 这个使用以前的user表 ...
- Spring Boot 使用Mybatis注解开发增删改查
使用逆向工程是遇到的错误 错误描述 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): c ...
- 基于SSM之Mybatis接口实现增删改查(CRUD)功能
国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...
- Mybatis入门之增删改查
Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...
- 使用 Spring Boot 搭建一套增删改查(无多余代码)
前言 这是我学习 Spring Boot 的第三篇文章,终于可以见到效果了.错过的同学可以看看之前的文章 我们为什么要学习 Spring Boot Spring Boot 入门详细分析 在入门的基础上 ...
- MyBatis批量增删改查操作
前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/mahoking/article/details/43673741 ...
- Spring JdbcTemplate框架搭建及其增删改查使用指南
Spring JdbcTemplate框架搭建及其增删改查使用指南 前言: 本文指在介绍spring框架中的JdbcTemplate类的使用方法,涉及基本的Spring反转控制的使用方法和JDBC的基 ...
- MyBatis -- 对表进行增删改查(基于注解的实现)
1.MyBatis对数据库表进行增/删/改/查 前一篇使用基于XML的方式实现对数据库的增/删/改/查 以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查 1.1 首先须要定义映射sql的 ...
- Mybatis实现简单增删改查
Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...
随机推荐
- 瑞银预计小扎的十年规划可获大回报 上调Facebook股票目标价
瑞银认为马克·扎克伯格(Mark Zuckerberg)为Facebook定制的十年规划将带来丰厚回报,它已将Facebook股票的目标价由之前的155美元上调至165美元. Facebook首席执行 ...
- 关于通过Date.getTime()得到1970年01月1日0点零分问题验证
public static String getTimestamp_1970() throws Exception { java.text.SimpleDateFormat formater = ...
- [Docker]compose一键部署nginx
Docker-compose部署nginx 创建配置文件 mkdir -p /usr/local/docker/nginx cat > /usr/local/docker/nginx/docke ...
- CodeForces - 1058D D. Vasya and Triangle
D. Vasya and Triangle time limit per test1 second memory limit per test256 megabytes inputstandard i ...
- 题解 AT4867 【[ABC155D] Pairs】
题目 两次二分 首先对ans进行二分,在\([-10^{18},10^{18}]\)之间 考虑怎么check 对于每个ans,枚举每个\(a_i\),二分查找有几个\(a_j\),使得\(a_i\ti ...
- unittest(生成测试报告)
1.先导入HTMLTestRunner模块 见上篇HTMLTestRunner模块生成文档 2.实例如下 (1)单用例文件执行且生成报告 import unittest import HTMLTest ...
- MongoDB 部署以及操作
目录 1.MongoDB简介 2.MongoDB优势 3.MongoDB安装 3.MongoDB用户管理 3.1.Mongodb创建超级管理员 3.2.MongoDB创建读写用户 3.3.Moongo ...
- 聚合类型与POD类型
Lippman在<深度探索C++对象模型>的前言中写道: I have heard a number of people over the years voice opinions sim ...
- LeetCode--LinkedList--206. Reverse Linked List(Easy)
206. Reverse Linked List(Easy) 题目地址https://leetcode.com/problems/reverse-linked-list/ Reverse a sing ...
- Coursera课程笔记----计算导论与C语言基础----Week 1
计算机的基本原理(Week 1) 第一次数学危机 公元前500年,毕达哥拉斯学派,他们相信数是万物的本源:一切数均可表示成整数或者整数之比 然而毕达哥拉斯证明了勾股定理,某些直角三角形的三边比不能用整 ...