假设我有这种Java对象:
String brand = "Toyota";
String model = "Corolla";
int year = "2013";
CarBean car = new CarBean(brand, model, year);
如何将此对象轻松存储到MySQL?我已经成功地完成了JDBC并且表正在工作,但是总会有一些东西给我带来白发。
使用NetBeans和MySQL来回存储/检索数据有什么方法(但至少是半专业的)?
答案 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);
请注意,我会删除一些代码以简化示例