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
CI / CD
CI / CD
Pipelines
Schedules
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
training
MybatisTraning
Commits
8c0dcd0a
Commit
8c0dcd0a
authored
Jan 02, 2020
by
qichengcheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
祁成成作业提交
parent
80521422
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
783 additions
and
0 deletions
+783
-0
.gitignore
祁成成_Mybatis2/.gitignore
+104
-0
pom.xml
祁成成_Mybatis2/pom.xml
+277
-0
AppConfig1.java
祁成成_Mybatis2/src/main/java/com/Config/AppConfig1.java
+56
-0
MyTypeHandler.java
祁成成_Mybatis2/src/main/java/com/Config/MyTypeHandler.java
+48
-0
Controller.java
祁成成_Mybatis2/src/main/java/com/Controller/Controller.java
+28
-0
Context.java
祁成成_Mybatis2/src/main/java/com/Domain/Context.java
+35
-0
User.java
祁成成_Mybatis2/src/main/java/com/Domain/User.java
+35
-0
UserMapper.java
祁成成_Mybatis2/src/main/java/com/Mapper/UserMapper.java
+16
-0
UserService.java
祁成成_Mybatis2/src/main/java/com/Service/UserService.java
+44
-0
UserMapper.xml
祁成成_Mybatis2/src/main/resources/bean/UserMapper.xml
+28
-0
application.yml
祁成成_Mybatis2/src/main/resources/config/application.yml
+11
-0
sqlMapConfig.xml
祁成成_Mybatis2/src/main/resources/sqlMapConfig.xml
+18
-0
MybatisTest.java
祁成成_Mybatis2/src/test/java/transaction/MybatisTest.java
+75
-0
users.sql
祁成成_Mybatis2/users.sql
+8
-0
No files found.
祁成成_Mybatis2/.gitignore
0 → 100644
View file @
8c0dcd0a
######################
######################
# 解决java产生文件
######################
*.class
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.ear
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
######################
# 解决maven产生的文件
######################
target/
**/target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
######################
# 解决各类编辑器自动产生的文件
######################
*.iml
## Directory-based project format:
.idea/
**/.idea/
# if you remove the above rule, at least ignore the following:
# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries
# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml
# Gradle:
# .idea/gradle.xml
# .idea/libraries
# Mongo Explorer plugin:
# .idea/mongoSettings.xml
## File-based project format:
*.ipr
*.iws
## Plugin-specific files:
# IntelliJ
/out/
/target/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# eclipse
/target/
/.settings/
.classpath
.project
/build/
bin/*
WebRoot/WEB-INF/classes/
build/.gitignore
WebRoot/META-INF/MANIFEST.MF
祁成成_Mybatis2/pom.xml
0 → 100644
View file @
8c0dcd0a
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
com.homework
</groupId>
<artifactId>
homework
</artifactId>
<version>
0.0.1-SNAPSHOT
</version>
<packaging>
jar
</packaging>
<name>
homework
</name>
<url>
http://maven.apache.org
</url>
<properties>
<spring.version>
4.3.8.RELEASE
</spring.version>
<spring.boot.version>
1.5.10.RELEASE
</spring.boot.version>
<spring.security.version>
4.2.3.RELEASE
</spring.security.version>
<junit.version>
4.12
</junit.version>
<jdk.version>
1.8
</jdk.version>
<jsp.version>
2.2
</jsp.version>
<servlet.version>
3.1.0
</servlet.version>
<jstl.version>
1.2
</jstl.version>
<slf4j-version>
1.7.25
</slf4j-version>
<hamcrest.core.version>
1.3
</hamcrest.core.version>
<mockito.core.version>
2.8.9
</mockito.core.version>
</properties>
<dependencies>
<dependency>
<groupId>
org.hibernate
</groupId>
<artifactId>
hibernate-validator
</artifactId>
<version>
5.2.4.Final
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<version>
1.5.4.RELEASE
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.47
</version>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
1.16.22
</version>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
6.0.6
</version>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<version>
3.8.1
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.hamcrest
</groupId>
<artifactId>
hamcrest-core
</artifactId>
<version>
${hamcrest.core.version}
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.mockito
</groupId>
<artifactId>
mockito-core
</artifactId>
<version>
${mockito.core.version}
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-test
</artifactId>
<version>
${spring.version}
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-core
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-beans
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-context-support
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-context
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-expression
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-aop
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-aspects
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-instrument
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-instrument-tomcat
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-web
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-webmvc
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-webmvc
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework.security
</groupId>
<artifactId>
spring-security-web
</artifactId>
<version>
${spring.security.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework.security
</groupId>
<artifactId>
spring-security-config
</artifactId>
<version>
${spring.security.version}
</version>
</dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
jstl
</artifactId>
<version>
${jstl.version}
</version>
</dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
javax.servlet-api
</artifactId>
<version>
${servlet.version}
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
javax.servlet.jsp
</groupId>
<artifactId>
jsp-api
</artifactId>
<version>
${jsp.version}
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
javax
</groupId>
<artifactId>
javaee-web-api
</artifactId>
<version>
7.0
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-actuator
</artifactId>
<version>
${spring.boot.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-undertow
</artifactId>
<version>
${spring.boot.version}
</version>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-dbcp2
</artifactId>
<version>
2.1.1
</version>
</dependency>
<dependency>
<groupId>
commons-lang
</groupId>
<artifactId>
commons-lang
</artifactId>
<version>
2.6
</version>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-dbcp2
</artifactId>
<version>
2.1.1
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-jdbc
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
6.0.6
</version>
</dependency>
<dependency>
<groupId>
org.mybatis
</groupId>
<artifactId>
mybatis
</artifactId>
<version>
3.4.5
</version>
</dependency>
<dependency>
<groupId>
org.mybatis
</groupId>
<artifactId>
mybatis-spring
</artifactId>
<version>
1.3.1
</version>
</dependency>
<dependency>
<groupId>
org.slf4j
</groupId>
<artifactId>
slf4j-api
</artifactId>
<version>
${slf4j-version}
</version>
</dependency>
<dependency>
<groupId>
ch.qos.logback
</groupId>
<artifactId>
logback-classic
</artifactId>
<version>
1.2.3
</version>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
druid
</artifactId>
<version>
1.1.6
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-autoconfigure
</artifactId>
<version>
1.5.3.RELEASE
</version>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<version>
4.12
</version>
<scope>
test
</scope>
</dependency>
</dependencies>
<build>
<finalName>
homework
</finalName>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
3.6.1
</version>
<configuration>
<source>
${jdk.version}
</source>
<target>
${jdk.version}
</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
祁成成_Mybatis2/src/main/java/com/Config/AppConfig1.java
0 → 100644
View file @
8c0dcd0a
package
com
.
Config
;
package
com
.
Config
;
import
org.apache.ibatis.session.SqlSessionFactory
;
import
org.mybatis.spring.SqlSessionFactoryBean
;
import
org.mybatis.spring.mapper.MapperScannerConfigurer
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.core.io.support.PathMatchingResourcePatternResolver
;
import
org.springframework.jdbc.datasource.DataSourceTransactionManager
;
import
com.alibaba.druid.pool.DruidDataSource
;
@Configuration
public
class
AppConfig1
{
@Bean
public
DruidDataSource
dataSource
()
{
DruidDataSource
ds
=
new
DruidDataSource
();
ds
.
setDriverClassName
(
"com.mysql.cj.jdbc.Driver"
);
ds
.
setUrl
(
"jdbc:mysql://localhost:3306/a_test?characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai"
);
ds
.
setUsername
(
"root"
);
ds
.
setPassword
(
"root"
);
ds
.
setInitialSize
(
5
);
return
ds
;
}
@Bean
public
DataSourceTransactionManager
dataSourceTransactionManager
()
{
return
new
DataSourceTransactionManager
(
dataSource
());
}
@Bean
public
SqlSessionFactory
sqlSessionFactory
()
throws
Exception
{
SqlSessionFactoryBean
sessionFactory
=
new
SqlSessionFactoryBean
();
sessionFactory
.
setDataSource
(
dataSource
());
sessionFactory
.
setMapperLocations
(
new
PathMatchingResourcePatternResolver
()
.
getResources
(
"classpath:bean/UserMapper.xml"
));
sessionFactory
.
setTypeAliasesPackage
(
"com/Domain"
);
// 扫包
// 配置路径
sessionFactory
.
setConfigLocation
(
new
ClassPathResource
(
"sqlMapConfig.xml"
));
return
sessionFactory
.
getObject
();
}
@Bean
public
MapperScannerConfigurer
mapperScannerConfigurer
()
{
MapperScannerConfigurer
mScannerConfigurer
=
new
MapperScannerConfigurer
();
mScannerConfigurer
.
setSqlSessionFactoryBeanName
(
"sqlSessionFactory"
);
mScannerConfigurer
.
setBasePackage
(
"com/Mapper"
);
// 扫mapper
return
mScannerConfigurer
;
}
}
\ No newline at end of file
祁成成_Mybatis2/src/main/java/com/Config/MyTypeHandler.java
0 → 100644
View file @
8c0dcd0a
package
com
.
Config
;
package
com
.
Config
;
import
java.sql.CallableStatement
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
org.apache.ibatis.type.JdbcType
;
import
org.apache.ibatis.type.MappedJdbcTypes
;
import
org.apache.ibatis.type.MappedTypes
;
import
org.apache.ibatis.type.TypeHandler
;
import
com.Domain.Context
;
import
com.alibaba.fastjson.JSONObject
;
@MappedTypes
({
Context
.
class
})
@MappedJdbcTypes
({
JdbcType
.
VARCHAR
})
public
class
MyTypeHandler
implements
TypeHandler
<
Context
>
{
@Override
public
void
setParameter
(
PreparedStatement
preparedStatement
,
int
i
,
Context
user
,
JdbcType
jdbcType
)
throws
SQLException
{
System
.
out
.
println
(
"自定义类型转换"
);
String
s
=
JSONObject
.
toJSONString
(
user
);
preparedStatement
.
setString
(
i
,
s
);
}
@Override
public
Context
getResult
(
ResultSet
rs
,
String
columnName
)
throws
SQLException
{
System
.
out
.
println
(
"自定义类型转换"
);
String
string
=
rs
.
getString
(
columnName
);
return
JSONObject
.
parseObject
(
string
,
Context
.
class
);
}
@Override
public
Context
getResult
(
ResultSet
rs
,
int
columnIndex
)
throws
SQLException
{
System
.
out
.
println
(
"自定义类型转换"
);
String
string
=
rs
.
getString
(
columnIndex
);
return
JSONObject
.
parseObject
(
string
,
Context
.
class
);
}
@Override
public
Context
getResult
(
CallableStatement
cs
,
int
columnIndex
)
throws
SQLException
{
System
.
out
.
println
(
"自定义类型转换"
);
String
string
=
cs
.
getString
(
columnIndex
);
return
JSONObject
.
parseObject
(
string
,
Context
.
class
);
}
}
祁成成_Mybatis2/src/main/java/com/Controller/Controller.java
0 → 100644
View file @
8c0dcd0a
package
com
.
Controller
;
package
com
.
Controller
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.Service.UserService
;
@RestController
public
class
Controller
{
@Autowired
UserService
userService
;
@GetMapping
(
"insert"
)
public
void
transactionTestWithInsert
()
{
userService
.
insert
();
}
@GetMapping
(
"select"
)
public
ResponseEntity
transactionTestWithSelect
()
{
return
ResponseEntity
.
ok
(
userService
.
findUser
().
size
());
}
}
祁成成_Mybatis2/src/main/java/com/Domain/Context.java
0 → 100644
View file @
8c0dcd0a
package
com
.
Domain
;
package
com
.
Domain
;
import
lombok.Builder
;
import
lombok.EqualsAndHashCode
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.ToString
;
import
lombok.experimental.Accessors
;
@ToString
@Builder
@Getter
@Setter
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
public
class
Context
{
public
Context
()
{
}
public
Context
(
String
id
,
String
username
,
String
password
,
String
context
)
{
this
.
id
=
id
;
this
.
username
=
username
;
this
.
password
=
password
;
this
.
context
=
context
;
}
private
String
id
;
private
String
username
;
private
String
password
;
private
String
context
;
}
\ No newline at end of file
祁成成_Mybatis2/src/main/java/com/Domain/User.java
0 → 100644
View file @
8c0dcd0a
package
com
.
Domain
;
package
com
.
Domain
;
import
lombok.Builder
;
import
lombok.EqualsAndHashCode
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.ToString
;
import
lombok.experimental.Accessors
;
@ToString
@Builder
@Getter
@Setter
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
public
class
User
{
public
User
()
{
}
public
User
(
String
id
,
String
username
,
String
password
,
Context
context
)
{
this
.
id
=
id
;
this
.
username
=
username
;
this
.
password
=
password
;
this
.
context
=
context
;
}
private
String
id
;
private
String
username
;
private
String
password
;
private
Context
context
;
}
\ No newline at end of file
祁成成_Mybatis2/src/main/java/com/Mapper/UserMapper.java
0 → 100644
View file @
8c0dcd0a
package
com
.
Mapper
;
package
com
.
Mapper
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Param
;
import
com.Domain.*
;
public
interface
UserMapper
{
public
void
insert
(
User
user
);
public
User
selectUser
(
@Param
(
value
=
"username"
)
String
userName
);
public
List
<
User
>
selectAll
();
}
\ No newline at end of file
祁成成_Mybatis2/src/main/java/com/Service/UserService.java
0 → 100644
View file @
8c0dcd0a
package
com
.
Service
;
package
com
.
Service
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Isolation
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.Domain.Context
;
import
com.Domain.User
;
import
com.Mapper.UserMapper
;
@Service
public
class
UserService
{
@Autowired
private
UserMapper
userMapper
;
// 脏读
@Transactional
(
isolation
=
Isolation
.
READ_UNCOMMITTED
)
public
void
insert
()
{
User
user
=
new
User
();
user
.
setUsername
(
"user"
);
user
.
setPassword
(
"123456"
);
Context
build
=
Context
.
builder
().
id
(
"123456"
).
username
(
"aaa"
).
password
(
"123456"
)
.
context
(
"hello world"
).
build
();
user
.
setContext
(
build
);
userMapper
.
insert
(
user
);
try
{
Thread
.
sleep
(
10000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
throw
new
RuntimeException
();
}
public
List
<
User
>
findUser
()
{
return
userMapper
.
selectAll
();
}
public
User
selectUser
(
String
username
)
{
return
userMapper
.
selectUser
(
username
);
}
}
祁成成_Mybatis2/src/main/resources/bean/UserMapper.xml
0 → 100644
View file @
8c0dcd0a
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD com.Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.Mapper.UserMapper"
>
<!--mapper -->
<resultMap
type=
"user"
id=
"userList"
>
<!-- type为返回列表元素的类全名或别名 -->
<result
column=
"id"
property=
"id"
/>
<result
column=
"username"
property=
"username"
/>
<result
column=
"password"
property=
"password"
/>
<result
column=
"context"
property=
"context"
typeHandler=
"com.Config.MyTypeHandler"
/>
</resultMap>
<insert
id=
"insert"
parameterType=
"user"
>
insert into users(id,username,
password,context) values(#{id}, #{username}, #{password},#{context})
</insert>
<select
id=
"selectUser"
parameterType=
"String"
resultType=
"user"
>
SELECT * FROM users WHERE username = #{username}
</select>
<select
id=
"selectAll"
resultMap=
"userList"
>
SELECT * FROM users
</select>
</mapper>
\ No newline at end of file
祁成成_Mybatis2/src/main/resources/config/application.yml
0 → 100644
View file @
8c0dcd0a
spring
:
spring
:
application
:
name
:
Application
profiles
:
active
:
preprodtest
info
:
project
:
version
:
1.0
#project.version# kerberosprod preprod
application
:
祁成成_Mybatis2/src/main/resources/sqlMapConfig.xml
0 → 100644
View file @
8c0dcd0a
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD com.Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting
name=
"defaultStatementTimeout"
value=
"25000"
/>
</settings>
<typeHandlers>
<typeHandler
handler=
"com.Config.MyTypeHandler"
jdbcType=
"VARCHAR"
javaType=
"com.Domain.Context"
/>
</typeHandlers>
<plugins>
<plugin
interceptor=
"com.Interceptor.QueryInterceptor"
/>
</plugins>
</configuration>
\ No newline at end of file
祁成成_Mybatis2/src/test/java/transaction/MybatisTest.java
0 → 100644
View file @
8c0dcd0a
package
transaction
;
package
transaction
;
import
java.util.List
;
import
org.apache.ibatis.session.ExecutorType
;
import
org.apache.ibatis.session.SqlSession
;
import
org.apache.ibatis.session.SqlSessionFactory
;
import
org.apache.ibatis.session.TransactionIsolationLevel
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
com.Application
;
import
com.Config.AppConfig1
;
import
com.Domain.Context
;
import
com.Domain.User
;
import
com.Mapper.UserMapper
;
import
com.Service.UserService
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
classes
=
{
Application
.
class
})
public
class
MybatisTest
{
private
static
final
AnnotationConfigApplicationContext
context
=
new
AnnotationConfigApplicationContext
(
AppConfig1
.
class
);
@Autowired
UserService
userService
;
/**
* 自定义TypeHandler类
*/
@Test
public
void
test
()
{
List
<
User
>
user
=
userService
.
findUser
();
System
.
out
.
println
(
user
);
}
/**
* Mybatis 批量插入数据库代码
*/
@Test
public
void
insertOptimistic
()
{
SqlSessionFactory
sqlSessionFactory
=
context
.
getBean
(
"sqlSessionFactory"
,
SqlSessionFactory
.
class
);
// sqlSession 开启事务。 ExecutorType.REUSE 保证batch 事务的合理使用,
SqlSession
sqlSession
=
sqlSessionFactory
.
openSession
(
ExecutorType
.
BATCH
,
TransactionIsolationLevel
.
READ_COMMITTED
);
UserMapper
mapper
=
sqlSession
.
getMapper
(
UserMapper
.
class
);
for
(
int
i
=
1
;
i
<
20
;
i
++)
{
User
user
=
new
User
();
user
.
setId
(
String
.
valueOf
(
i
));
user
.
setUsername
(
"user"
+
i
);
user
.
setPassword
(
"123456"
);
Context
build
=
Context
.
builder
().
id
(
user
.
getId
()).
username
(
user
.
getUsername
()).
password
(
user
.
getPassword
())
.
context
(
"context"
).
build
();
build
.
setContext
(
"context:"
+
i
);
user
.
setContext
(
build
);
mapper
.
insert
(
user
);
}
// 刷新
sqlSession
.
flushStatements
();
}
/**
* 提供单对象,和多对象参数, sql打印功能 => 查询
*/
@Test
public
void
selectUser
()
{
String
name
=
"张三"
;
User
user
=
userService
.
selectUser
(
name
);
System
.
out
.
println
(
user
);
}
}
祁成成_Mybatis2/users.sql
0 → 100644
View file @
8c0dcd0a
CREATE
TABLE
`users`
(
CREATE
TABLE
`users`
(
`id`
varchar
(
32
)
DEFAULT
NULL
,
`username`
varchar
(
255
)
DEFAULT
NULL
,
`password`
varchar
(
32
)
DEFAULT
NULL
,
`context`
varchar
(
1000
)
DEFAULT
NULL
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
;
\ No newline at end of file
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