做网站运营有前景么,优化关键词排名seo软件,网络服务大厅,好兄弟资源网在线看片简介
Mybatis-Plus#xff08;简称 MP#xff09;是一个 MyBatis (opens new window)的增强工具#xff0c;在 MyBatis 的基础上只做增强不做改变#xff0c;为简化开发、提高效率而生。
简言之就是对单表的增删改查有了很好的封装。基本不用再单独写sql语句了。目前此类…简介
Mybatis-Plus简称 MP是一个 MyBatis (opens new window)的增强工具在 MyBatis 的基础上只做增强不做改变为简化开发、提高效率而生。
简言之就是对单表的增删改查有了很好的封装。基本不用再单独写sql语句了。目前此类基于mybats的增强工具有很多但是目前MP可以算是国内最主流的了。而且它的功能也是最全的。
github地址https://github.com/baomidou/mybatis-plus
gitee地址https://gitee.com/baomidou/mybatis-plus
MP初体验
这里我们创建一个测试项目MPDemo来初步体验下如何使用MP。省略创建项目步骤和数据库表创建过程。
1.测试表结构【user】 2.springboot三板斧之引入依赖
dependencies!-- springboot --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- lombok --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!-- MP最新版本 --dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.2/version/dependency!-- mysql 驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependency
/dependencies3.springboot三板斧之添加配置
# 数据源配置
spring:datasource:type: com.zaxxer.hikari.HikariDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://yourip:3306/yourdb?useUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLtrueserverTimezoneGMT%2B8autoReconnecttruerewriteBatchedStatementstrueusername: rootpassword: 123456# Mybatis Plus配置
mybatis-plus:configuration:#打印日志log-impl: org.apache.ibatis.logging.stdout.StdOutImpl#下划线转驼峰map-underscore-to-camel-case: true4.创建user表的实体映射类
Data
TableName(user)
public class User implements Serializable {/*** 自增id*/private Long id;/*** 姓名*/private String name;/*** 年龄*/private Integer age;/*** 邮件*/private String email;/*** 地址*/private String address;/*** 创建日期*/private Date createtime;/*** 更新日期*/private Date updatetime;}5.创建user表的mapper类
//这里仅仅集成MP的BaseMapper即可
public interface UserMapper extends BaseMapperUser {}6.springboot三板斧之启动类注释
SpringBootApplication
MapperScan(com.mayuanfei.mpdemo.dao.mapper)
public class MpDemoApplication {public static void main(String[] args) {SpringApplication.run(MpDemoApplication.class, args);}
}这里通过MapperScan来指定扫描所有mapper的基础包路径。 其实如果Mapper类中如果有Mapper注解的话其实在启动类上是不需要增加MapperScan的。 7.添加测试类
SpringBootTest
public class MapperTest {Autowiredprivate UserMapper userMapper;Testpublic void testInsert() {User user new User();user.setName(张三);user.setAge(2);user.setEmail(zhangsan163.com);user.setAddress(北京朝阳);int result this.userMapper.insert(user);System.out.println(打印插入结果 result);System.out.println(打印插入后user的id值 user.getId());}
}输出结果 Preparing: INSERT INTO user ( id, name, age, email, address ) VALUES ( ?, ?, ?, ?, ? )Parameters: 1546670400971255809(Long), 张三(String), 2(Integer), zhangsan163.com(String), 北京朝阳(String)Updates: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession7397c6]
打印插入结果1
打印插入后user的id值1546670400971255809可能遇到的问题
1.Autowired标识红色 原因是我们通过在启动类添加注释MapperScan(“com.mayuanfei.mpdemo.dao.mapper”)来扫描所有的mapper类的
但是idea没有发现有具体的注释标识被spring容器所管理所以这里给出警告。
解决方式有两种
启动类注释不变把Autowired修改为Resource注解。启动类去掉MapperScan(“com.mayuanfei.mpdemo.dao.mapper”)在UserMaper类上加上Mapper注解。
2.user表中的id值不符合我们的预期
例子中我们打印出来的user的id值为1546670400971255809。本来想着应该是1。这是因为MP默认生成id的算法是通过雪花算法来生成的。如果要按照数据库中的自增来生成id需要在实体类增加一个注解