Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
MybatisTraning
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Schedules
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
zero_97
MybatisTraning
Commits
b04eedf8
Commit
b04eedf8
authored
Dec 04, 2019
by
chenpengtao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
殷小威作业
parent
43ffa0ec
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
533 additions
and
0 deletions
+533
-0
pom.xml
殷小威_Mybatis1/pom.xml
+91
-0
DemoApplication.java
殷小威_Mybatis1/src/main/java/com/yxw/DemoApplication.java
+14
-0
SwaggerConfig.java
殷小威_Mybatis1/src/main/java/com/yxw/config/SwaggerConfig.java
+24
-0
OrderController.java
...c/main/java/com/yxw/zuoye/controller/OrderController.java
+44
-0
OrderMapper.java
...Mybatis1/src/main/java/com/yxw/zuoye/dao/OrderMapper.java
+19
-0
Order.java
殷小威_Mybatis1/src/main/java/com/yxw/zuoye/entity/Order.java
+28
-0
User.java
殷小威_Mybatis1/src/main/java/com/yxw/zuoye/entity/User.java
+25
-0
OrderService.java
...is1/src/main/java/com/yxw/zuoye/service/OrderService.java
+25
-0
UserTypeHandler.java
.../main/java/com/yxw/zuoye/typehandler/UserTypeHandler.java
+44
-0
application-dev.yml
殷小威_Mybatis1/src/main/resources/application-dev.yml
+17
-0
application.yml
殷小威_Mybatis1/src/main/resources/application.yml
+5
-0
logback-spring.xml
殷小威_Mybatis1/src/main/resources/logback-spring.xml
+30
-0
OrderMapper.xml
殷小威_Mybatis1/src/main/resources/mapping/OrderMapper.xml
+28
-0
DemoApplicationTests.java
...tis1/src/test/java/com/yxw/demo/DemoApplicationTests.java
+139
-0
No files found.
殷小威_Mybatis1/pom.xml
0 → 100644
View file @
b04eedf8
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.2.1.RELEASE
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
com.yxw
</groupId>
<artifactId>
demo
</artifactId>
<version>
0.0.1-SNAPSHOT
</version>
<name>
demo
</name>
<description>
Demo project for Spring Boot
</description>
<properties>
<java.version>
1.8
</java.version>
</properties>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.mybatis.spring.boot
</groupId>
<artifactId>
mybatis-spring-boot-starter
</artifactId>
<version>
2.1.1
</version>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<scope>
runtime
</scope>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
<exclusions>
<exclusion>
<groupId>
org.junit.vintage
</groupId>
<artifactId>
junit-vintage-engine
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
com.vaadin.external.google
</groupId>
<artifactId>
android-json
</artifactId>
<version>
0.0.20131108.vaadin1
</version>
<scope>
compile
</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.58
</version>
</dependency>
<!-- Swagger -->
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger2
</artifactId>
<version>
2.9.2
</version>
</dependency>
<!-- Swagger UI -->
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger-ui
</artifactId>
<version>
2.9.2
</version>
</dependency>
<!--@Slf4j自动化日志对象-log-->
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
1.16.16
</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
</plugins>
</build>
</project>
殷小威_Mybatis1/src/main/java/com/yxw/DemoApplication.java
0 → 100644
View file @
b04eedf8
package
com
.
yxw
;
package
com
.
yxw
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@SpringBootApplication
public
class
DemoApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
DemoApplication
.
class
,
args
);
}
}
殷小威_Mybatis1/src/main/java/com/yxw/config/SwaggerConfig.java
0 → 100644
View file @
b04eedf8
package
com
.
yxw
.
config
;
package
com
.
yxw
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
@Configuration
@EnableSwagger2
public
class
SwaggerConfig
{
@Bean
public
Docket
api
()
{
return
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
select
()
.
apis
(
RequestHandlerSelectors
.
any
())
.
paths
(
PathSelectors
.
any
())
.
build
();
}
}
\ No newline at end of file
殷小威_Mybatis1/src/main/java/com/yxw/zuoye/controller/OrderController.java
0 → 100644
View file @
b04eedf8
package
com
.
yxw
.
zuoye
.
controller
;
package
com
.
yxw
.
zuoye
.
controller
;
import
com.yxw.zuoye.service.OrderService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
com.yxw.zuoye.entity.Order
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
@Slf4j
@RestController
@RequestMapping
(
value
=
"/order"
)
@Api
(
"订单管理功能"
)
public
class
OrderController
{
@Autowired
OrderService
orderService
;
@ApiOperation
(
"添加订单"
)
@PostMapping
(
value
=
"/addOrder"
)
public
boolean
addOrder
(
Order
order
){
int
n
=
orderService
.
insertOrder
(
order
);
if
(
n
>
0
)
return
true
;
else
return
false
;
}
@ApiOperation
(
"查询订单"
)
@GetMapping
(
value
=
"/getOrders"
)
public
List
<
Order
>
getOrders
(){
log
.
info
(
"查询订单"
);
return
orderService
.
getOrders
();
}
}
殷小威_Mybatis1/src/main/java/com/yxw/zuoye/dao/OrderMapper.java
0 → 100644
View file @
b04eedf8
package
com
.
yxw
.
zuoye
.
dao
;
package
com
.
yxw
.
zuoye
.
dao
;
import
com.yxw.zuoye.entity.Order
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
@Mapper
public
interface
OrderMapper
{
int
insertOrder
(
Order
order
);
int
insertOrderBatch
(
List
<
Order
>
orders
);
List
<
Order
>
getOrders
();
}
殷小威_Mybatis1/src/main/java/com/yxw/zuoye/entity/Order.java
0 → 100644
View file @
b04eedf8
package
com
.
yxw
.
zuoye
.
entity
;
package
com
.
yxw
.
zuoye
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
public
class
Order
{
private
String
orderId
;
private
User
userInfo
;
public
String
getOrderId
()
{
return
orderId
;
}
public
void
setOrderId
(
String
orderId
)
{
this
.
orderId
=
orderId
;
}
public
User
getUserInfo
()
{
return
userInfo
;
}
public
void
setUserInfo
(
User
userInfo
)
{
this
.
userInfo
=
userInfo
;
}
}
殷小威_Mybatis1/src/main/java/com/yxw/zuoye/entity/User.java
0 → 100644
View file @
b04eedf8
package
com
.
yxw
.
zuoye
.
entity
;
package
com
.
yxw
.
zuoye
.
entity
;
public
class
User
{
private
String
userId
;
private
String
userName
;
public
String
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
String
userId
)
{
this
.
userId
=
userId
;
}
public
String
getUserName
()
{
return
userName
;
}
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
}
}
殷小威_Mybatis1/src/main/java/com/yxw/zuoye/service/OrderService.java
0 → 100644
View file @
b04eedf8
package
com
.
yxw
.
zuoye
.
service
;
package
com
.
yxw
.
zuoye
.
service
;
import
com.yxw.zuoye.dao.OrderMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.yxw.zuoye.entity.Order
;
import
java.util.List
;
@Service
public
class
OrderService
{
@Autowired
OrderMapper
orderMapper
;
public
int
insertOrder
(
Order
order
){
return
orderMapper
.
insertOrder
(
order
);
}
public
List
<
Order
>
getOrders
(){
return
orderMapper
.
getOrders
();
}
}
殷小威_Mybatis1/src/main/java/com/yxw/zuoye/typehandler/UserTypeHandler.java
0 → 100644
View file @
b04eedf8
package
com
.
yxw
.
zuoye
.
typehandler
;
package
com
.
yxw
.
zuoye
.
typehandler
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yxw.zuoye.entity.User
;
import
org.apache.ibatis.type.BaseTypeHandler
;
import
org.apache.ibatis.type.JdbcType
;
import
com.alibaba.fastjson.JSON
;
import
java.sql.CallableStatement
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
public
class
UserTypeHandler
extends
BaseTypeHandler
<
User
>
{
@Override
public
void
setNonNullParameter
(
PreparedStatement
preparedStatement
,
int
i
,
User
user
,
JdbcType
jdbcType
)
throws
SQLException
{
preparedStatement
.
setString
(
i
,
JSON
.
toJSONString
(
user
));
}
@Override
public
User
getNullableResult
(
ResultSet
resultSet
,
String
s
)
throws
SQLException
{
User
user
=
JSON
.
parseObject
(
resultSet
.
getString
(
s
),
User
.
class
);
//JSONObject user = JSON.parseObject(resultSet.getString(s));
return
user
;
}
@Override
public
User
getNullableResult
(
ResultSet
resultSet
,
int
i
)
throws
SQLException
{
User
user
=
JSON
.
parseObject
(
resultSet
.
getString
(
i
),
User
.
class
);
//JSONObject user = JSON.parseObject(resultSet.getString(i));
return
user
;
}
@Override
public
User
getNullableResult
(
CallableStatement
callableStatement
,
int
i
)
throws
SQLException
{
User
user
=
JSON
.
parseObject
(
callableStatement
.
getString
(
i
),
User
.
class
);
//JSONObject user = JSON.parseObject(callableStatement.getString(i));
return
user
;
}
}
殷小威_Mybatis1/src/main/resources/application-dev.yml
0 → 100644
View file @
b04eedf8
server
:
server
:
port
:
8088
servlet
:
context-path
:
/demo
spring
:
datasource
:
username
:
root
password
:
yin55555
url
:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
driver-class-name
:
com.mysql.jdbc.Driver
mybatis
:
mapper-locations
:
classpath:mapping/*Mapper.xml
type-aliases-package
:
com.yxw.zuoye.entity
type-handlers-package
:
com.yxw.zuoye.typehandler
殷小威_Mybatis1/src/main/resources/application.yml
0 → 100644
View file @
b04eedf8
spring
:
spring
:
profiles
:
active
:
dev
\ No newline at end of file
殷小威_Mybatis1/src/main/resources/logback-spring.xml
0 → 100644
View file @
b04eedf8
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 此xml在spring-boot-1.5.3.RELEASE.jar里 -->
<include
resource=
"org/springframework/boot/logging/logback/defaults.xml"
/>
<include
resource=
"org/springframework/boot/logging/logback/console-appender.xml"
/>
<!-- 开启后可以通过jmx动态控制日志级别(springboot Admin的功能) -->
<!--<jmxConfigurator/>-->
<appender
name=
"FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<File>
C:/log/zuoye.log
</File>
<encoder>
<pattern>
%date [%level] [%thread] %logger{60} [%file : %line] %msg%n
</pattern>
</encoder>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 添加.gz 历史日志会启用压缩 大大缩小日志文件所占空间 -->
<!--<fileNamePattern>/home/hfw-client/hfw_log/stdout.log.%d{yyyy-MM-dd}.log</fileNamePattern>-->
<fileNamePattern>
D:/log/hfw-client/hfw_log/stdout.log.%d{yyyy-MM-dd}.log
</fileNamePattern>
<maxHistory>
30
</maxHistory>
<!-- 保留30天日志 -->
</rollingPolicy>
</appender>
<logger
name=
"com.yxw.zuoye.dao"
level=
"DEBUG"
/>
<root
level=
"INFO"
>
<appender-ref
ref=
"CONSOLE"
/>
<appender-ref
ref=
"FILE"
/>
</root>
</configuration>
\ No newline at end of file
殷小威_Mybatis1/src/main/resources/mapping/OrderMapper.xml
0 → 100644
View file @
b04eedf8
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yxw.zuoye.dao.OrderMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.yxw.zuoye.entity.Order"
>
<result
column=
"orderId"
jdbcType=
"VARCHAR"
property=
"orderId"
/>
<result
column=
"userInfo"
jdbcType=
"VARCHAR"
typeHandler=
"com.yxw.zuoye.typehandler.UserTypeHandler"
/>
</resultMap>
<select
id=
"getOrders"
resultType=
"com.yxw.zuoye.entity.Order"
>
select * from ordertable
</select>
<insert
id=
"insertOrder"
parameterType=
"com.yxw.zuoye.entity.Order"
>
insert into ordertable(orderId,userInfo) values (#{orderId},#{userInfo})
</insert>
<insert
id=
"insertOrderBatch"
>
INSERT INTO ordertable
(orderId, userInfo)
VALUES
<foreach
collection =
"list"
item=
"order"
separator =
","
>
(#{order.orderId},#{order.userInfo})
</foreach >
</insert>
</mapper>
\ No newline at end of file
殷小威_Mybatis1/src/test/java/com/yxw/demo/DemoApplicationTests.java
0 → 100644
View file @
b04eedf8
package
com
.
yxw
.
demo
;
package
com
.
yxw
.
demo
;
import
com.yxw.zuoye.dao.OrderMapper
;
import
com.yxw.zuoye.entity.Order
;
import
com.yxw.zuoye.entity.User
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.session.ExecutorType
;
import
org.apache.ibatis.session.SqlSession
;
import
org.junit.jupiter.api.Test
;
import
org.mybatis.spring.SqlSessionTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.UUID
;
@SpringBootTest
@Slf4j
class
DemoApplicationTests
{
@Autowired
private
SqlSessionTemplate
sqlSessionTemplate
;
@Test
void
contextLoads
()
{
}
@Test
public
void
mybatisBatchOne
()
{
SqlSession
session
=
sqlSessionTemplate
.
getSqlSessionFactory
().
openSession
();
try
{
OrderMapper
orderMapper
=
session
.
getMapper
(
OrderMapper
.
class
);
long
start
=
System
.
currentTimeMillis
();
for
(
int
i
=
0
;
i
<
10000
;
i
++)
{
Order
order
=
new
Order
();
User
user
=
new
User
();
user
.
setUserId
(
"userId"
);
user
.
setUserName
(
"userName"
);
order
.
setOrderId
(
"orderId"
);
order
.
setUserInfo
(
user
);
orderMapper
.
insertOrder
(
order
);
}
long
end
=
System
.
currentTimeMillis
();
log
.
info
(
"耗时:"
+
(
end
-
start
));
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
toString
());
}
finally
{
session
.
commit
();
session
.
close
();
}
}
@Test
public
void
mybatisBatchTwo
()
{
SqlSession
session
=
sqlSessionTemplate
.
getSqlSessionFactory
().
openSession
(
ExecutorType
.
BATCH
);
try
{
OrderMapper
orderMapper
=
session
.
getMapper
(
OrderMapper
.
class
);
long
start
=
System
.
currentTimeMillis
();
for
(
int
i
=
0
;
i
<
10000
;
i
++)
{
Order
order
=
new
Order
();
User
user
=
new
User
();
user
.
setUserId
(
"userId"
);
user
.
setUserName
(
"userName"
);
order
.
setOrderId
(
"orderId"
);
order
.
setUserInfo
(
user
);
orderMapper
.
insertOrder
(
order
);
}
long
end
=
System
.
currentTimeMillis
();
log
.
info
(
"耗时:"
+
(
end
-
start
));
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
toString
());
}
finally
{
session
.
commit
();
session
.
close
();
}
}
@Test
public
void
saveOrderBatchOne
()
{
SqlSession
session
=
sqlSessionTemplate
.
getSqlSessionFactory
().
openSession
();
try
{
OrderMapper
orderMapper
=
session
.
getMapper
(
OrderMapper
.
class
);
long
start
=
System
.
currentTimeMillis
();
List
<
Order
>
orderList
=
new
ArrayList
<
Order
>();
for
(
int
i
=
0
;
i
<
10000
;
i
++)
{
Order
order
=
new
Order
();
User
user
=
new
User
();
user
.
setUserId
(
"userId"
);
user
.
setUserName
(
"userName"
);
order
.
setOrderId
(
"orderId"
);
order
.
setUserInfo
(
user
);
orderList
.
add
(
order
);
}
orderMapper
.
insertOrderBatch
(
orderList
);
orderList
.
clear
();
long
end
=
System
.
currentTimeMillis
();
log
.
info
(
"耗时:"
+
(
end
-
start
));
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
toString
());
}
finally
{
session
.
commit
();
session
.
close
();
}
}
@Test
public
void
saveOrderBatchTwo
()
{
//设置ExecutorType.BATCH原理:把SQL语句发个数据库,数据库预编译好,数据库等待需要运行的参数,接收到参数后一次运行,ExecutorType.BATCH只打印一次SQL语句,多次设置参数步骤,
SqlSession
session
=
sqlSessionTemplate
.
getSqlSessionFactory
().
openSession
(
ExecutorType
.
BATCH
);
try
{
OrderMapper
orderMapper
=
session
.
getMapper
(
OrderMapper
.
class
);
long
start
=
System
.
currentTimeMillis
();
List
<
Order
>
orderList
=
new
ArrayList
<
Order
>();
for
(
int
i
=
0
;
i
<
10000
;
i
++)
{
Order
order
=
new
Order
();
User
user
=
new
User
();
user
.
setUserId
(
"userId"
);
user
.
setUserName
(
"userName"
);
order
.
setOrderId
(
"orderId"
);
order
.
setUserInfo
(
user
);
orderList
.
add
(
order
);
}
orderMapper
.
insertOrderBatch
(
orderList
);
orderList
.
clear
();
long
end
=
System
.
currentTimeMillis
();
log
.
info
(
"耗时:"
+
(
end
-
start
));
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
toString
());
}
finally
{
session
.
commit
();
session
.
close
();
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment