十六、ORM(高琪java300集+java从入门到精通笔记)

ORM基本思想

ORM(Object Relationship Mapping)的基本思想

表结构跟类结构对应;表中字段和类的属性对应;表中的记录和对象对应;

让javabean的属性名和类型尽量和数据库保持一致!

一条记录对应一个对象。将这些查询到的对象放到容器中(List,Set,Map)

将表中的一条记录封装到Objec数组中

使用Object[]来封装一条记录

使用List<Object[]>存储多条记录

Connection conn = JDBCUtil.getMysqlConn();

PreparedStatement ps = null;

ResultSet rs = null;

List<Object[]> list= new ArrayList<Object[]>();

try {

ps = conn.prepareStatement(“select empname,salary,age from emp where id>?”);

ps.setObject(1, 1);

rs = ps.executeQuery();

while(rs.next()){

Object[] objs= new Object[3]; //一个Object数组封装了一条记录的信息!

// System.out.println(rs.getString(1)+"–"+rs.getDouble(2)+"–"+rs.getInt(3));

objs[0]= rs.getString(1);

objs[1] = rs.getObject(2);//getDouble(2)

objs[2] = rs.getObject(3);

list.add(objs);

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

JDBCUtil.close(rs, ps, conn);

}

for(Object[] objs:list){

System.out.println(""+objs[0]+objs[1]+objs[2]);

}

将表中的一条记录封装到map中

使用Map来封装一条记录

使用List<Map>,Map<Map>存储多条记录

public static void test01(){

Connection conn = JDBCUtil.getMysqlConn();

PreparedStatement ps = null;

ResultSet rs = null;

Map<String,Object> row = new HashMap<String, Object>();
//使用一个Map封装一条记录

try {

ps = conn.prepareStatement(“select empname,salary,age from emp where id=?”);

ps.setObject(1, 1);

rs = ps.executeQuery();

while(rs.next()){

// System.out.println(rs.getString(1)+"–"+rs.getDouble(2)+"–"+rs.getInt(3));

row.put(“empname”, rs.getObject(1));

row.put(“salary”, rs.getObject(2));

row.put(“age”, rs.getObject(3));

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

JDBCUtil.close(rs, ps, conn);

}

//遍历Map,就是遍历这一行的多列的信息

for(String key:row.keySet()){//Set<key>  keySet

System.out.print(key+"–"+row.get(key)+"\t");

}

}

使用List<Map>存储多条记录

public static void test02(){

Connection conn = JDBCUtil.getMysqlConn();

PreparedStatement ps = null;

ResultSet rs = null;

List<Map<String,Object>> list= new ArrayList<Map<String,Object>>();

try {

ps = conn.prepareStatement(“select empname,salary,age from emp where id>?”);

ps.setObject(1, 1);

rs = ps.executeQuery();

while(rs.next()){

// System.out.println(rs.getString(1)+"–"+rs.getDouble(2)+"–"+rs.getInt(3));

Map<String,Object> row = new HashMap<String, Object>();
//使用一个Map封装一条记录

row.put(“empname”, rs.getObject(1));

row.put(“salary”, rs.getObject(2));

row.put(“age”, rs.getObject(3));

list.add(row);//List

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

JDBCUtil.close(rs, ps, conn);

}

//遍历Map,就是遍历这一行的多列的信息

for(Map<String,Object> row:list){

for(String key:row.keySet()){

System.out.print(key+"–"+row.get(key)+"\t");

}

System.out.println();

}

}

使用Map<Map>存储多条记录

public static void test03(){

Connection conn = JDBCUtil.getMysqlConn();

PreparedStatement ps = null;

ResultSet rs = null;

Map<String,Map<String,Object>> maps = new
HashMap<String,Map<String,Object>>();

try {

ps = conn.prepareStatement(“select empname,salary,age from emp where id>?”);

ps.setObject(1, 1);

rs = ps.executeQuery();

while(rs.next()){

// System.out.println(rs.getString(1)+"–"+rs.getDouble(2)+"–"+rs.getInt(3));

Map<String,Object> row = new HashMap<String, Object>();
//使用一个Map封装一条记录

row.put(“empname”, rs.getObject(1));

row.put(“salary”, rs.getObject(2));

row.put(“age”, rs.getObject(3));

maps.put(rs.getString(1), row);//Map

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

JDBCUtil.close(rs, ps, conn);

}

//遍历Map,就是遍历这一行的多列的信息

for(String empname:maps.keySet()){

Map<String,Object> row = maps.get(empname);

for(String key:row.keySet()){

System.out.print(key+"–"+row.get(key)+"\t");

}

System.out.println();

}

}

将表中的一条记录封装到javabean对象中

使用Javabean对象来封装一条记录

public static void test01(){

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()){

// System.out.println(rs.getString(1)+"–"+rs.getDouble(2)+"–"+rs.getInt(3));

emp = new Emp(rs.getString(1),rs.getDouble(2),rs.getInt(3));//javabean

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

JDBCUtil.close(rs, ps, conn);

}

System.out.println(emp.getEmpname()+"-"+emp.getSalary()+"-"+emp.getAge());

}

使用List<Javabean>存储多条记录

public static void test02(){

Connection conn = JDBCUtil.getMysqlConn();

PreparedStatement ps = null;

ResultSet rs = null;

List<Emp> list= new ArrayList<Emp>();

try {

ps = conn.prepareStatement(“select empname,salary,age from emp where id>?”);

ps.setObject(1, 1);

rs = ps.executeQuery();

while(rs.next()){

Emp emp = new Emp(rs.getString(1),rs.getDouble(2),rs.getInt(3));//JDBC方法

list.add(emp);//List

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

JDBCUtil.close(rs, ps, conn);

}

//遍历List,就是遍历这一行的多列的信息

for(Emp emp:list){

System.out.println(emp.getEmpname()+"-"+emp.getSalary()+"-"+emp.getAge());//javabeanset/get方法

}

}

SORM:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值