From a064d965b795c919dc4f8634a4824538e26c157e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=90=E6=82=A6?= Date: Sat, 8 Mar 2025 20:31:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes demo2/.DS_Store | Bin 0 -> 6148 bytes demo2/.gitignore | 33 +++++ demo2/pom.xml | 102 +++++++++++++++ demo2/src/.DS_Store | Bin 0 -> 6148 bytes demo2/src/main/.DS_Store | Bin 0 -> 6148 bytes .../chapter22/Chapter22Application.java | 15 +++ .../java/com/didispace/chapter22/User.java | 18 +++ .../didispace/chapter22/UserController.java | 57 +++++++++ .../com/didispace/chapter22/UserMapper.java | 24 ++++ .../src/main/resources/application.properties | 21 +++ demo2/src/test/.DS_Store | Bin 0 -> 6148 bytes demo2/src/test/java/.DS_Store | Bin 0 -> 6148 bytes demo2/src/test/java/com/.DS_Store | Bin 0 -> 6148 bytes demo2/src/test/java/com/didispace/.DS_Store | Bin 0 -> 6148 bytes .../chapter22/Chapter22ApplicationTests.java | 121 ++++++++++++++++++ 16 files changed, 391 insertions(+) create mode 100644 .DS_Store create mode 100644 demo2/.DS_Store create mode 100644 demo2/.gitignore create mode 100644 demo2/pom.xml create mode 100644 demo2/src/.DS_Store create mode 100644 demo2/src/main/.DS_Store create mode 100644 demo2/src/main/java/com/didispace/chapter22/Chapter22Application.java create mode 100644 demo2/src/main/java/com/didispace/chapter22/User.java create mode 100644 demo2/src/main/java/com/didispace/chapter22/UserController.java create mode 100644 demo2/src/main/java/com/didispace/chapter22/UserMapper.java create mode 100644 demo2/src/main/resources/application.properties create mode 100644 demo2/src/test/.DS_Store create mode 100644 demo2/src/test/java/.DS_Store create mode 100644 demo2/src/test/java/com/.DS_Store create mode 100644 demo2/src/test/java/com/didispace/.DS_Store create mode 100644 demo2/src/test/java/com/didispace/chapter22/Chapter22ApplicationTests.java diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..df306a6813daf1dd8463ba9e6e833c8f33a8b37f GIT binary patch literal 6148 zcmeHK%}T>S5Z>*NO({YS3Oz1(E!w6<5HB&-gI6PZP^pax8cegLKju&hIqM7gB)*Q$ z>~5t}y@^PffthbJJCkI-4Z9h}826@Oi!qxqW`QCWs$jkmoJU=eg7Fjqxw?mQn#j8# zk-5QA^gPSLF)1h$n zbhy7z;f%W)$r1y^z*h#a_XDx<{6G1*|5rg|hyh|?JsIGouHW^bHgmSFREcM;0KEl8 p!MI%GX9^6|Q4Fzo6xTtOfM4JM&^4HA1P=)P2q+rJ5Ceb8zz2|}RcQbK literal 0 HcmV?d00001 diff --git a/demo2/.DS_Store b/demo2/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7946c49e32edbac157949bb5dd0d4593b5c42571 GIT binary patch literal 6148 zcmeHKL2DC16n>MW&Bh|+pwNpj;5F1VErNL2#uhB}Ag<^^CGK`ZT-@x0?8XQouxI@- zUi~HgFFon^W~RmL)~kq}2XDTaH{aXMd~dU}LquY@i1&%QMC8F48yz$^7|*lUtYITO zDfBfGnovfH<}|LcUEp6-fNOV$_E5Kk3ix&XPE&Orr7FTaKO9H!y`S39BicevLNV$b zR+!%_%r-rz6FQ?8$e2>R$rcZ4>=~Y)DY#$IrWN+L3cE=;p0)D|>+)t+w9IFAML(ih zn&d^le<2#p*4B30YkNE1`{1Km21Qsb@?kiC%cECHrO{PCj9w?><*0k_naYYV$;NY? zki=t9-n~h(SS^QYk;S>r4a|hs@j9dK?rJp{40>|^@L=7Ot0#kgPaYmTUavde{fCd9 zz8rl@rQN0jaOi+S(YII{#0*TB zRG>)}_J|=&I^xpue2b+)lTN}OK7_rquqPCu?~dzBO()?SbgfgsDX^(P(+s=3|DXK% z{J)vxMos~zz<;HHXdMT~LoCVet+mDRUMt}r;B3q*4PK|9qqkykc`M$9YeQUe2k2WY T4I%<_9|Bqi*Ej|Kssg_NY2T63 literal 0 HcmV?d00001 diff --git a/demo2/.gitignore b/demo2/.gitignore new file mode 100644 index 0000000..549e00a --- /dev/null +++ b/demo2/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/demo2/pom.xml b/demo2/pom.xml new file mode 100644 index 0000000..a8ed7f0 --- /dev/null +++ b/demo2/pom.xml @@ -0,0 +1,102 @@ + + + 4.0.0 + + + org.springframework.boot + spring-boot-starter-parent + 2.1.3.RELEASE + + + + com.didispace + chapter2-2 + 0.0.1-SNAPSHOT + chapter2-2 + Demo project for Spring Boot + + + 1.8 + + + + + org.springframework.boot + spring-boot-starter-web + + + + com.spring4all + swagger-spring-boot-starter + 1.9.0.RELEASE + + + + org.projectlombok + lombok + 1.18.30 + + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.2 + + + + org.mybatis + mybatis + 3.5.9 + + + + mysql + mysql-connector-java + 5.1.49 + + + + junit + junit + 4.12 + test + + + + + ch.qos.logback + logback-classic + 1.2.11 + + + + + org.mybatis + mybatis + 3.5.5 + + + + mysql + mysql-connector-java + 8.0.21 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + \ No newline at end of file diff --git a/demo2/src/.DS_Store b/demo2/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..4b6a20934208818b19915fe200b5aeb20e0be7b9 GIT binary patch literal 6148 zcmeHK!A{#i5S;~=I3T1PsLIh2*Qg{RLPA{J6b`*&1P6+O-9*Kz@uJuv2P=}Vz{hZ; zU((+xZ+4f61W*r^5Q=uBnYX($v(`LmcRfTTI>TO*s76FCl+js+c|q9E`b-wg$`VlU z9^VrABT8h1Id5piGGG~a-wg2Cb?AaZiYc8rzhB_{{8x!8ViFgPvP*N$@1x5k&hkd% zk62iAJ}gz-io4>T2Iq1V#pR{y-(fy*@&| zAIE7=jyiIf_A-?lXop*MtKHhCqG-13UbDS5u6xB!t5NsbTifGt)&01!xqHz4m0YCq zTC*;2Eh$+w_y{)`OvJ*@`R!mVy6dfbRzn%IF&`HL9xvMzsJy2g^z@ zR=@s0j~9Tx!BQhuAVQ}Cb*eBehA^Fj(CP5|Ccf0D(@Cf=V;}QnVLB9H8V}*Aa1y>o zYb^tofoTR7^|Z$C|31#}EB*g;lAT!wECX}JfN=JLy$(t;Z|k$-_^tJzXHXW7D>bSV j81o#f0YAm-P$lqrJOKIzOO058*dGB!gEf|cH)Y@fEXkZ< literal 0 HcmV?d00001 diff --git a/demo2/src/main/.DS_Store b/demo2/src/main/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7a2baeedb7106aad5d183fd24f7fbba102c50cdd GIT binary patch literal 6148 zcmeHKO-sW-5S?wSCKRCuMUMfmMO#}0@e*r2cr~I2m6|j~qcJN@V-KZ}tNs~}{uBR> z&g^alt>R6K%)soM{dk+~OW5530MW|AIzR;gEOf$xjl~y6{p3?tFfAoSL313$vKz!Q zz&cIHHv0uj{E5HiOm;z>-vdS~|Ui><&04wnK z3ef)GpcA?VbB${2z(S<}h;)rqhOxT(BRbT8=o-v5VhftkR76b`CdCjYa}b)2{jM3G zYt(cQ>d82dd9pAWiZF?XaMW-Ru0}3d0aoCn0!3Y|(D}dreg6NE#5Goc75G;Qh*H~Y zw{S`3Y@J#howW}71v(jx%Qe1JFi=M^j-{h`6 users = Collections.synchronizedMap(new HashMap<>()); + + @GetMapping("/") + @ApiOperation(value = "获取用户列表") + public List getUserList() { + List r = new ArrayList<>(users.values()); + return r; + } + + @PostMapping("/") + @ApiOperation(value = "创建用户", notes = "根据User对象创建用户") + public String postUser(@RequestBody User user) { + users.put(user.getId(), user); + return "success"; + } + + @GetMapping("/{id}") + @ApiOperation(value = "获取用户详细信息", notes = "根据url的id来获取用户详细信息") + public User getUser(@PathVariable int id) { + return users.get(id); + } + + @PutMapping("/{id}") + @ApiImplicitParam(paramType = "path", dataType = "Long", name = "id", value = "用户编号", required = true, example = "1") + @ApiOperation(value = "更新用户详细信息", notes = "根据url的id来指定更新对象,并根据传过来的user信息来更新用户详细信息") + public String putUser(@PathVariable int id, @RequestBody User user) { + User u = users.get(id); + u.setName(user.getName()); + u.setAge(user.getAge()); + users.put(id, u); + return "success"; + } + + @DeleteMapping("/{id}") + @ApiOperation(value = "删除用户", notes = "根据url的id来指定删除对象") + public String deleteUser(@PathVariable int id) { + users.remove(id); + return "success"; + } + +} \ No newline at end of file diff --git a/demo2/src/main/java/com/didispace/chapter22/UserMapper.java b/demo2/src/main/java/com/didispace/chapter22/UserMapper.java new file mode 100644 index 0000000..9322e9f --- /dev/null +++ b/demo2/src/main/java/com/didispace/chapter22/UserMapper.java @@ -0,0 +1,24 @@ +package com.didispace.chapter22; +import java.util.List; + +import org.apache.ibatis.annotations.*; + + +@Mapper//运行时会自动生成该接口的实现类对象,并交给IOC容器管理 +public interface UserMapper { + //根据ID删除数据 + @Delete("delete from Users01 where id=#{id}") + public void delete(int id); + + @Insert("insert into Users01(id, name, age) values(#{id},#{name},#{age})") + public void insert(User user); + + @Update("update Users01 set name=#{name},age=#{age} where id=#{id}") + public void update(User user); + + @Select("select * from Users01 where id=#{id}") + public User select(int id); + //查询全部用户信息 + /*@ Select("select * from Users01") + public List list();*/ +} diff --git a/demo2/src/main/resources/application.properties b/demo2/src/main/resources/application.properties new file mode 100644 index 0000000..6740300 --- /dev/null +++ b/demo2/src/main/resources/application.properties @@ -0,0 +1,21 @@ +# 应用服务 WEB 访问端口 +server.port=8080 +swagger.title=spring-boot-starter-swagger +swagger.description=Starter for swagger 2.x +swagger.version=1.9.0.RELEASE +swagger.license=Apache License, Version 2.0 +swagger.licenseUrl=https://www.apache.org/licenses/LICENSE-2.0.html +swagger.termsOfServiceUrl=https://github.com/dyc87112/spring-boot-starter-swagger +swagger.contact.name=didi +swagger.contact.url=http://blog.didispace.com +swagger.contact.email=dyc87112@qq.com +swagger.base-package=com.didispace +swagger.base-path=/** + +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.url=jdbc:mysql://localhost:3306/users?serverTimezone=GMT%2B8 +spring.datasource.username=root +spring.datasource.password=today218737202 + +#??mybatis???????????? +mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl diff --git a/demo2/src/test/.DS_Store b/demo2/src/test/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d90596816419620996e74a1d5350a6fbd67271bd GIT binary patch literal 6148 zcmeHK!AiqG5Z!H~O({YT3OxqA7H!iah?f}a!K)EHsMN$1jmB(g)8~0ELJqaRZ24>%8c4ou84Lcde7a2<6?O4?Ee8UNyJ2cMneckMUC?o)z^RzDp?^8Vh)V z$s(VrH%elW+<~p|FZ>9J0b+m{SVac(U1!!-F*(YK7$63I#Q@$97AT^lF;^(B4j5z$ z0BC?&3e4rNKcIyMKu2S)5G){Eg#xNju3HSQI|r`9VcpUGxk44rxO_A0qu$SZgiN8&DMV o%M~s{U?NK~_+lw;fJy8ceg&wB}F>IqMJkCH{`i z>~4foy?78TGcfx$vojm!ZP>{$#<(|&I*eJ2F#{B_V#4r^;5zDxRJ5fE$Z-!b3=zYF6?0ra)iD<7d&z|%tzlBdpoK4&9cV4O1Ha6=<-DnuM z{)5Qm6nGplTz%LoV`@sf9bTt+V<<$X$Yykjk zV3q=N`STBGqXE#>SSSPw2v?ziDwOLMgX`Xbt8iF%wSS>dg)=VS4EyLebKRkE-Fk3a zx-;%7q>&gP29_DX-VemW`hWU!|1X_rAO?tm^<;q8`hMSo+;nYS$r5X=4SENPf_{a< luMn8XQVhOWikqNPz;5FN(A8Kd1PciL2uK=eAO`-FfluDTQp5lN literal 0 HcmV?d00001 diff --git a/demo2/src/test/java/com/.DS_Store b/demo2/src/test/java/com/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e99041f0dad39913325b75ef27232d62a5a586d0 GIT binary patch literal 6148 zcmeHKO-sW-5S?wSO(;SS3LY1{7Hz8t;w4r+cr~I2m6|j~gE3p0)*ebBXZ=I|6910Q z>~2MAJt|gaVD?RB=jG!i>}CK!w1!awpb7vEI$^=ZVUE!}`HU58ridu?IWp)$03GO_ zBs0~V_=^hAyK^CeSo^2f;{bj0O&dmY8R01FS;kA)OX6%$ufK{yv9z>Y zcFIo0x%ThW$R7lQVb%)zmvnTdR1!|(AUuz|qjq)mP^E()PP=_gh@&o+TwTOzq(&_@ zOruP5eKX;>j@z!TkH^hsvnCrm+mo6c?=|Z+xwE}HnYhl{#@7C6`#yO{)swz=5csWX zTd_EWXAI_O@#y!{M5VVlJ7rE8jI01FzzQs;0(LcXDvNpheAlc1EAWE~(E1?J2|bIs zLA`X~pj!aM5~j6bOh1gokrq9Rxj~#k6NZXtsKT}w!q717%jI~!SAO8@`> literal 0 HcmV?d00001 diff --git a/demo2/src/test/java/com/didispace/.DS_Store b/demo2/src/test/java/com/didispace/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3a782dcbc19b3fab0a3222d4d04bd11c2df79374 GIT binary patch literal 6148 zcmeHKO-sW-5S?wSO(;SS3LY1{7OiO!#7nGt@M=U4Dm7_~24l9gsXdfJ&iaS^CH@_q z+1-lLdQ?}CK!v_{=+fGPku=!69qhXqFSJk09#7f~pd zmX^y-*{L{J!L1qxS(uH6t#EKbN2f|9(JT(5v$!{IS62^InuT%N8)!n@?P1B~d7O6D zxTQvEcc{66nQ&akZCBSP6VLN%a=Y1>*5qW@tJh?+u``{z&f3P--bwo|xlh%jzIPD# zt!i7bID;n)7HIJh4AMlUH#j?E&KQiW04u->{7nVyYUWh_=I!%cvjVKZH!48ugG49v zE#?OG(t(3+0T4@=)`l_tFcL>v^eyHFaRyBoDx#qZ+hPbq$Go(4zQx?2p@Xo^hp<-` zwnGv6>Ue&s%R%@Cd1M7xfzJw1?}t{U{r~9e{$CgIzzVPe|5E``It&h5_-uA>oqI~! uYbE+MIvLgF2Hz userList = userMapper.list(); + userList.stream().forEach(user->{ + System.out.println(user); + }); + }*/ + @Test + public void testDelete(){ + userMapper.delete(1); + } + @Test + public void testInsert(){ + User user = new User(); + user.setId(7); + user.setAge(18); + user.setName("Jessie"); + + userMapper.insert(user); + } + @Test + public void testUpdate(){ + User user = new User(); + user.setId(7); + user.setAge(20); + user.setName("Jessie"); + + userMapper.update(user); + } + @Test + public void testSelect(){ + User user=userMapper.select(3); + System.out.println(user); + } + + + private MockMvc mvc; + + @Before + public void setUp() { + mvc = MockMvcBuilders.standaloneSetup(new UserController()).build(); + } + + @Test + public void testUserController() throws Exception { + // 测试UserController + RequestBuilder request; + + // 1、get查一下user列表,应该为空 + request = get("/users/"); + mvc.perform(request) + .andExpect(status().isOk()) + .andExpect(content().string(equalTo("[]"))); + + // 2、post提交一个user + request = post("/users/") + .contentType(MediaType.APPLICATION_JSON) + .content("{\"id\":1,\"name\":\"测试大师\",\"age\":20}"); + mvc.perform(request) + .andExpect(content().string(equalTo("success"))); + + // 3、get获取user列表,应该有刚才插入的数据 + request = get("/users/"); + mvc.perform(request) + .andExpect(status().isOk()) + .andExpect(content().string(equalTo("[{\"id\":1,\"name\":\"测试大师\",\"age\":20}]"))); + + // 4、put修改id为1的user + request = put("/users/1") + .contentType(MediaType.APPLICATION_JSON) + .content("{\"name\":\"测试终极大师\",\"age\":30}"); + mvc.perform(request) + .andExpect(content().string(equalTo("success"))); + + // 5、get一个id为1的user + request = get("/users/1"); + mvc.perform(request) + .andExpect(content().string(equalTo("{\"id\":1,\"name\":\"测试终极大师\",\"age\":30}"))); + + // 6、del删除id为1的user + request = delete("/users/1"); + mvc.perform(request) + .andExpect(content().string(equalTo("success"))); + + // 7、get查一下user列表,应该为空 + request = get("/users/"); + mvc.perform(request) + .andExpect(status().isOk()) + .andExpect(content().string(equalTo("[]"))); + + } + +}