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);
}
}
}