Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MaxKey单点登录官方(MaxKeyTop)
Mybatis Jpa Extra
提交
b9758eba
M
Mybatis Jpa Extra
项目概览
MaxKey单点登录官方(MaxKeyTop)
/
Mybatis Jpa Extra
8 个月 前同步成功
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
Mybatis Jpa Extra
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b9758eba
编写于
12月 03, 2020
作者:
MaxKey单点登录官方
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
v2.2
上级
9675591b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
145 addition
and
132 deletion
+145
-132
README.md
README.md
+144
-131
mybatis-jpa-extra-spring-boot-starter/src/test/resources/application.properties
...ng-boot-starter/src/test/resources/application.properties
+1
-1
未找到文件。
README.md
浏览文件 @
b9758eba
...
...
@@ -12,10 +12,13 @@
## 1、JavaBean注释简单
只支持4个注释
> * @Entity
> * @Table
> * @Id
> * @Column
> * @Id
> * @GeneratedValue
> * @Transient
@GeneratedValue有3中策略
...
...
@@ -40,17 +43,14 @@
package
org.apache.mybatis.jpa.test.domain
;
import
java.io.Serializable
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
org.apache.mybatis.jpa.persistence.JpaBaseDomain
;
/*
ID varchar(40) not null,
NAME varchar(60) not null,
...
...
@@ -65,6 +65,7 @@ import org.apache.mybatis.jpa.persistence.JpaBaseDomain;
* @author Crystal.Sea
*
*/
@Entity
@Table
(
name
=
"STUDENTS"
)
public
class
Students
extends
JpaBaseDomain
implements
Serializable
{
/**
...
...
@@ -91,98 +92,73 @@ public class Students extends JpaBaseDomain implements Serializable{
@Column
private
String
stdClass
;
public
Students
()
{
super
();
}
public
String
getStdNo
()
{
return
stdNo
;
}
public
void
setStdNo
(
String
stdNo
)
{
this
.
stdNo
=
stdNo
;
}
public
String
getStdName
()
{
return
stdName
;
}
public
void
setStdName
(
String
stdName
)
{
this
.
stdName
=
stdName
;
}
public
String
getStdGender
()
{
return
stdGender
;
}
public
void
setStdGender
(
String
stdGender
)
{
this
.
stdGender
=
stdGender
;
}
public
int
getStdAge
()
{
return
stdAge
;
}
public
void
setStdAge
(
int
stdAge
)
{
this
.
stdAge
=
stdAge
;
}
public
String
getStdMajor
()
{
return
stdMajor
;
}
public
void
setStdMajor
(
String
stdMajor
)
{
this
.
stdMajor
=
stdMajor
;
}
public
String
getStdClass
()
{
return
stdClass
;
}
public
void
setStdClass
(
String
stdClass
)
{
this
.
stdClass
=
stdClass
;
}
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
@Override
public
String
toString
()
{
return
"Students [stdNo="
+
stdNo
+
", stdName="
+
stdName
+
", stdgender="
+
stdGender
+
", stdAge="
+
stdAge
+
", stdMajor="
+
stdMajor
+
", stdClass="
+
stdClass
+
"]"
;
}
}
```
## 2、单表新增、修改、删除、查询
...
...
@@ -194,7 +170,6 @@ import java.text.SimpleDateFormat;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
org.apache.mybatis.jpa.test.dao.service.StudentsService
;
import
org.apache.mybatis.jpa.test.domain.Students
;
import
org.apache.mybatis.jpa.util.WebContext
;
...
...
@@ -205,7 +180,6 @@ import org.slf4j.LoggerFactory;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.support.ClassPathXmlApplicationContext
;
public
class
MyBatisTestRunner
{
private
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
MyBatisTestRunner
.
class
);
...
...
@@ -297,78 +271,164 @@ public class MyBatisTestRunner {
```
java
package
org.apache.mybatis.jpa.test
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
org.apache.mybatis.jpa.test.dao.service.StudentsService
;
import
org.apache.mybatis.jpa.test.domain.Students
;
import
org.apache.mybatis.jpa.util.WebContext
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.
context.support.ClassPathXmlApplicationContext
;
import
org.springframework.
test.context.junit4.SpringRunner
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
classes
=
MybatisJpaApplication
.
class
)
public
class
MybatisJpaApplicationTest
{
private
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
MybatisJpaApplicationTest
.
class
);
@Autowired
StudentsService
studentsService
;
@Autowired
org
.
apache
.
ibatis
.
session
.
SqlSessionFactory
SqlSessionFactory
;
public
class
MyBatisTestRunner
{
@Autowired
private
ApplicationContext
applicationContext
;
@Before
public
void
before
()
{
_logger
.
info
(
"---------------- before"
);
WebContext
.
applicationContext
=
applicationContext
;
}
@Test
public
void
insert
()
throws
Exception
{
_logger
.
info
(
"insert..."
);
Students
student
=
new
Students
();
student
.
setStdNo
(
"10024"
);
student
.
setStdGender
(
"M"
);
student
.
setStdName
(
"司马昭"
);
student
.
setStdAge
(
20
);
student
.
setStdMajor
(
"政治"
);
student
.
setStdClass
(
"4"
);
studentsService
.
insert
(
student
);
Thread
.
sleep
(
1000
);
studentsService
.
remove
(
student
.
getId
());
}
private
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
MyBatisTestRunner
.
class
);
@Test
public
void
get
()
throws
Exception
{
_logger
.
info
(
"get..."
);
Students
student
=
studentsService
.
get
(
"921d3377-937a-4578-b1e2-92fb23b5e512"
);
System
.
out
.
println
(
"Students "
+
student
);
_logger
.
info
(
"Students "
+
student
);
}
public
static
ApplicationContext
context
;
@Test
public
void
remove
()
throws
Exception
{
_logger
.
info
(
"remove..."
);
Students
student
=
new
Students
();
student
.
setId
(
"921d3377-937a-4578-b1e2-92fb23b5e512"
);
studentsService
.
remove
(
student
.
getId
());
}
@Test
public
void
batchDelete
()
throws
Exception
{
_logger
.
info
(
"batchDelete..."
);
List
<
String
>
idList
=
new
ArrayList
<
String
>();
idList
.
add
(
"8584804d-b5ac-45d2-9f91-4dd8e7a090a7"
);
idList
.
add
(
"ab7422e9-a91a-4840-9e59-9d911257c918"
);
idList
.
add
(
"12b6ceb8-573b-4f01-ad85-cfb24cfa007c"
);
idList
.
add
(
"dafd5ba4-d2e3-4656-bd42-178841e610fe"
);
studentsService
.
batchDelete
(
idList
);
}
@Test
public
void
queryPageResults
()
throws
Exception
{
_logger
.
info
(
"queryPageResults..."
);
Students
student
=
new
Students
();
//student.setId("af04d610-6092-481e-9558-30bd63ef783c");
student
.
setStdGender
(
"M"
);
//student.setStdMajor(政治");
student
.
setPageResults
(
10
);
student
.
setPage
(
2
);
_logger
.
info
(
"queryPageResults "
+
service
.
queryPageResults
(
student
));
student
.
setPageSize
(
10
);
student
.
setPageNumber
(
2
);
List
<
Students
>
allListStudents
=
studentsService
.
queryPageResults
(
student
).
getRows
();
for
(
Students
s
:
allListStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
@Test
public
void
queryPageResultsByMapperId
()
throws
Exception
{
_logger
.
info
(
"queryPageResults by mapperId..."
);
Students
student
=
new
Students
();
student
.
setStdGender
(
"M"
);
//student.setStdMajor(政治");
student
.
setPageResults
(
10
);
student
.
setPage
(
2
);
_logger
.
info
(
"queryPageResults by mapperId "
+
service
.
queryPageResults
(
"queryPageResults1"
,
student
));
student
.
setPageSize
(
10
);
student
.
setPageNumber
(
2
);
List
<
Students
>
allListStudents
=
studentsService
.
queryPageResults
(
"queryPageResults1"
,
student
).
getRows
();
for
(
Students
s
:
allListStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
@Test
public
void
findAll
()
{
_logger
.
info
(
"---------------- ALL"
);
List
<
Students
>
allListStudents
=
studentsService
.
findAll
();
for
(
Students
s
:
allListStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
}
@Before
public
void
initSpringContext
(){
if
(
context
!=
null
)
return
;
_logger
.
info
(
"init Spring Context..."
);
SimpleDateFormat
sdf_ymdhms
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
String
startTime
=
sdf_ymdhms
.
format
(
new
Date
());
package
org.apache.mybatis.jpa.test
;
try
{
MyBatisTestRunner
runner
=
new
MyBatisTestRunner
();
runner
.
init
();
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
_logger
.
info
(
"-- --Init Start at "
+
startTime
+
" , End at "
+
sdf_ymdhms
.
format
(
new
Date
()));
import
com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder
;
import
javax.sql.DataSource
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
@Configuration
public
class
MybatisJpaConfig
{
private
int
port
;
public
int
getPort
()
{
return
port
;
}
public
void
setPort
(
int
port
)
{
this
.
port
=
port
;
}
@Bean
@Primary
@ConfigurationProperties
(
"spring.datasource"
)
public
DataSource
dataSource
()
{
return
DruidDataSourceBuilder
.
create
().
build
();
}
//Initialization ApplicationContext for Project
public
void
init
(){
_logger
.
info
(
"init ..."
);
context
=
new
ClassPathXmlApplicationContext
(
new
String
[]
{
"spring/applicationContext.xml"
});
WebContext
.
applicationContext
=
context
;
service
=(
StudentsService
)
WebContext
.
getBean
(
"studentsService"
);
}
}
```
...
...
@@ -439,69 +499,22 @@ public class MyBatisTestRunner {
```
## 5、Spring
XML
配置
## 5、Spring
Boot
配置
```
xml
<tx:annotation-driven
transaction-manager=
"txManager"
/>
<bean
id=
"txManager"
class=
"org.springframework.jdbc.datasource.DataSourceTransactionManager"
>
<property
name=
"dataSource"
ref=
"dataSource"
/>
</bean>
<!-- enable autowire -->
<context:annotation-config
/>
<!-- enable transaction demarcation with annotations
<tx:annotation-driven />-->
<!--<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">-->
<bean
id=
"sqlSessionFactory"
class=
"org.apache.mybatis.jpa.MyBatisSessionFactoryBean"
>
<property
name=
"timeout"
value=
"30"
/>
<property
name=
"dataSource"
ref=
"dataSource"
/>
<property
name=
"mapperLocations"
value=
"classpath*:/org/apache/mybatis/jpa/test/dao/persistence/xml/mysql/*.xml"
/>
<property
name=
"typeAliasesPackage"
value=
"
org.apache.mybatis.jpa.test.domain,
"
/>
<property
name=
"transactionFactory"
>
<bean
class=
"org.apache.ibatis.transaction.managed.ManagedTransactionFactory"
/>
</property>
<property
name=
"interceptors"
>
<list>
<bean
class=
"org.apache.mybatis.jpa.StatementHandlerInterceptor"
>
<property
name=
"dialectString"
value=
"org.apache.mybatis.jpa.dialect.MySQLDialect"
/>
</bean>
</list>
</property>
</bean>
<!-- scan for mappers and let them be autowired -->
<bean
class=
"org.mybatis.spring.mapper.MapperScannerConfigurer"
>
<property
name=
"basePackage"
value=
"
org.apache.mybatis.jpa.test.dao.persistence,
"
/>
</bean>
<!-- enable component scanning (beware that this does not enable mapper scanning!) -->
<context:component-scan
base-package=
"org.apache.mybatis.jpa.test.dao.service"
/>
<bean
class =
"org.apache.mybatis.jpa.id.IdentifierGeneratorFactory"
>
<property
name=
"generatorStrategyMap"
>
<map>
<entry
key=
"serial"
>
<bean
class=
"org.apache.mybatis.jpa.id.SerialGenerator"
>
<property
name=
"ipAddressNodeValue"
value=
"F0-76-1C-B0-26-9C=02,"
/>
</bean></entry>
</map>
</property>
</bean>
<!--
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
-->
```
ini
spring.main.web-application-type
=
NONE
#
spring.datasource.username
=
root
spring.datasource.password
=
maxkey
spring.datasource.url
=
jdbc:mysql://localhost/test?autoReconnect=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.driver-class-name
=
com.mysql.jdbc.Driver
spring.datasource.type
=
com.alibaba.druid.pool.DruidDataSource
mybatis.type-aliases-package
=
org.apache.mybatis.jpa.test.domain
mybatis.mapper-locations
=
classpath*:/org/apache/mybatis/jpa/test/dao/persistence/xml/mysql/*.xml
mybatis.table-column-escape
=
true
#
mybatis.table-column-escape-char
=
`
```
...
...
mybatis-jpa-extra-spring-boot-starter/src/test/resources/application.properties
浏览文件 @
b9758eba
...
...
@@ -10,4 +10,4 @@ spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
mybatis.type-aliases-package
=
org.apache.mybatis.jpa.test.domain
mybatis.mapper-locations
=
classpath*:/org/apache/mybatis/jpa/test/dao/persistence/xml/mysql/*.xml
mybatis.table-column-escape
=
true
mybatis.table-column-escape-char
=
`
\ No newline at end of file
#
mybatis.table-column-escape-char
=
`
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录