diff --git a/.gitignore b/.gitignore
index 9c9642b1d..a3e40b873 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ target/*
.idea
*.iml
/target
+/build/
diff --git a/pom.xml b/pom.xml
index e15e6ab78..6ce30964e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -244,13 +244,19 @@
-
+
+ mysql
+ mysql-connector-java
+ ${mysql.version}
+
+
@@ -344,20 +350,6 @@
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.0
-
-
-
-
- true
- ${java.version}
- ${java.version}
- true
-
-
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcOwnerRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcOwnerRepositoryImpl.java
index 31839ad12..8fe77b679 100644
--- a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcOwnerRepositoryImpl.java
+++ b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcOwnerRepositoryImpl.java
@@ -71,7 +71,6 @@ public class JdbcOwnerRepositoryImpl implements OwnerRepository {
* the given name; also loads the {@link Pet Pets} and {@link Visit Visits} for the corresponding owners, if not
* already loaded.
*/
- @Override
public Collection findByLastName(String lastName) throws DataAccessException {
Map params = new HashMap();
params.put("lastName", lastName + "%");
@@ -88,7 +87,6 @@ public class JdbcOwnerRepositoryImpl implements OwnerRepository {
* Loads the {@link Owner} with the supplied id
; also loads the {@link Pet Pets} and {@link Visit Visits}
* for the corresponding owner, if not already loaded.
*/
- @Override
public Owner findById(int id) throws DataAccessException {
Owner owner;
try {
@@ -119,7 +117,6 @@ public class JdbcOwnerRepositoryImpl implements OwnerRepository {
}
}
- @Override
public void save(Owner owner) throws DataAccessException {
BeanPropertySqlParameterSource parameterSource = new BeanPropertySqlParameterSource(owner);
if (owner.isNew()) {
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcPetRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcPetRepositoryImpl.java
index e068791a1..d4e73f026 100644
--- a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcPetRepositoryImpl.java
+++ b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcPetRepositoryImpl.java
@@ -71,7 +71,6 @@ public class JdbcPetRepositoryImpl implements PetRepository {
this.visitRepository = visitRepository;
}
- @Override
public List findPetTypes() throws DataAccessException {
Map params = new HashMap();
return this.namedParameterJdbcTemplate.query(
@@ -80,7 +79,6 @@ public class JdbcPetRepositoryImpl implements PetRepository {
BeanPropertyRowMapper.newInstance(PetType.class));
}
- @Override
public Pet findById(int id) throws DataAccessException {
JdbcPet pet;
try {
@@ -104,7 +102,6 @@ public class JdbcPetRepositoryImpl implements PetRepository {
return pet;
}
- @Override
public void save(Pet pet) throws DataAccessException {
if (pet.isNew()) {
Number newKey = this.insertPet.executeAndReturnKey(
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVetRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVetRepositoryImpl.java
index f6e91cf5e..e506b2a10 100644
--- a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVetRepositoryImpl.java
+++ b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVetRepositoryImpl.java
@@ -58,7 +58,6 @@ public class JdbcVetRepositoryImpl implements VetRepository {
*
* @see org.springframework.samples.petclinic.model.service.ClinicService#shouldFindVets()
*/
- @Override
public Collection findAll() throws DataAccessException {
List vets = new ArrayList();
// Retrieve the list of all vets.
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVisitRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVisitRepositoryImpl.java
index a923b7652..85c59847d 100644
--- a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVisitRepositoryImpl.java
+++ b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVisitRepositoryImpl.java
@@ -55,7 +55,6 @@ public class JdbcVisitRepositoryImpl implements VisitRepository {
}
- @Override
public void save(Visit visit) throws DataAccessException {
if (visit.isNew()) {
Number newKey = this.insertVisit.executeAndReturnKey(
@@ -78,7 +77,6 @@ public class JdbcVisitRepositoryImpl implements VisitRepository {
.addValue("pet_id", visit.getPet().getId());
}
- @Override
public List findByPetId(Integer petId) {
return this.jdbcTemplate.query(
"SELECT id as visit_id, visit_date, description FROM visits WHERE pet_id=?",
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java
index c7398df5b..6bbf4ce01 100644
--- a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java
+++ b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java
@@ -58,7 +58,6 @@ public class JpaOwnerRepositoryImpl implements OwnerRepository {
return query.getResultList();
}
- @Override
public Owner findById(int id) {
// using 'join fetch' because a single query should load both owners and pets
// using 'left join fetch' because it might happen that an owner does not have pets yet
@@ -68,7 +67,6 @@ public class JpaOwnerRepositoryImpl implements OwnerRepository {
}
- @Override
public void save(Owner owner) {
if (owner.getId() == null) {
this.em.persist(owner);
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaPetRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaPetRepositoryImpl.java
index 84d564da4..36236b2b3 100644
--- a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaPetRepositoryImpl.java
+++ b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaPetRepositoryImpl.java
@@ -40,18 +40,15 @@ public class JpaPetRepositoryImpl implements PetRepository {
@PersistenceContext
private EntityManager em;
- @Override
@SuppressWarnings("unchecked")
public List findPetTypes() {
return this.em.createQuery("SELECT ptype FROM PetType ptype ORDER BY ptype.name").getResultList();
}
- @Override
public Pet findById(int id) {
return this.em.find(Pet.class, id);
}
- @Override
public void save(Pet pet) {
if (pet.getId() == null) {
this.em.persist(pet);
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaVetRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaVetRepositoryImpl.java
index e4c222b65..d4711e250 100644
--- a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaVetRepositoryImpl.java
+++ b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaVetRepositoryImpl.java
@@ -41,7 +41,6 @@ public class JpaVetRepositoryImpl implements VetRepository {
private EntityManager em;
- @Override
@Cacheable(value = "vets")
@SuppressWarnings("unchecked")
public Collection findAll() {
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaVisitRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaVisitRepositoryImpl.java
index 3415def96..a94c1dd76 100644
--- a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaVisitRepositoryImpl.java
+++ b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaVisitRepositoryImpl.java
@@ -43,7 +43,6 @@ public class JpaVisitRepositoryImpl implements VisitRepository {
private EntityManager em;
- @Override
public void save(Visit visit) {
if (visit.getId() == null) {
this.em.persist(visit);
@@ -54,7 +53,6 @@ public class JpaVisitRepositoryImpl implements VisitRepository {
}
- @Override
@SuppressWarnings("unchecked")
public List findByPetId(Integer petId) {
Query query = this.em.createQuery("SELECT visit FROM Visit v where v.pets.id= :id");
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataOwnerRepository.java b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataOwnerRepository.java
index ca1f709f6..8f89482cd 100644
--- a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataOwnerRepository.java
+++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataOwnerRepository.java
@@ -31,11 +31,9 @@ import org.springframework.samples.petclinic.repository.OwnerRepository;
*/
public interface SpringDataOwnerRepository extends OwnerRepository, Repository {
- @Override
- @Query("SELECT DISTINCT owner FROM Owner owner left join fetch owner.pets WHERE owner.lastName LIKE :lastName%")
+ @Query("SELECT DISTINCT owner FROM Owner owner left join fetch owner.pets WHERE owner.lastName LIKE :lastName%")
public Collection findByLastName(@Param("lastName") String lastName);
- @Override
@Query("SELECT owner FROM Owner owner left join fetch owner.pets WHERE owner.id =:id")
public Owner findById(@Param("id") int id);
}
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataPetRepository.java b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataPetRepository.java
index 56a413147..6afa1f70f 100644
--- a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataPetRepository.java
+++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataPetRepository.java
@@ -32,7 +32,6 @@ import org.springframework.samples.petclinic.repository.PetRepository;
*/
public interface SpringDataPetRepository extends PetRepository, Repository {
- @Override
@Query("SELECT ptype FROM PetType ptype ORDER BY ptype.name")
List findPetTypes() throws DataAccessException;
}
diff --git a/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java b/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java
index 0d7ff4d0c..3972b8d30 100644
--- a/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java
+++ b/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java
@@ -54,51 +54,43 @@ public class ClinicServiceImpl implements ClinicService {
this.visitRepository = visitRepository;
}
- @Override
@Transactional(readOnly = true)
public Collection findPetTypes() throws DataAccessException {
return petRepository.findPetTypes();
}
- @Override
@Transactional(readOnly = true)
public Owner findOwnerById(int id) throws DataAccessException {
return ownerRepository.findById(id);
}
- @Override
@Transactional(readOnly = true)
public Collection findOwnerByLastName(String lastName) throws DataAccessException {
return ownerRepository.findByLastName(lastName);
}
- @Override
@Transactional
public void saveOwner(Owner owner) throws DataAccessException {
ownerRepository.save(owner);
}
- @Override
@Transactional
public void saveVisit(Visit visit) throws DataAccessException {
visitRepository.save(visit);
}
- @Override
@Transactional(readOnly = true)
public Pet findPetById(int id) throws DataAccessException {
return petRepository.findById(id);
}
- @Override
@Transactional
public void savePet(Pet pet) throws DataAccessException {
petRepository.save(pet);
}
- @Override
@Transactional(readOnly = true)
@Cacheable(value = "vets")
public Collection findVets() throws DataAccessException {
diff --git a/src/main/java/org/springframework/samples/petclinic/web/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/web/OwnerController.java
index ecbbce559..cbb8098fc 100644
--- a/src/main/java/org/springframework/samples/petclinic/web/OwnerController.java
+++ b/src/main/java/org/springframework/samples/petclinic/web/OwnerController.java
@@ -31,6 +31,7 @@ import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.bind.support.SessionStatus;
import org.springframework.web.servlet.ModelAndView;
@@ -96,13 +97,11 @@ public class OwnerController {
// no owners found
result.rejectValue("lastName", "notFound", "not found");
return "owners/findOwners";
- }
- else if (results.size() == 1) {
- // 1 owner found
- owner = results.iterator().next();
- return "redirect:/owners/" + owner.getId();
- }
- else {
+ } else if (results.size() == 1) {
+ // 1 owner found
+ owner = results.iterator().next();
+ return "redirect:/owners/" + owner.getId();
+ } else {
// multiple owners found
model.put("selections", results);
return "owners/ownersList";
@@ -140,4 +139,9 @@ public class OwnerController {
return mav;
}
+ @RequestMapping("/owners/print")
+ @ResponseBody
+ public String printOwner() {
+ return "json";
+ }
}
diff --git a/src/main/java/org/springframework/samples/petclinic/web/PetTypeFormatter.java b/src/main/java/org/springframework/samples/petclinic/web/PetTypeFormatter.java
index 3d47d2201..cadfa5c8a 100644
--- a/src/main/java/org/springframework/samples/petclinic/web/PetTypeFormatter.java
+++ b/src/main/java/org/springframework/samples/petclinic/web/PetTypeFormatter.java
@@ -47,12 +47,10 @@ public class PetTypeFormatter implements Formatter {
this.clinicService = clinicService;
}
- @Override
public String print(PetType petType, Locale locale) {
return petType.getName();
}
- @Override
public PetType parse(String text, Locale locale) throws ParseException {
Collection findPetTypes = this.clinicService.findPetTypes();
for (PetType type : findPetTypes) {
diff --git a/src/main/resources/spring/data-access.properties b/src/main/resources/spring/data-access.properties
index c1cc3cefd..4bf29ae40 100644
--- a/src/main/resources/spring/data-access.properties
+++ b/src/main/resources/spring/data-access.properties
@@ -7,35 +7,35 @@
#-------------------------------------------------------------------------------
# HSQL Settings
-jdbc.driverClassName=org.hsqldb.jdbcDriver
-jdbc.url=jdbc:hsqldb:mem:petclinic
-jdbc.username=sa
-jdbc.password=
+#jdbc.driverClassName=org.hsqldb.jdbcDriver
+#jdbc.url=jdbc:hsqldb:mem:petclinic
+#jdbc.username=sa
+#jdbc.password=
# Properties that control the population of schema and data for a new data source
-jdbc.initLocation=classpath:db/hsqldb/initDB.sql
-jdbc.dataLocation=classpath:db/hsqldb/populateDB.sql
+#jdbc.initLocation=classpath:db/hsqldb/initDB.sql
+#jdbc.dataLocation=classpath:db/hsqldb/populateDB.sql
# Property that determines which database to use with an AbstractJpaVendorAdapter
-jpa.database=HSQL
+#jpa.database=HSQL
jpa.showSql=true
#-------------------------------------------------------------------------------
# MySQL Settings
-#jdbc.driverClassName=com.mysql.jdbc.Driver
-#jdbc.url=jdbc:mysql://localhost:3306/petclinic
-#jdbc.username=root
-#jdbc.password=
+jdbc.driverClassName=com.mysql.jdbc.Driver
+jdbc.url=jdbc:mysql://115.29.227.156:3306/petclinic
+jdbc.username=root
+jdbc.password=Yang
# Properties that control the population of schema and data for a new data source
-#jdbc.initLocation=classpath:db/mysql/initDB.sql
-#jdbc.dataLocation=classpath:db/mysql/populateDB.sql
+jdbc.initLocation=classpath:db/mysql/initDB.sql
+jdbc.dataLocation=classpath:db/mysql/populateDB.sql
# Property that determines which Hibernate dialect to use
# (only applied with "applicationContext-hibernate.xml")
-#hibernate.dialect=org.hibernate.dialect.MySQLDialect
+hibernate.dialect=org.hibernate.dialect.MySQLDialect
# Property that determines which database to use with an AbstractJpaVendorAdapter
-#jpa.database=MYSQL
+jpa.database=MYSQL