激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - mybatis逆向工程與分頁在springboot中的應用及遇到坑

mybatis逆向工程與分頁在springboot中的應用及遇到坑

2021-05-30 14:55程序員luis Java教程

最近在項目中應用到springboot與mybatis,在進行整合過程中遇到一些坑,在此將其整理出來,分享到腳本之家平臺供大家參考下

最近在項目中應用到springbootmybatis,在進行整合過程中遇到一些坑,在此將其整理出來,便于以后查閱與復習。

 項目運行環境為:eclispe+jdk1.8+maven

搭建spring boot環境

首先建立maven project,在生成的pom文件中加入依賴,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<parent>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-parent</artifactid>
 <version>1.5.2.release</version>
 <relativepath/> <!-- lookup parent from repository -->
</parent>
<properties>
 <project.build.sourceencoding>utf-8</project.build.sourceencoding>
 <project.reporting.outputencoding>utf-8</project.reporting.outputencoding>
 <java.version>1.8</java.version>
</properties>
<dependencies>
 <dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-web</artifactid>
 </dependency>
 <dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-test</artifactid>
 </dependency>
 <dependency>
  <groupid>org.mybatis.spring.boot</groupid>
  <artifactid>mybatis-spring-boot-starter</artifactid>
  <version>1.3.0</version>
 </dependency>
 <dependency>
  <groupid>mysql</groupid>
  <artifactid>mysql-connector-java</artifactid>
  <scope>runtime</scope>
 </dependency>
 <!--分頁插件-->
 <dependency>
   <groupid>com.github.pagehelper</groupid>
   <artifactid>pagehelper-spring-boot-starter</artifactid>
   <version>1.2.1</version>
 </dependency>
 <!-- alibaba的druid數據庫連接池 -->
 <dependency>
  <groupid>com.alibaba</groupid>
  <artifactid>druid</artifactid>
  <version>1.0.29</version>
 </dependency>
</dependencies>
<build>
 <plugins>
  <plugin>
   <groupid>org.springframework.boot</groupid>
   <artifactid>spring-boot-maven-plugin</artifactid>
  </plugin>
  <!-- mybatis generator 自動生成代碼插件 -->
  <plugin>
   <groupid>org.mybatis.generator</groupid>
   <artifactid>mybatis-generator-maven-plugin</artifactid>
   <version>1.3.2</version>
   <configuration>
    <configurationfile>${basedir}/src/main/resources/generator/generatorconfig.xml</configurationfile>
    <overwrite>true</overwrite>
    <verbose>true</verbose>
   </configuration>
  </plugin>
 </plugins>
</build>

配置好依賴后進行maven install,此時注意的坑:

 坑一:啟動maven install報錯:

[error] failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.2.release:repackage (default) on project springboot-mybatis: execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.5.2.release:repackage failed: unable to find main class -> [help 1]
[error]
[error] to see the full stack trace of the errors, re-run maven with the -e switch.
[error] re-run maven using the -x switch to enable full debug logging.
[error]
[error] for more information about the errors and possible solutions, please read the following articles:
[error] [help 1] http://cwiki.apache.org/confluence/display/maven/pluginexecutionexception

報錯原因是沒有啟動類

 解決方法:編寫啟動類main.java正常運行!

?
1
2
3
4
5
6
@springbootapplication
public class main {
 public static void main(string[] args) {
  springapplication.run(main.class, args);
 }
}

坑二:啟動maven install報錯:

[error] failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project springboot-mybatis: compilation failure
[error] no compiler is provided in this environment. perhaps you are running on a jre rather than a jdk?
[error] -> [help 1]
[error]
[error] to see the full stack trace of the errors, re-run maven with the -e switch.
[error] re-run maven using the -x switch to enable full debug logging.
[error]
[error] for more information about the errors and possible solutions, please read the following articles:
[error] [help 1] http://cwiki.apache.org/confluence/display/maven/mojofailureexception

報錯原因:項目的java環境與電腦環境不符合,例如我的新建項目運行環境為j2se-1.5,報錯是在我將其改為jre1.8之后

 解決方案:

 右鍵項目——build path——configure build path——libraries——雙擊jre system libraries如下圖所示:

mybatis逆向工程與分頁在springboot中的應用及遇到坑

選擇alternate jre 如2處的下拉框只有jre,點擊3處的install jres,依次經過add——standard vm——next——directory,選擇本機的jdk位置點擊finish

在install jres位置將默認勾選更改jdk,如下圖所示,并保存。

mybatis逆向工程與分頁在springboot中的應用及遇到坑

再次maven install項目正常。如下所示:

