-
如圖所示的內容筆記
查看全部 -
如圖所示的內容筆記
查看全部 -
如圖所示的內容筆記
查看全部 -
如圖所示的內容筆記
查看全部 -
如圖所示的內容筆記
查看全部 -
開發環境:
查看全部 -
JPA:java持久層API,可以理解為一種規范,Hibernate就是其具體一個實現。(目前比較常用的是SpringDataJpa,它是Spring提供的一套簡化開發的框架,按照約定好的方法命名規則,編寫dao層接口,就可以在不編寫實現情況下執行數據庫操作,還提供了除CRUD以外的功能,例如分頁、排序、復雜查詢等等,SpringDataJpa可以理解為對JPA的再次封裝,底層仍舊是Hibernate)
Mybatis優勢
1、SQL語句可以自由控制,更靈活、性能較高。
2、SQL與代碼分離,易于閱讀和維護。
3、提供XML標簽,支持編寫動態SQL語句。
JPA優勢
JPA移植性比較好(Hibernate方言)
提供了很多CRUD方法、開發效率高(不用編寫sql語句)
對象化程度更高(面向對象開發思想)
Mybatis劣勢
簡單CRUD操作需要編寫SQL語句(單表仍需要編寫Mapper接口方法和xml的sql)
XML中有大量sql需維護
mybatis自身功能有限
查看全部 -
Mybatis-plus簡介:Mybatis增強工具,只做增強,不作改變,簡化開發,提高效率。
1、Crab:Mybatisplus3.0教學版。(MP核心程序員作品)
2、Crab:WEB極速開發框架。(MP項目負責人作品)
github項目地址:https://github.com/baomidou/mybatis-plus
碼云項目地址:https://gitee.com/baomidou/mybatis-plus
Mybatis-plus特點:
1、無侵入(只做增強,不作改變)、損耗?。ǔ绦騿訒r,進行注入增強的功能)、強大的CRUD操作(通用Service、通用Mapper,通過少量配置可實現單表操作,類似Hibernate)、支持條件構造器,支持各類需求。
2、支持Lambda形式調用、提供了Lambda條件構造器,支持多種數據庫(主流的Mysql、Oracle等)
3、支持主鍵生成策略、支持ActiveRecord模式(實體類只需要繼承Model,然后通過實體類完成CRUD操作)。
4、支持全局自定義操作(支持全局通用方法注入)、支持關鍵詞自動?轉義(數據庫關鍵詞自動轉義)
5、內置代碼生成器(實體、Mapper接口、Mapper文件、Service、Controller)、內置分頁插件(基于Mybatis的物理分頁)、內置性能分析插件
6、內置全局攔截插件(提供了delete、update智能分析阻斷,也可以自定義攔截規則,以防誤操作)、內置sql注入剝離器(有效防止注入攻擊)
查看全部 -
selectMaps
查看全部 -
1、用transient給屬性做聲明,該方式無序列化
eg:private transient int flag;
2、用static給屬性做聲明,默認不給靜態變量生成get/set方法,所以這時需要手動寫get/set方法,全類唯一一個的屬性。
3、@TableField(exist=false)
給屬性添加該注解,表示該字段在數據庫中不存在。默認exist=true。
該種方式可以生成get/set方法,也不是唯一的屬性。
查看全部 -
1、@TableName("表全名")
指定實體類對應的表名
2、@TableId
mp會按照雪花自增填充主鍵,默認實體類的主鍵為"id",當沒有id時,它就不知道誰是主鍵,這時可以添加該注解
3、@TableField("字段名")
當實體類中的屬性名和字段名對不上時,用該注解指定數據庫中的字段名
查看全部 -
一、建庫建表
#創建數據庫
create
?table
?user
?(? id?
BIGINT
(20)?
PRIMARY
?key
?not
?null
?comment?
'主鍵'
,
name
?varchar
(30)?
default
?null
?comment?
'姓名'
,
age?
int
(11)?
default
?null
?comment?
'年齡'
,
email?
varchar
(50)?
default
?null
?comment?
'郵箱'
,??
manager_id?
BIGINT
(20)?
default
?null
?comment?
'直屬上級id'
,??
create_time?DATETIME?
default
?null
?comment?
'創建時間'
,?
CONSTRAINT
?manager_fk?
foreign
?key
?(manager_id)?????????
REFERENCES
?user
?(id)) ENGINE=INNODB?CHARSET=UTF8;
?#數據初始化
INSERT
?INTO
?user
?(id,
name
,age,email,manager_id,create_time)
VALUES
?(1087982257332887553,?
'大boss'
,?40,?
'[email protected]'
,?
NULL
,?
'2019-01-11?14:20:20'
),???????????
(1088248166370832385,
'王天風'
,25,
'[email protected]'
,?1087982257332887553,
'2019-02-05?11:12:22'
),???????????
(1088250446457389058,
'李藝偉'
,28,
'[email protected]'
,?1088248166370832385,
'2019-02-14?08:31:16'
),???????????
(1094590409767661570,
'張雨琪'
,31,
'[email protected]'
,?1088248166370832385,
'2019-01-14?09:15:15'
),???????????
(1094592041087729666,
'劉紅雨'
,32,
'[email protected]'
,?1088248166370832385,
'2019-01-14?09:48:16'
);
二、引入依賴
1、建立maven項目(勾上create a simple project )
2、在pom中引入依賴
<
parent
>
????
<
groupId
>org.springframework.boot</
groupId
>
????
<
artifactId
>spring-boot-starter-parent</
artifactId
>
????
<
version
>2.1.3.RELEASE</
version
>
</
parent
>
<
dependencies
>
????
<
dependency
>
????????
<
groupId
>org.springframework.boot</
groupId
>
????????
<
artifactId
>spring-boot-starter</
artifactId
>
????
</
dependency
>
????
<
dependency
>
????????
<
groupId
>org.springframework.boot</
groupId
>
????????
<
artifactId
>spring-boot-test</
artifactId
>
????????
<
scope
>test</
scope
>
????
</
dependency
>
????
<!--?Lombok?-->
????
<
dependency
>
????????
<
groupId
>org.projectlombok</
groupId
>
????????
<
artifactId
>lombok</
artifactId
>
????????
<
optional
>true</
optional
>
????
</
dependency
>
????
<!--?Mybatis-Plus啟動器?-->
????
<
dependency
>
????????
<
groupId
>com.baomidou</
groupId
>
????????
<
artifactId
>mybatis-plus-boot-starter</
artifactId
>
????????
<
version
>3.1.0</
version
>
????
</
dependency
>
????
<!--?Mysql?JDBC?不用指定version,依賴的spring?jdbc已指定?-->
????
<
dependency
>
????????
<
groupId
>mysql</
groupId
>
????????
<
artifactId
>mysql-connector-java</
artifactId
>
????
</
dependency
>
</
dependencies
>
項目上有報錯:項目右鍵--maven--update project即可
三、配置
?resource包下創建file(名字為application.yml)
spring:
??
datasource:
???
driver-class-name:com.mysql.cj.jdbc.Driver
???
url:jdbc:mysql://localhost:3306/mp?useSSL=false&serverTimezone=GMT%2B8
???
username:root
???
password:root
四、編碼
1、建啟動類
java包下創建com.mp包-->mp包下創建Java類(加上main方法)
2、加注解
類上:@SpringBootApplication意思為spring boot的啟動類
3、main方法中編寫
SpringApplication.run(啟動類.class,args);
4、創建實體類
在mp包下建立entity包-->創建User的Java類
依次編寫數據庫中的字段-->在類上添加@Data注解,就可自動生成get()、set()方法
5、com.mp.dao-->UserMapper.java
該mapper類要繼承MP的BaseMapper類,<User>泛型。
在啟動類上添加@MapperScan("com.mp.dao"),指定需要掃描的Mapper包
五、測試
test-->com.mp-->SimpleTest.java
該類添加@SpringBootTest注解和@RunWith(SpringRunner.class)
添加@Aotuwired注解,注入userMapper類
寫一個select()方法,添加@Test注解:
List<User> list = userMapper.selectList(null);
list.forEach(System.out::println);//迭代輸出
查看全部 -
1、在maven官網下載lombox.jar-->project lombox.jar
2、安裝路徑選擇到eclipse.exe/myeclipse.exe
3、裝完后,在eclipse/myeclipse文件根目錄中生成lombox.jar文件,同時在eclipse/license.txt(myeclipse/myeclipse.ini)文件中會生成lombox.jar的路徑(如果存放路徑帶有中文,則需要修改路徑和lombox文件的位置)
查看全部 -
transient, static, @TableField(exist = false)
查看全部 -
默認情況下實體名和表名一致,如果不一致可以在實體類中使用注解指定表名
默認情況下主鍵使用id標識,如果不一致可以在實體類中使用注解指定
查看全部
舉報