diff --git a/Chapter3-2-2/pom.xml b/Chapter3-2-2/pom.xml
new file mode 100755
index 0000000..cdb4d43
--- /dev/null
+++ b/Chapter3-2-2/pom.xml
@@ -0,0 +1,61 @@
+
+
+ 4.0.0
+
+ com.didispace
+ demo
+ 1.0.0
+ jar
+
+ demo
+ Spring Boot project
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.3.2.RELEASE
+
+
+
+
+ UTF-8
+ 1.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+ mysql
+ mysql-connector-java
+ 5.1.21
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
diff --git a/Chapter3-2-2/src/main/java/com/didispace/Application.java b/Chapter3-2-2/src/main/java/com/didispace/Application.java
new file mode 100755
index 0000000..2a14b75
--- /dev/null
+++ b/Chapter3-2-2/src/main/java/com/didispace/Application.java
@@ -0,0 +1,13 @@
+package com.didispace;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class Application {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+
+}
diff --git a/Chapter3-2-2/src/main/java/com/didispace/domain/User.java b/Chapter3-2-2/src/main/java/com/didispace/domain/User.java
new file mode 100644
index 0000000..6afe696
--- /dev/null
+++ b/Chapter3-2-2/src/main/java/com/didispace/domain/User.java
@@ -0,0 +1,58 @@
+package com.didispace.domain;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+/**
+ * @author 程序猿DD
+ * @version 1.0.0
+ * @date 16/3/21 下午3:35.
+ * @blog http://blog.didispace.com
+ */
+@Entity
+public class User {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ @Column(nullable = false)
+ private String name;
+
+ @Column(nullable = false)
+ private Integer age;
+
+ public User(){}
+
+ public User(String name, Integer age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ 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 Integer getAge() {
+ return age;
+ }
+
+ public void setAge(Integer age) {
+ this.age = age;
+ }
+
+}
diff --git a/Chapter3-2-2/src/main/java/com/didispace/domain/UserRepository.java b/Chapter3-2-2/src/main/java/com/didispace/domain/UserRepository.java
new file mode 100644
index 0000000..6bc9442
--- /dev/null
+++ b/Chapter3-2-2/src/main/java/com/didispace/domain/UserRepository.java
@@ -0,0 +1,24 @@
+package com.didispace.domain;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+
+
+/**
+ * @author 程序猿DD
+ * @version 1.0.0
+ * @date 16/3/23 下午2:34.
+ * @blog http://blog.didispace.com
+ */
+public interface UserRepository extends JpaRepository {
+
+ User findByName(String name);
+
+ User findByNameAndAge(String name, Integer age);
+
+ @Query("from User u where u.name=:name")
+ User findUser(@Param("name") String name);
+
+
+}
diff --git a/Chapter3-2-2/src/main/resources/application.properties b/Chapter3-2-2/src/main/resources/application.properties
new file mode 100755
index 0000000..2df621d
--- /dev/null
+++ b/Chapter3-2-2/src/main/resources/application.properties
@@ -0,0 +1,6 @@
+spring.datasource.url=jdbc:mysql://localhost:3306/test
+spring.datasource.username=root
+spring.datasource.password=root
+spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+
+spring.jpa.properties.hibernate.hbm2ddl.auto=create-drop
\ No newline at end of file
diff --git a/Chapter3-2-2/src/test/java/com/didispace/ApplicationTests.java b/Chapter3-2-2/src/test/java/com/didispace/ApplicationTests.java
new file mode 100755
index 0000000..19a04b7
--- /dev/null
+++ b/Chapter3-2-2/src/test/java/com/didispace/ApplicationTests.java
@@ -0,0 +1,59 @@
+package com.didispace;
+
+import com.didispace.domain.User;
+import com.didispace.domain.UserRepository;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.SpringApplicationConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringApplicationConfiguration(Application.class)
+public class ApplicationTests {
+
+ @Autowired
+ private UserRepository userRepository;
+
+ @Test
+ public void test() throws Exception {
+
+ // 创建10条记录
+ userRepository.save(new User("AAA", 10));
+ userRepository.save(new User("BBB", 20));
+ userRepository.save(new User("CCC", 30));
+ userRepository.save(new User("DDD", 40));
+ userRepository.save(new User("EEE", 50));
+ userRepository.save(new User("FFF", 60));
+ userRepository.save(new User("GGG", 70));
+ userRepository.save(new User("HHH", 80));
+ userRepository.save(new User("III", 90));
+ userRepository.save(new User("JJJ", 100));
+
+ // 测试findAll, 查询所有记录
+ Assert.assertEquals(10, userRepository.findAll().size());
+
+ // 测试findByName, 查询姓名为FFF的User
+ Assert.assertEquals(60, userRepository.findByName("FFF").getAge().longValue());
+
+ // 测试findUser, 查询姓名为FFF的User
+ Assert.assertEquals(60, userRepository.findUser("FFF").getAge().longValue());
+
+ // 测试findByNameAndAge, 查询姓名为FFF并且年龄为60的User
+ Assert.assertEquals("FFF", userRepository.findByNameAndAge("FFF", 60).getName());
+
+ // 测试删除姓名为AAA的User
+ userRepository.delete(userRepository.findByName("AAA"));
+
+ // 测试findAll, 查询所有记录, 验证上面的删除是否成功
+ Assert.assertEquals(9, userRepository.findAll().size());
+
+
+
+
+ }
+
+
+}