[info] build success
[info] ------------------------------------------------------------------------
[info] total time: 3.351 s
[info] finished at: 2018-09-05t21:20:48+08:00
[info] final memory: 23m/181m
[info] ------------------------------------------------------------------------

在src/main/resources新建文件:application.yml,內容如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server:
 port: 8080
spring:
 datasource:
  name: test
  url: jdbc:mysql://localhost:3306/test
  username: root
  password: 123456
  driver-class-name: com.mysql.jdbc.driver
## 該配置節點為獨立的節點
mybatis:
 mapper-locations: classpath:mapper/*.xml
#pagehelper分頁插件
pagehelper:
 helperdialect: mysql
 reasonable: true
 supportmethodsarguments: true
 params: count=countsql

至此springboot環境搭建完畢!

逆向工程應用

首先應該注意到在pom文件中有配置逆向工程xml文件的位置:src/main/resources/generator/generatorconfig.xml

因而在src/main/resources下新建generator文件夾,并建立generatorconfig.xml文件,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?xml version="1.0" encoding="utf-8"?>
<!doctype generatorconfiguration public "-//mybatis.org//dtd mybatis generator configuration 1.0//en" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorconfiguration>
 <!-- 數據庫驅動:選擇你的本地硬盤上面的數據庫驅動包-->
 <classpathentry location="e:\plugins\maven\repo\mysql\mysql-connector-java\5.1.41\mysql-connector-java-5.1.41.jar"/>
 <context id="db2tables" targetruntime="mybatis3">
  <commentgenerator>
   <property name="suppressdate" value="true"/>
   <!-- 是否去除自動生成的注釋 true:是 : false:否 -->
   <property name="suppressallcomments" value="true"/>
  </commentgenerator>
  <!--數據庫鏈接url,用戶名、密碼 -->
  <jdbcconnection driverclass="com.mysql.jdbc.driver" connectionurl="jdbc:mysql://localhost/test" userid="root" password="123456">
  </jdbcconnection>
  <javatyperesolver>
   <property name="forcebigdecimals" value="false"/>
  </javatyperesolver>
  <!-- 生成pojo類的位置-->
  <javamodelgenerator targetpackage="com.luis.entity" targetproject="src/main/java">
   <property name="enablesubpackages" value="true"/>
   <property name="trimstrings" value="true"/>
  </javamodelgenerator>
  <!-- 生成映射文件的包名和位置-->
  <sqlmapgenerator targetpackage="mapper" targetproject="src/main/resources">
   <!-- enablesubpackages 是否讓schema作為包的后綴-->
   <property name="enablesubpackages" value="false"/>
  </sqlmapgenerator>
  <!-- 生成mapper接口的位置-->
  <javaclientgenerator type="xmlmapper" targetpackage="com.luis.mapper" targetproject="src/main/java">
   <!-- enablesubpackages 是否讓schema作為包的后綴-->
   <property name="enablesubpackages" value="false"/>
  </javaclientgenerator>
  <!-- 指定數據庫表 -->
  <table schema="" tablename="user"></table>
 </context>
</generatorconfiguration>

根據個人環境將配置文件中的配置進行更改,如數據庫密碼,包名,對應數據庫表

 所用的數據庫表如下:

?
1
2
3
4
5
6
7
8
9
10
11
drop table if exists `user`;
create table `user` (
 `id` bigint(20) not null,
 `name` varchar(255) not null,
 `age` int(4) not null,
 primary key (`id`)
) engine=innodb default charset=utf8;
insert into `user` values ('1', 'wanger', '22');
insert into `user` values ('2', 'zhangsan', '18');
insert into `user` values ('3', 'lisi', '23');
insert into `user` values ('4', 'wangwu', '21');

配置完成后,右鍵項目,選擇run as——maven build——在下面兩處分別填入:

goals: mybatis-generator:generate -e
 profiles: generatorconfig.xml

如下圖所示:

mybatis逆向工程與分頁在springboot中的應用及遇到坑

出現如下所示,代碼生成成功,刷新項目即可。

[info] generating example class for table user
[info] generating record class for table user
[info] generating mapper interface for table user
[info] generating sql map for table user
[info] saving file usermapper.xml
[info] saving file userexample.java
[info] saving file user.java
[info] saving file usermapper.java
[info] ------------------------------------------------------------------------
[info] build success
[info] ------------------------------------------------------------------------

需要注意的是:逆向工程生成的代碼不會覆蓋,因而不能重復多次生成。

 此處也有個小坑,逆向工程的代碼生成后,啟動項目會報如下錯誤:

***************************
application failed to start
***************************

description:

field usermapper in com.luis.service.impl.userserviceimpl required a bean of type 'com.luis.mapper.usermapper' that could not be found.

action:

consider defining a bean of type 'com.luis.mapper.usermapper' in your configuration.

解決方案:

1、給生成的mapper接口文件前加注解:@mapper 即可解決。但需要給每一個mapper文件前加,繁瑣,因而有第二種類

解決辦法

2、在啟動類前加@mapperscan({"com.luis.mapper"}),其中com.luis.mapper為mapper文件的所在位置。

 參考自:http://412887952-qq-com.iteye.com/blog/2392672

分頁應用

逆向工程已經生成了entity類,及dao層的mapper接口與*mapper.xml文件,因而/只用編寫service層與web層。

 首先在userservice中編寫接口,代碼如下:

?
1
2
3
4
public interface userservice {
 user selectbyname(string name);
 list<user> findalluser(int pagenum, int pagesize);
}

在userserviceimpl文件進行實現,代碼如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@service
public class userserviceimpl implements userservice {
 @autowired
 private usermapper usermapper;
 @override
 public user selectbyname(string name) {
  userexample example = new userexample();
  criteria criteria = example.createcriteria();
  criteria.andnameequalto(name);
  list<user> users = usermapper.selectbyexample(example);
  if (users != null && users.size() > 0) {
   return users.get(0);
  }
  return null;
 }
 /**
  * pagenum 開始頁數
  * pagesize 每頁顯示的數據條數
  */
 @override
 public list<user> findalluser(int pagenum, int pagesize) {
  //將參數傳給方法實現分頁
  pagehelper.startpage(pagenum, pagesize);
  userexample example = new userexample();
  list<user> list = usermapper.selectbyexample(example);
  return list;
 }
}

