(十七)jdbc使用对象存取数据ORM
以前一直不清楚,如何将一个对象的信息存入数据库中,今天懂了一点,就把它记录下来。
首先明白2个名词ORM与DAO的概念含义。
ORM: object relationship database mapping , 对象与数据库关系的映射。
DAO:database access object , 数据库访问对象。
知道了这2个概念,他们表达的意思是什么?他们都强调数据库和对象,对象与数据库的映射,是不是可以这么理解,数据库中的每一条信息,都是对应着每一个实体类的对象的信息。也就是说对数据库的存取,就是将实体类的每个信息存入数据库中。
就比如说,有一张student表,里面有学生学号(sno)和学生姓名(sname)。还有一个学生类,属性有学生学号(snum)和学生姓名(sname),包括构造方法和get set方法。现在我们实例化一个学生对象 student s1= new student(1001,“刘xx”);显然这个s1学生信息,与数据库的表设计是一一对应的。这不是巧合,而是如此设计的,即数据库表中的字段信息必须和实体类的属性保存一致,这样才将整个对象信息存入数据库中。不多说了,直接上代码:
//student类
public class student{
private int sno;
private String name;
//构造方法
public student(int sno,String name){ this.sno=sno;this.name = name}
//getset 就不写了。。。。。。
}
//测试类 实例化s1 对象,并将对象传入数据库中。
public static add(student s) {
String sql = "insert into student values (?,?)";
try (
Connection c = DriverManager.getConnection(url, user, password);
PreparedStatement ps = c.prepareStatement(sql);
ps.setInt(1, s.getSno());
ps.setString(1, s.getName());
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
student s1=new student(1001,"liu");
add(student s);
}
即,将对象实例化的信息传入与数据库交互的dao方法里面就行了。
这就是最最简单的 dao 模型了。