提交 d1bc28bb 编写于 作者: I Ilkka Seppala

#84 Utilize Repository layer from another example

上级 1bcd822c
...@@ -11,6 +11,22 @@ ...@@ -11,6 +11,22 @@
<groupId>com.iluwatar.layers</groupId> <groupId>com.iluwatar.layers</groupId>
<artifactId>layers</artifactId> <artifactId>layers</artifactId>
<dependencies> <dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
......
package com.iluwatar.layers; package com.iluwatar.layers;
import java.util.List;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App { public class App {
public static void main(String[] args) { public static void main(String[] args) {
System.out.println("Hello World!"); ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
PersonDao dao = context.getBean(PersonDao.class);
Person peter = new Person("Peter", "Sagan");
Person nasta = new Person("Nasta", "Kuzminova");
// Add new Person records
dao.save(peter);
dao.save(nasta);
// Count Person records
System.out.println("Count Person records: " + dao.count());
// Print all records
List<Person> persons = (List<Person>) dao.findAll();
for (Person person : persons) {
System.out.println(person);
}
// Find Person by surname
System.out.println("Find by surname 'Sagan': " + dao.findBySurname("Sagan"));
// Update Person
nasta.setName("Barbora");
nasta.setSurname("Spotakova");
dao.save(nasta);
System.out.println("Find by id 2: " + dao.findOne(2L));
// Remove record from Person
dao.delete(2L);
// And finally count records
System.out.println("Count Person records: " + dao.count());
context.close();
} }
} }
package com.iluwatar.layers;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
/**
*
* Person entity
*
*/
@Entity
public class Person {
@Id
@GeneratedValue
private Long id;
private String name;
private String surname;
public Person() {
}
public Person(String name, String surname) {
this.name = name;
this.surname = surname;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", surname=" + surname
+ "]";
}
}
package com.iluwatar.layers;
import java.util.List;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
/**
*
* Person repository
*
*/
@Repository
public interface PersonDao extends CrudRepository<Person, Long> {
public List<Person> findBySurname(String surname);
}
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="jpaData" />
</persistence>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.0.xsd">
<jpa:repositories base-package="com.iluwatar" />
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="org.h2.Driver" />
<property name="url" value="jdbc:h2:~/databases/person" />
<property name="username" value="sa" />
<property name="password" value="sa" />
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.iluwatar" />
<property name="persistenceProvider">
<bean class="org.hibernate.ejb.HibernatePersistence" />
</property>
<property name="jpaProperties">
<map>
<entry key="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
<entry key="hibernate.hbm2ddl.auto" value="create-drop" />
</map>
</property>
</bean>
</beans>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册