最后在controller層對查詢結果進行接收,usercontroller代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@controller
@restcontroller
public class usercontroller {
 @autowired
 private userservice userservice;
 @requestmapping("/test")
 public user queruserbyname() {
  user user = userservice.selectbyname("luis");
  system.out.println(user.tostring());
  return user;
 }
 @requestmapping("/list")
 public list<user> queruser() {
  list<user> list = userservice.findalluser(1, 2);
  //獲取分頁信息
  pageinfo<user> pageinfo = new pageinfo<>(list);
  system.out.println("total:" + pageinfo.gettotal());
  system.out.println("pages:" + pageinfo.getpages());
  system.out.println("pagesize:" + pageinfo.getpagesize());
  return list;
 }
}

測試

此前在項目編寫過程中已經對可能出現的錯誤進行了總結,最后,對項目的功能進行測試,通過加@restcontroller注解將數據傳輸到瀏覽器中。

 測試mybatis與springboot,瀏覽器輸入http://localhost:8080/test,瀏覽器輸出:

{"id":1,"name":"wanger","age":22}

分頁測試,瀏覽器輸入http://localhost:8080/list,瀏覽器輸出:

[{"id":1,"name":"wanger","age":22},{"id":2,"name":"zhangsan","age":18}]

eclipse輸出:

total:4
pages:2
pagesize:2

項目搭建完畢,具體代碼參見github

總結

以上所述是小編給大家介紹的mybatis逆向工程與分頁在springboot中的應用,希望對大家有所幫助,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://www.cnblogs.com/liuyi6/archive/2018/09/06/9595856.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 成人在线观看免费高清 | 今井夏帆av一区二区 | 久久不射电影网 | 成人爽a毛片免费啪啪红桃视频 | 热99在线视频| 亚洲第一成人在线视频 | 一级毛片免费观看 | 成人激情在线观看 | 日韩做爰视频免费 | 在线高清中文字幕 | www.99热视频 | 欧美性猛交xxx乱大交3蜜桃 | 超碰人人做人人爱 | 噜噜色av | 午夜视频免费播放 | 2021狠狠操| 在线看一区二区三区 | 激情小说区| 国产99精品| 色八影院 | 欧美日韩夜夜 | 欧美一级α片 | 国产成人自拍小视频 | 欧美一级毛片一级毛片 | 久久97超碰 | 国产一区视频在线免费观看 | 日韩视频中文 | 亚洲一区二区三区在线播放 | 国产91在线免费 | 一级看片免费视频 | 在线播放的av网站 | 色欧美视频| 青草视频在线观看视频 | 亚洲精品一区国产精品丝瓜 | 毛片在线视频在线播放 | 天堂精品久久 | 人人看人人艹 | 在线免费91| 怦然心动50免费完整版 | 大学生a级毛片免费视频 | 黄网站在线免费 |