X Tutup
Skip to content

Commit b22d2dd

Browse files
committed
iluwatar#55 Repository example skeleton
1 parent cd07c5c commit b22d2dd

File tree

6 files changed

+198
-4
lines changed

6 files changed

+198
-4
lines changed

repository/pom.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,20 @@
1515
<artifactId>junit</artifactId>
1616
<scope>test</scope>
1717
</dependency>
18+
<dependency>
19+
<groupId>org.springframework.data</groupId>
20+
<artifactId>spring-data-jpa</artifactId>
21+
<version>1.7.1.RELEASE</version>
22+
</dependency>
23+
<dependency>
24+
<groupId>org.hibernate</groupId>
25+
<artifactId>hibernate-entitymanager</artifactId>
26+
<version><!-- 4.2.0.Final -->5.0.0.CR2</version>
27+
</dependency>
28+
<dependency>
29+
<groupId>org.postgresql</groupId>
30+
<artifactId>postgresql</artifactId>
31+
<version>9.4-1200-jdbc4</version>
32+
</dependency>
1833
</dependencies>
1934
</project>
Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,52 @@
11
package com.iluwatar;
22

3+
import java.util.List;
4+
5+
import org.springframework.context.support.ClassPathXmlApplicationContext;
6+
7+
/**
8+
* Standalone application with Spring Data JPA, Hibernate and Maven
9+
*
10+
* @author DevCrumb.com
11+
*/
312
public class App {
4-
5-
public static void main( String[] args ) {
6-
System.out.println( "Hello World!" );
7-
}
13+
public static void main(String[] args) {
14+
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
15+
"applicationContext.xml");
16+
PersonDao dao = context.getBean(PersonDao.class);
17+
18+
Person peter = new Person("Peter", "Sagan");
19+
Person nasta = new Person("Nasta", "Kuzminova");
20+
21+
// Add new Person records
22+
dao.save(peter);
23+
dao.save(nasta);
24+
25+
// Count Person records
26+
System.out.println("Count Person records: " + dao.count());
27+
28+
// Print all records
29+
List<Person> persons = (List<Person>) dao.findAll();
30+
for (Person person : persons) {
31+
System.out.println(person);
32+
}
33+
34+
// Find Person by surname
35+
System.out.println("Find by surname 'Sagan': " + dao.findBySurname("Sagan"));
36+
37+
// Update Person
38+
nasta.setName("Barbora");
39+
nasta.setSurname("Spotakova");
40+
dao.save(nasta);
41+
42+
System.out.println("Find by id 2: " + dao.findOne(2L));
43+
44+
// Remove record from Person
45+
dao.delete(2L);
46+
47+
// And finally count records
48+
System.out.println("Count Person records: " + dao.count());
49+
50+
context.close();
51+
}
852
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.iluwatar;
2+
3+
import javax.persistence.Entity;
4+
import javax.persistence.GeneratedValue;
5+
import javax.persistence.Id;
6+
7+
/**
8+
* Person entity
9+
*
10+
* @author DevCrumb.com
11+
*/
12+
@Entity
13+
public class Person {
14+
15+
@Id
16+
@GeneratedValue
17+
private Long id;
18+
private String name;
19+
private String surname;
20+
21+
public Person() {
22+
}
23+
24+
public Person(String name, String surname) {
25+
this.name = name;
26+
this.surname = surname;
27+
}
28+
29+
public Long getId() {
30+
return id;
31+
}
32+
33+
public void setId(Long id) {
34+
this.id = id;
35+
}
36+
37+
public String getName() {
38+
return name;
39+
}
40+
41+
public void setName(String name) {
42+
this.name = name;
43+
}
44+
45+
public String getSurname() {
46+
return surname;
47+
}
48+
49+
public void setSurname(String surname) {
50+
this.surname = surname;
51+
}
52+
53+
@Override
54+
public String toString() {
55+
return "Person [id=" + id + ", name=" + name + ", surname=" + surname
56+
+ "]";
57+
}
58+
59+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.iluwatar;
2+
3+
import java.util.List;
4+
5+
import org.springframework.data.repository.CrudRepository;
6+
import org.springframework.stereotype.Repository;
7+
8+
/**
9+
* Person dao interface
10+
*
11+
* @author DevCrumb.com
12+
*/
13+
@Repository
14+
public interface PersonDao extends CrudRepository<Person, Long> {
15+
16+
public List<Person> findBySurname(String surname);
17+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<persistence version="1.0"
3+
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
5+
6+
<persistence-unit name="jpaData" />
7+
8+
</persistence>
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<beans xmlns="http://www.springframework.org/schema/beans"
3+
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
4+
xmlns:security="http://www.springframework.org/schema/security"
5+
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6+
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
7+
xsi:schemaLocation="
8+
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
9+
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.0.xsd">
10+
11+
<!-- Directory to scan for repository classes -->
12+
<jpa:repositories base-package="com.iluwatar" />
13+
14+
<bean id="dataSource"
15+
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
16+
<property name="driverClassName">
17+
<value>org.postgresql.Driver</value>
18+
</property>
19+
<property name="url">
20+
<value>jdbc:postgresql://localhost:5432/postgres</value>
21+
</property>
22+
<property name="username">
23+
<value>postgres</value>
24+
</property>
25+
<property name="password">
26+
<value>ile666</value>
27+
</property>
28+
</bean>
29+
30+
<bean id="entityManagerFactory"
31+
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
32+
<property name="dataSource" ref="dataSource" />
33+
<property name="persistenceUnitName" value="jpaData" />
34+
<property name="jpaVendorAdapter">
35+
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
36+
</property>
37+
<property name="jpaProperties">
38+
<props>
39+
<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
40+
<prop key="hibernate.show_sql">false</prop>
41+
<prop key="hibernate.format_sql">false</prop>
42+
<prop key="hibernate.hbm2ddl.auto">create</prop>
43+
</props>
44+
</property>
45+
</bean>
46+
47+
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
48+
<property name="entityManagerFactory" ref="entityManagerFactory" />
49+
</bean>
50+
51+
</beans>

0 commit comments

Comments
 (0)
X Tutup