2016-09-23 87 views
3

我剛開始學習Java的Spring MVC框架,我想學習如何處理CRUD操作以及處理表單數據。使用Spring MVC和MySQL數據庫

到目前爲止,網絡上的許多教程主要是關於Spring與Maven的組合,我覺得作爲自學初學者很困惑。

我將不勝感激一些澄清,我將需要完全處理典型的Spring MVC項目中的CRUD操作,並優先使用MySQL。任何相關的教程建議,以獲得相同的將不勝感激。

+0

問題要求我們推薦或找到一本書,工具,軟件庫,教程或其他非本地資源,因爲它們傾向於吸引自以爲是的答案和垃圾郵件,因此無法用於Stack Overflow。相反,請描述問題以及到目前爲止解決問題所做的工作。 –

回答

3

您可以很容易地在Spring Data JPA在春季執行CRUD操作。

假設你有你的實體類YourClass

@Entity 
public class YourClass { 
    @Id 
    private Long id; 
    private String name; 

    // constructors, getters, setters 
} 

剛剛從org.springframework.data.repository.CrudRepository延長你的資料庫界面,有它的工作。

注意:你可以發現org.springframework.data.jpa.repository.JpaRepository更方便,隨意使用它,因爲它也是一個CrudRepository繼承。

public interface YourClassRepository extends JpaRepository<YourClass, Long> { 
    // you already have all the CRUD methods 

    // you can also create own queries just introducing their signatures like below: 
    List<YourClass> findByName(String name); 
} 

,你準備好執行所有CRUD操作作爲savefindAllfindOnedelete(和其他一些方法)。

如果在一個典型的Java應用程序,你必須編寫實現YourClassRepository這裏來春數據JPA的主電源類 - 你不必寫庫接口的任何實現。 Spring Data JPA在運行應用程序時即時創建實現。

Spring Data JPA還允許您通過簡單地聲明其方法簽名來定義其他查詢方法。在這個例子中,它用findByName()方法顯示。這是因爲您在YourClass中有name字段,您可以使用任何其他字段創建此類查詢。

然後,你可以簡單地注入你的資料庫,並在控制器或服務類使用它:

@Controller 
public class YourClassController { 

    @Autowired 
    private YourClassRepository repository; 

    @RequestMapping(value = "entities", method = RequestMethod.GET) 
    public List<YourClass> list() { 
     return repository.findAll(); 
    } 

    @RequestMapping(value = "entities", method = RequestMethod.POST) 
    public YourClass create(@RequestBody YourClass yourClass) { 
     return repository.saveAndFlush(yourClass); 
    } 

    @RequestMapping(value = "entities/{id}", method = RequestMethod.GET) 
    public YourClass get(@PathVariable Long id) { 
     return repository.findOne(id); 
    } 

    @RequestMapping(value = "entities/{id}", method = RequestMethod.PUT) 
    public YourClass update(@PathVariable Long id, @RequestBody YourClass yourClass) { 
     YourClass existingYourClass = repository.findOne(id); 
     BeanUtils.copyProperties(yourClass, existingYourClass); 
     return repository.saveAndFlush(existingYourClass); 
    } 

    @RequestMapping(value = "entities/{id}", method = RequestMethod.DELETE) 
    public YourClass delete(@PathVariable Long id) { 
     YourClass existingYourClass = repository.findOne(id); 
     repository.delete(existingYourClass); 
     return existingYourClass; 
    } 
} 

優秀的教程,您應該完成明白這是Accessing Data with JPA


有關配置MySQL數據庫,首先你需要mysql-connector-java依賴性增加Maven的pom.xml,然後提供數據源的詳細信息是什麼。

您可以通過以下方式執行此操作:在您的配置Spring bean XML文件中或使用Java Annotations。但最簡單的方法來做到這一點是通過使用Spring Boot並提供數據源細節application.properties文件作爲例子:

application.db.driver = com.mysql.jdbc.Driver 
application.db.url = jdbc:mysql://localhost:3306/yourDbName 
application.db.username = username 
application.db.password = password 

終於在Spring Guides,你可以找到很多非常有用的教程中有關使用Spring項目發佈以及Spring團隊推薦的技術,從頭開始並逐步完成它們。他們通常很短(每個指導15-20分鐘),非常清晰。

當然,你必須學習一些像Maven,Gradle,Ant這樣的構建自動化工具 - 它非常方便。這裏是關於如何開始使用Maven的非常初學者的文章:Maven in 5 Minutes

祝你好運與你的學習。