SpringBoot / Spring Data / Hibernate入门

时间:2017-07-18 10:38:19

标签: java spring eclipse maven spring-data

我刚刚开始实习生职位,我需要做的所有工作都有点不知所措。我从未使用过数据库,也不知道如何开始。我的主管让我将Spring数据与内存数据库连接起来,以编写和删除对象(实际上是任何东西)。我正在使用eclipse并安装了Spring(我认为),但我很困难,不知道从哪里开始并简单化。我之前从未在数据库工作过,而且我的主管似乎一直很忙。

我遇到了这个例子,但是不知道在哪里编写哪些代码,因为它似乎是为经验丰富的程序员解释的:

http://projects.spring.io/spring-data/#quick-start

以下是指南中的一些代码:

@Entity
public class Employee {

    private @Id @GeneratedValue Long id;
    private String firstName, lastName, description;

    private Employee() {}

    public Employee(String firstName, String lastName, String description) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.description = description;
        }
    }

这是在Spring Data首页,它是关于入门的。但我不确定这意味着什么,也不确定如何运行代码或构建什么类。如果我尝试在pam文件中编写代码,它只显示错误,实体不起作用......

3 个答案:

答案 0 :(得分:1)

  1. 首先,在Eclipse中设置Maven(您可以在Google中找到说明,例如here)。

  2. 然后转到start.spring.io并生成项目模板。您需要选择 JPA H2 H2 - 内存数据库)作为依赖项,设置(' com.example'默认情况下)和名称(默认情况下为'demo')。然后单击“生成项目”。将文件保存并解压缩到计算机上的某个目录后,在IDE中打开该项目。

  3. 您会找到一个应用程序类 - DemoApplication。在它旁边创建您的实体类,例如 - Employee。您将保存到数据库并从数据库加载其数据。在此课程中自动生成getters, setterstoString

  4. @Entity
    public class Employee {
    
        @Id 
        @GeneratedValue 
        private Long id;
    
        private String firstName, lastName, description;
    
        private Employee() {}
    
        public Employee(String firstName, String lastName, String description) {
            this.firstName = firstName;
            this.lastName = lastName;
            this.description = description;
        }
    
        // Autogenerate here getters, setters and toString()
    }
    
    1. 然后创建一个“存储库”类,提供对数据库的访问:
    2. public interface EmployeeRepository extends JpaRepository<Employee, Long> {}
      
      1. 在项目中查找DemoApplicationTests课程,编辑它,然后运行:
      2. @RunWith(SpringRunner.class)
        @SpringBootTest
        public class DemoApplicationTests {
        
            // Injecting your repository
            @Autoware
            private EmployeeRepository repo;
        
            @Test
            public void dbTest() {
        
                // Create two employees
                Employee gandalf = new Employee("Gandalf", "Grey", "Wizard");
                Employee frodo = new Employee("Frodo", "Baggins", "Hobbit");
        
                // Save them to DB
                repo.save(Arrays.asList(gandalf, frodo));
        
                // Read them from DB
                List<Employee> employees = repo.findAll();
        
                // Print them
                employees.forEach(System.out::println);
            }
        }
        

        这就是全部!

        更多信息

        Spring Data JPA Project

        Spring Data JPA Reference

        Getting started guide

答案 1 :(得分:0)

如果您以前没有使用过春天,那么您就可以享受美食了。很多初学者都会被Spring的反转控制容器和依赖注入所抛弃。有很多历史教程材料可以在XML配置文件中运行,而大多数开发人员都希望以编程方式工作。最糟糕的是,Spring往往会做很多魔术,但在查看代码时并不总是很明显。

要做的第一件事是确保您的IDE包含正确的插件。当你可以遵循注入类的定义时,可以减少与Spring的一些混淆,这是正确的插件可以为你做的。

就你面前的代码而言,听起来你的设置就是你遇到问题的地方,也许你应该看一下Spring Boot的教程或类似的东西来获得一个有用的应用程序/容器。这个Spring Data启动器假设您已经有一个正在运行的应用程序,并且在将其集成到应用程序中时“启动”。尝试类似Sprint Boot quickstart的内容,也可以查看Actuators以获得不错的现成功能。

至于之前从未使用过数据库,这是一个很大的主题。在某些方面,Spring Data可能会为您节省一些时间,因为对象关系映射(简称ORM)将有助于自动将类实例转换为数据库行。但是当你使用像@Id这样的注释时,你也可能会发现自己开始挣扎于代表你自动神奇地完成的索引和参照完整性等概念。

我会与你的主管一起讨论你在该地区的弱点,而不是沉默地挣扎。积极主动并找到一些数据库101材料并尽可能地阅读这个主题,特别是如果你处于闲置状态,并尊重你的主管可能不得不兼顾其他一些优先事项。一个优秀的开发人员永远不会没有事可做,因为个人改进是一项持续的后台任务,数据库是一项非常核心的技能。

答案 2 :(得分:0)

您可以查看这些链接,了解您可能需要的有用信息 1:http://www.mkyong.com/tutorials/spring-security-tutorials/ 2:https://www.tutorialspoint.com/spring/