扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
为什么要学习它呢?
创新互联公司是专业的雁山网站建设公司,雁山接单;提供做网站、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行雁山网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
答:MyBatisPlus可以节省我们大量工作时间,所有的CRUD代码它都可以自动化完成!
优点:
1. 易于上手和掌握。
2. sql写在xml里,便于统一管理和优化。
3. 解除sql与程序代码的耦合。
4. 提供映射标签,支持对象与数据库的orm字段关系映射
5. 提供对象关系映射标签,支持对象关系组建维护
6. 提供xml标签,支持编写动态sql。
MyBatis Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
特性:
无侵入 :只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。
损耗小 :启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作 :内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 支持 Lambda 形式调用 :通过 Lambda 表达式,方便地编写各类查询条件,无需再担心字段写错。
支持组件自动生成 :支持多达 4 种主键策略(内含分布式唯一 ID 生成器 Sequence),可自由配置,完美解决主键问题。
支持 ActiveRecord 模式 :支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作。
支持自定义全局通用操作 :支持全局通用方法注入( Write once, use anywhere )。
内置代码生成器 :采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用 内置分页插件 :基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List查询。
分页插件支持多种数据库 :支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库。
内置性能分析插件 :可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询。
内置全局拦截插件 :提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作。
1.1 、引入mybatis-plus相关maven依赖
引入mybatis-plus在spring boot中的场景启动器
ps:切记不可再在pom.xml文件中引入mybatis与mybatis-spring的maven依赖,这一点,mybatis-plus的官方文档中已经说明的很清楚了.
1.2、创建数据表
(1)SQL语句
(2) 数据表结构
1.3、 创建java bean
根据数据表新建相关实体类
1 package com.example.demo.pojo
1.4、 配置application.proprties
数据源使用druid
ps:在进行crud实验之前,简单对mybatis与mybatis-plus做一个简单的对比
2.1、mybatis与mybatis-plus实现方式对比
(1)提出问题: 假设我们已存在一张 tbl_employee 表,且已有对应的实体类 Employee,实现 tbl_employee 表的 CRUD操作我们需要做什么呢?
(2)实现方式: 基于 Mybatis 需要编写 EmployeeMapper 接口,并手动编写 CRUD 方法 提供 EmployeeMapper.xml 映射文件,并手动编写每个方法对应的 SQL 语句. 基于 Mybatis-plus 只需要创建 EmployeeMapper 接口, 并继承BaseMapper 接口.这就是使用 mybatis-plus 需要完成的所有操作,甚至不需要创建 SQL 映射文件。
2.2、BaseMapper接口介绍
(1)如何理解核心接口BaseMapper?
在使用Mybatis-Plus时,核心操作类是BaseMapper接口,其最终也是利用的Mybatis接口编程的实现机制,其默认提供了一系列的增删改查的基础方法,并且开发人员对于这些基础操作不需要写SQL进行处理操作(Mybatis提供的机制就是需要开发人员在mapper.xml中提供sql语句),那样我们可以猜测肯定是Mybatis-Plus完成了BaseMapper接口提供的方法的SQL语句的生成操作。
(2)BaseMapper接口为我们定义了哪些方法?
BaseMapper接口源码:
(3) mybatis-plus中常用的注解 1
由于我们的数据表名于实体类的类名不一致,并且实体类于数据表还存在字段名不对应的情况,因此我们需要引入mybatis-plus的注解.
编写EmployeeMapper接口继承BaseMapper接口
准备考试环境:
(1)插入
(2)修改
控制台打印出的sql语句
如果我们不设置实体类的email与gender属性,结果是怎样的呢?
控制台sql语句:
显然,mybatis-plus为我们做了非空判断,空值的话,默认不更新对应的字段.想一想,这是不是类似于mybatis中的动态sql呢?
这种处理效果又会带来什么好处呢?
(3)查询
selectById方法
selectBatchIds方法
ps:发现该方法底层使用的竟然是sql的in关键字
selectByMap方法
(4)删除
3、不得不提的条件构造器---Wrapper
3.1.wrapper及其子类介绍
(1)Wrapper :条件构造抽象类,最顶端父类,抽象类中提供3个方法以及其他方法.
JDBC连接数据库简单笔记摘要(sql server 2000需要安装sp4打开1433端口):
定义需要的对象
PreparedStatement ps=null;
Connection conn=null;
ResultSet rs=null;
1.加载驱动
(作用是把需要的驱动程序加入内存)
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
2.得到连接
(指定要连接的数据库,登录的用户名和密码)
(选择Windows NT验证,不需要用户名和密码)
//conn=DriverMannager.getConnection("jdbc:odbc:数据库名"[,"用户名","密码"]);
conn=DriverMannager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=数据库名","用户名","密码")
3.创建Statement或PreparedStatement[区别]
(Statement主要用于发送SQL语句)
ps=conn.prepareStatement("select name,sal from tablename");
4.执行
(CRUD,创建、备份、还原、删除数据库)
//executeUpdate可以执行CUD操作(添加、删除、修改)
rs=ps.executQuery();
//循环取出
while(rs.next())
{
String name=rs.getString("name");
float sal=rs.getFloat("sal");
System.out.println(name+sal+"\n");
}
5.关闭连接
(一定要记得关闭连接,关闭顺序:先建后闭,后建先闭)
if(ct!=null){
ct.colose();
ct=null;
}
1--SQLSERVER如何添加约束和删除约束add constraint 2 3--添加unique约束 4USE pratice 5alterTABLE dbo.bulkinserttest addconstraint ck_bulkinsert UNIQUE(id) --添加约束的列名 6 7 8--删除约束 9--先查出约束名10EXEC sys.sp_helpconstraint @objname= N'bulkinserttest'--表名111213ALTERTABLE dbo.bulkinserttest DROPCONSTRAINT ck_bulkinsert 1415--添加check约束16alterTABLE dbo.bulkinserttest withnocheck17addconstraint ck_bulkinsert check(id between1and1000)
请参考
里面有数据库的知识
你可以看下 学习笔记部分
当然你可以查阅MSDN
把一场完美的赛车比赛看作是一个好程序,java是赛车,jdk是发动机,tomcat是跑道。sqlserver没想出好的比喻、
把一堂课比作一个java程序,老师是java负责讲课(一步一步程序执行),老师的心脏是jdk(java代码基于jdk才能运行),教室、学校是tomcat(web容器,老师换一个教室、换一个学校一样讲课、能运行),sqlserver比作是老师的备课笔记, 心脏正常跳动让老师能在教室中把备课笔记里的内容将给学生听。 意思就是jdk(大脑)确保java(老师)正常运行,并读取sqlserver(备课笔记)内的内容,在tomcat(教室)里展示给用户(学生)看。 可能比喻的不恰当。。凑合看吧。。
个人荣誉要根据自己实际所获得的荣誉情况,按时间顺序填写,首先写获得时间,然后写获得荣誉的内容。
如2010年11月,获山西省首届师生规范汉字书写大赛二等奖。荣誉证书是指记录获得的嘉奖荣誉、作为奖励的证明证件。荣誉证书的外形各种各样,由使用单位自行决定采用哪种,且不同的单位使用的格式不同。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流