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 ...
随机推荐
- CSS开发技巧(一):button样式设置
button样式需要注意的有几点: 1.建议有一个最小宽度,以免在文字很少时使得按钮过于窄,宽高不协调: 2.建议有一个padding,以免内部文本显得过于拥挤: 2.hover时需要有颜色变化,以告 ...
- 最小生成树之prime算法
public class Prime { public static void main(String[] args) { //路径矩阵 int arcs[][] = {{-1,6,1,5,-1,-1 ...
- 图论--差分约束--HDU\HDOJ 4109 Instrction Arrangement
Problem Description Ali has taken the Computer Organization and Architecture course this term. He le ...
- 一个简单的wed服务器SHTTPD(4)————SHTTPD支持CGI的实现
//start from the very beginning,and to create greatness //@author: Chuangwei Lin //@E-mail:979951191 ...
- 第 4 篇:用类视图实现首页 API
作者:HelloGitHub-追梦人物 文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 django-rest-framework 类视图拓展自 django 的类视图,只 ...
- Educational Codeforces Round 83 E. Array Shrinking
E. Array Shrinking 题目大意: 给你一个大小是n的序列,相邻的序列如果相等,则可以合并,合并之后的值等于原来的值加1. 求:合并之后最小的序列的和. 题解: 这个数据范围和这个相邻的 ...
- spring学习笔记(八)webSocket
知识储备 什么是stomp? 我们可以类比TCP与Http协议,我们知道Http协议是基于TCP协议的,Http协议解决了 web 浏览器发起请求以及 web 服务器响应请求的细节,我们在编码时候只要 ...
- sshd: no hostkeys available — exiting
在开启SSHD服务时报错.sshd re-exec requires execution with an absolute path用绝对路径启动,也报错如下:Could not load host ...
- 简述SpringCloud框架
1.什么是SpringCloud? SpringCloud是一系列框架的有序集合,它利用SpringBoot的开发便利性简化了分布式系统的开发,比如服务发现.服务网关.服务路由.链路追踪等.Sprin ...
- SpringBoot2.0 @Cacheable 添加超时策略
SpringBoot2.0 @Cacheable 添加超时策略 逻辑比较简单,废话不多说,直接进入正题: 需求:SpringBoot 利用注解使缓存支持过期时间 (同@Cacheable @Cache ...