首先,创建一个Bean类
/**
* File Name: Person.java
* Date: 2016年3月14日下午3:33:06
*/
import
java.io.Serializable;
import
java.util.Date;
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
javax.persistence.Temporal;
import
javax.persistence.TemporalType;
/**
* ClassName: Person
* date: 2016年3月14日 下午3:33:06
* Description:
*
*
@version
*
@since
JDK 1.8
*/
@Entity
@Table
(name =
"person"
)
public
class
Person
implements
Serializable {
@Id
@GeneratedValue
(strategy = GenerationType.
AUTO
)
@Column
(name =
"personid"
)
private
long
personId
;
private
String
name
;
private
int
age
;
private
String
idCard
;
@Temporal
(TemporalType.
TIMESTAMP
)
private
Date
birthday
;
private
String
nationality
;
public
Date getBirthday() {
return
birthday
;
}
public
void
setBirthday(Date
birthday
) {
this
.
birthday
=
birthday
;
}
public
String getNationality() {
return
nationality
;
}
public
void
setNationality(String
nationality
) {
this
.
nationality
=
nationality
;
}
public
long
getPersonId() {
return
personId
;
}
public
void
setPersonId(
long
personId
) {
this
.
personId
=
personId
;
}
public
String getName() {
return
name
;
}
public
void
setName(String
name
) {
this
.
name
=
name
;
}
public
int
getAge() {
return
age
;
}
public
void
setAge(
int
age
) {
this
.
age
=
age
;
}
public
String getIdCard() {
return
idCard
;
}
public
void
setIdCard(String
idCard
) {
this
.
idCard
=
idCard
;
}
}
创建controller
/**
* File Name: PersonController.java
* Date: 2016年3月14日下午3:43:07
*/
import
org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestMethod;
import
org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.bind.annotation.RestController;
/**
* ClassName: PersonController
* date: 2016年3月14日 下午3:43:07
* Description:
*
*
@version
*
@since
JDK 1.8
*/
@RestController
public
class
PersonController {
@Autowired
private
PersonHandler
personHandler
;
@RequestMapping
(value =
"/api/person/queryperson/"
, method = RequestMethod.
POST
)
public
Object queryPerson(
@RequestParam
(value =
"nationality"
, required =
true
) String
nationality
){
return
personHandler
;
}
}
创建handler
/**
* File Name: PersonHandler.java
* Date: 2016年3月14日下午3:49:01
*/
import
java.util.List;
import
org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component;
import
com.google.gson.FieldNamingPolicy;
import
com.google.gson.Gson;
import
com.google.gson.GsonBuilder;
import
com.google.gson.JsonArray;
import
com.google.gson.JsonObject;
import
com.google.gson.JsonParser;
import
com.huifenqi.privilege.context.domain.Person;
import
com.huifenqi.privilege.dao.PersonRepository;
import
com.huifenqi.privilege.utils.GsonUtils;
/**
* ClassName: PersonHandler
* date: 2016年3月14日 下午3:49:01
* Description:
*
*
@version
*
@since
JDK 1.8
*/
@Component
public
class
PersonHandler {
@Autowired
private
PersonRepository
personRepository
;
public
Object queryPerson(String
nationality
){
List<Person>
persons
=
personRepository
.findPersonByNationality(
nationality
);
Gson
instance
=
new
GsonBuilder()
.serializeNulls()
.setDateFormat(
"yyyy-MM-dd HH:mm:ss"
)
.setFieldNamingPolicy(FieldNamingPolicy.
LOWER_CASE_WITH_UNDERSCORES
)
.create();
JsonArray
js
=
new
JsonArray();
for
(Person
person
:
persons
) {
String
json
=
instance
.toJson(
person
);
JsonParser
parser
=
new
JsonParser();
JsonObject
resJo
=
parser
.parse(
json
).getAsJsonObject();
js
.add(
resJo
);
}
return
js
;
}
}
创建repository
/**
* File Name: PersonRepository.java
* Date: 2016年3月14日下午4:01:21
*/
import
java.util.List;
import
org.springframework.data.jpa.repository.Query;
import
org.springframework.data.repository.CrudRepository;
import
org.springframework.stereotype.Repository;
import
com.huifenqi.privilege.context.domain.Person;
/**
* ClassName: PersonRepository
* date: 2016年3月14日 下午4:01:21
* Description:
*
*
@version
*
@since
JDK 1.8
*/
@Repository
public
interface
PersonRepository
extends
CrudRepository<Person, Long> {
@Query
(
"select p from Person p where nationality=?1"
)
public
List<Person> findPersonByNationality(String
nationality
);
}