使用Spring MVC和MySQL数据库

问题描述:

我刚开始学习Java的Spring MVC框架,我想学习如何处理CRUD操作以及处理表单数据。使用Spring MVC和MySQL数据库

到目前为止,网络上的许多教程主要是关于Spring与Maven的组合,我觉得作为自学初学者很困惑。

我将不胜感激一些澄清,我将需要完全处理典型的Spring MVC项目中的CRUD操作,并优先使用MySQL。任何相关的教程建议,以获得相同的将不胜感激。

+0

问题要求我们推荐或找到一本书,工具,软件库,教程或其他非本地资源,因为它们倾向于吸引自以为是的答案和垃圾邮件,因此无法用于Stack Overflow。相反,请描述问题以及到目前为止解决问题所做的工作。 –

您可以很容易地在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

祝你好运与你的学习。