将Java对象存储到MySQL的简单方法?

时间:2013-12-27 00:13:18

标签: java mysql database

假设我有这种Java对象:

String brand = "Toyota";
String model = "Corolla";
int year = "2013";

CarBean car = new CarBean(brand, model, year);

如何将此对象轻松存储到MySQL?我已经成功地完成了JDBC并且表正在工作,但是总会有一些东西给我带来白发。

使用NetBeans和MySQL来回存储/检索数据有什么方法(但至少是半专业的)?

3 个答案:

答案 0 :(得分:4)

一种常见的方法是使用对象/关系映射(ORM)框架,例如Hibernate

然后,您可以使用注释(Hibernate注释或JPA注释)来完成映射。 StackOverflow答案的全部细节也很复杂,但对于您的示例,它非常简单:

package myapp;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "car")
public class Car {
    private Long id;
    private String brand;
    private String model;
    private Integer year;

    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    public Long getId() { return id; }

    public void setId(Long id) { this.id = id; }

    @Column(name = "brand")
    public String getBrand() { return brand; }

    public void setBrand(String brand) { this.brand = brand; }

    @Column(name = "model")
    public String getModel() { return model; }

    public void setModel(String model) { this.model = model; }

    @Column(name = "year")
    public Integer getYear() { return year; }

    public void setYear(Integer year) { this.year = year; }
}

答案 1 :(得分:2)

在数据库中创建一个表,例如名为Cars的表,其格式适合您的域类CarBean。然后使用PreparedStatement插入行。

Connection con = ... // get a connection
PreparedStatement ps = con.prepareStatement("INSERT INTO Cars (brand, model, year) VALUES (?, ?, ?)");
ps.setString(1, carBean.getBrand());
ps.setString(2, carBean.getModel());
ps.setInt(3, carBean.getYear());
ps.executeUpdate();

不要忘记在某处关闭PreparedStatement

您可以再次使用PreparedStatement检索行。

答案 2 :(得分:2)

您正在寻找的术语是对象关系映射Object-relational mapping (ORM或有时称为O / R Mapping)它将您的Plain旧Java代码映射到任何RDBMS表。

Hibernate的一个例子,

你有这个POJO。

    @Entity
    @Table(name = "car")
    public class Car {

        @Id
        @Column(name = "id")
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;
        @Column
        private String brand;
        @Column
        private String model;

        public Long getId() { return id; }

        public void setId(Long id) { this.id = id; }

        public String getBrand() { return brand; }

        public void setBrand(String brand) { this.brand = brand; }

        public String getModel() { return model; }

        public void setModel(String model) { this.model = model; }

    }

现在要坚持使用Hibernate,我们所要做的就是。

Car car = new Car();
car.setBrand("BRAND");
car.setModel("MODEL");
session.save(car);

请注意,我会删除一些代码以简化示例