【问题标题】:Use of Spring MVC and MySQL databaseSpring MVC 和 MySQL 数据库的使用
【发布时间】:2017-02-01 02:46:49
【问题描述】:

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

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

我希望能对我在一个典型的 Spring MVC 项目中处理 CRUD 操作以及 MySQL 的偏好进行一些澄清。此外,任何相关的教程建议都将受到高度赞赏。

【问题讨论】:

  • 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。

标签: java mysql maven spring-mvc crud


【解决方案1】:

您可以使用 Spring Data JPA 在 Spring 中非常轻松地执行 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);
}

您已准备好以savefindAllfindOnedelete(以及其他一些方法)执行所有 CRUD 操作。

如果在一个典型的 Java 应用程序中,您必须编写一个实现 YourClassRepository 的类,那么 Spring Data 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数据库呢,首先需要在Maven的pom.xml中添加mysql-connector-java依赖,然后提供数据源详情。

您可以通过以下方式执行此操作:在您的配置 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

祝你学习顺利。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-19
    • 2018-09-01
    • 2019-04-01
    • 2013-12-15
    • 1970-01-01
    • 2014-12-11
    • 2018-12-06
    相关资源
    最近更新 更多