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

Tom*_*oad 5 java mysql database

假设我有这种Java对象:

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

CarBean car = new CarBean(brand, model, year);
Run Code Online (Sandbox Code Playgroud)

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

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

小智 9

一种常见的方法是使用对象/关系映射 (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; }
}
Run Code Online (Sandbox Code Playgroud)


Sot*_*lis 4

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

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();
Run Code Online (Sandbox Code Playgroud)

不要忘记关闭PreparedStatement某处。

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