ORM 基本思想
ORM(Object Relationship Mapping,對象關係映射)的基本思想:
- 表結構跟類對應;表中字段和累的屬性對應;表中記錄和對象對應;
- 讓javabean的屬性名和類型儘量和數據庫保持一致
- 一條記錄對應一個對象。將這些查詢到的對象放到容器中(List,Set,Map)
將表中的一條記錄封裝到Object數組中
/**
* 測試使用object[]存儲對象
*/
class Demo1{
public Demo1(){
Connection conn = JDBCUtil.getMysqlConn();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement("select empName,salary,age from emp where id = ?");
ps.setObject(1,1);
rs = ps.executeQuery();
//三個屬性用三行,封裝一條記錄
Object[] obj = new Object[3];
//多條記錄用容器
//List<Object[]> list = new ArrayList<Object[]>();
while(rs.next()){
//System.out.println(rs.getString("empName") + "--" + rs.getDouble(2));
obj[0] = rs.getObject(1);
obj[1] = rs.getObject(2);
obj[2] = rs.getObject(3);
//存入容器
//list.add(obj);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.close(rs,ps,conn);
}
}
}
將表中的一條記錄封裝到map中
/**
* 使用map存一條記錄
*/
class Demo2{
public Demo2(){
Connection conn = JDBCUtil.getMysqlConn();
PreparedStatement ps = null;
ResultSet rs = null;
Map<String,Object> map = new HashMap<String,Object>();
try {
ps = conn.prepareStatement("select empName,salary,age from emp where id = ?");
ps.setObject(1,1);
rs = ps.executeQuery();
while(rs.next()){
map.put("empName",rs.getObject(1));
map.put("salary",rs.getObject(2));
map.put("age",rs.getObject(3));
for(String key : map.keySet()){
System.out.println(key + "--" + map.get(key));
}
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.close(rs,ps,conn);
}
}
}
將表中的一條記錄封裝到javabean對象中
/**
* 使用javabean存一條記錄
*/
class Demo3{
public Demo3(){
Connection conn = JDBCUtil.getMysqlConn();
PreparedStatement ps = null;
ResultSet rs = null;
Emp emp = null;
try {
ps = conn.prepareStatement("select empName,salary,age from emp where id = ?");
ps.setObject(1,1);
rs = ps.executeQuery();
while(rs.next()){
emp = new Emp(rs.getString(1),rs.getDouble(2),rs.getInt(3));
}
System.out.println(emp.getEmpname() + "--" + emp.getSalary() + "--" + emp.getAge());
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.close(rs,ps,conn);
}
}
}