ORM的使用

来源:互联网 发布:农村淘宝申请报名网址 编辑:程序博客网 时间:2024/05/30 07:14

ORM(Object Relationship Mapping)的基本思想
表结构跟类对应;
表中字段和类的属性对应;
表中记录和对象对应;

让javabean的属性名和类型尽量和数据库保持一致!
一条记录对应一个对象。将这些查询到的对象放到容器中(List,Set,Map)

将表中的一条记录封装到Object数组中
将表中的一条记录封装到map中
将表中的一条记录封装到javabean对象中**


示例1:将表中的一条记录封装到Object数组中

package com.lgd.orm;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;/** * 使用Object数组来封装一条记录 * @author liguodong * */public class Demo01 {    public static void main(String[] args) {        Connection connection = JDBCUtil2.getMysqlConn();        PreparedStatement preparedStatement = null;        ResultSet resultSet = null;        Object[] objects = null;        try {            preparedStatement = connection.prepareStatement("select enpname,salary,age from emp where id=?");            //preparedStatement.setObject(1, 2);            preparedStatement.setInt(1, 2);            resultSet = preparedStatement.executeQuery();            objects = new Object[3];//一个Object数组封装了一条记录的信息!            while(resultSet.next())            {                //System.out.println(resultSet.getString(1));                objects[0] = resultSet.getObject(1);                objects[1] = resultSet.getObject(2);                objects[2] = resultSet.getObject(3);            }        } catch (SQLException e) {            e.printStackTrace();        }finally{            JDBCUtil2.close(resultSet,preparedStatement,connection);        }        System.out.println(objects[0]+"--"+objects[1]+"--"+objects[2]);         }}
package com.lgd.orm;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;/** * 使用List<Object[]>存储多条记录 * @author liguodong * */public class Demo02 {    public static void main(String[] args) {        Connection connection = JDBCUtil2.getMysqlConn();        PreparedStatement preparedStatement = null;        ResultSet resultSet = null;        //存放多条记录        List<Object[]> list = new ArrayList<Object[]>();        try {            preparedStatement = connection.prepareStatement("select enpname,salary,age from emp where id>=?");            //preparedStatement.setObject(1, 2);            preparedStatement.setInt(1, 2);            resultSet = preparedStatement.executeQuery();            while(resultSet.next())            {                Object[] objects = new Object[3];//一个Object数组封装了一条记录的信息!                //System.out.println(resultSet.getString(1));                objects[0] = resultSet.getObject(1);                objects[1] = resultSet.getObject(2);                objects[2] = resultSet.getObject(3);                list.add(objects);            }        } catch (SQLException e) {            e.printStackTrace();        }finally{            JDBCUtil2.close(resultSet,preparedStatement,connection);        }           for (Object[] objects : list) {            System.out.println(objects[0]+"--"+objects[1]+"--"+objects[2]);        }    }}

运行结果:
王二狗–30000.0–4
李大钊–35000.0–5

示例2:将表中的一条记录封装到map中

package com.lgd.orm;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.HashMap;import java.util.Map;/** * 使用map来封装一条记录 * @author liguodong * */public class Demo03 {    public static void main(String[] args) {        Connection connection = JDBCUtil2.getMysqlConn();        PreparedStatement preparedStatement = null;        ResultSet resultSet = null;        Map<String,Object> map = new HashMap<String, Object>();//使用一个map封装了一条记录的信息!        try {            preparedStatement = connection.prepareStatement("select enpname,salary,age from emp where id=?");            //preparedStatement.setObject(1, 2);            preparedStatement.setInt(1, 2);            resultSet = preparedStatement.executeQuery();            while(resultSet.next())            {                //System.out.println(resultSet.getString(1));                map.put("empname", resultSet.getObject(1));                map.put("salary", resultSet.getObject(2));                map.put("age", resultSet.getObject(3));            }        } catch (SQLException e) {            e.printStackTrace();        }finally{            JDBCUtil2.close(resultSet,preparedStatement,connection);        }        //遍历Map,就是遍历这一行的多列的信息        for (String key : map.keySet()) {            System.out.println(key+"--"+map.get(key)+"\t");        }    }}

运行结果:
age–4
empname–王二狗
salary–30000.0

package com.lgd.orm;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * 使用List<Map<String,Object>>来封装多条记录 * @author liguodong * */public class Demo04 {    public static void main(String[] args) {        Connection connection = JDBCUtil2.getMysqlConn();        PreparedStatement preparedStatement = null;        ResultSet resultSet = null;        List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();        try {            preparedStatement = connection.prepareStatement("select enpname,salary,age from emp where id>=?");            //preparedStatement.setObject(1, 2);            preparedStatement.setInt(1, 2);            resultSet = preparedStatement.executeQuery();            while(resultSet.next())            {                Map<String,Object> map = new HashMap<String, Object>();//使用一个map封装了一条记录的信息!                //System.out.println(resultSet.getString(1));                map.put("empname", resultSet.getObject(1));                map.put("salary", resultSet.getObject(2));                map.put("age", resultSet.getObject(3));                list.add(map);            }        } catch (SQLException e) {            e.printStackTrace();        }finally{            JDBCUtil2.close(resultSet,preparedStatement,connection);        }        //遍历List<Map<String,Object>>        for (Map<String, Object> map : list) {            for (String key : map.keySet()) {                System.out.print(key+":"+map.get(key)+"\t");            }               System.out.println();        }    }}

运行结果:
age:4 empname:王二狗 salary:30000.0
age:5 empname:李大钊 salary:35000.0

package com.lgd.orm;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.HashMap;import java.util.Map;/** * 使用Map<Integer,Map<String,Object>>来封装多条记录 * @author liguodong * */public class Demo05 {    public static void main(String[] args) {        Connection connection = JDBCUtil2.getMysqlConn();        PreparedStatement preparedStatement = null;        ResultSet resultSet = null;        Map<Integer,Map<String,Object>> maps = new HashMap<Integer,Map<String,Object>>();        try {            preparedStatement = connection.prepareStatement("select id,enpname,salary,age from emp where id>=?");            //preparedStatement.setObject(1, 2);            preparedStatement.setInt(1, 2);            resultSet = preparedStatement.executeQuery();            while(resultSet.next())            {                Map<String,Object> map = new HashMap<String, Object>();//使用一个map封装了一条记录的信息!                //System.out.println(resultSet.getString(1));                map.put("empname", resultSet.getObject(2));                map.put("salary", resultSet.getObject(3));                map.put("age", resultSet.getObject(4));                maps.put((Integer)resultSet.getObject(1),map);            }        } catch (SQLException e) {            e.printStackTrace();        }finally{            JDBCUtil2.close(resultSet,preparedStatement,connection);        }        //遍历Map<Integer,Map<String,Object>>        for (Integer id : maps.keySet()) {            for (String key : maps.get(id).keySet()) {                System.out.print(key+":"+maps.get(id).get(key)+"\t");            }               System.out.println();        }    }}

运行结果:
age:4 empname:王二狗 salary:30000.0
age:5 empname:李大钊 salary:35000.0

示例3:将表中的一条记录封装到javabean对象中

package com.lgd.orm;import java.sql.Date;public class Emp { //表结构和类对应    private Integer id;    private String empname;    private Integer age;    private Double salary;    private Date birthday;    private Integer deptId;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getEmpname() {        return empname;    }    public void setEmpname(String empname) {        this.empname = empname;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    public Double getSalary() {        return salary;    }    public void setSalary(Double salary) {        this.salary = salary;    }    public Date getBirthday() {        return birthday;    }    public void setBirthday(Date birthday) {        this.birthday = birthday;    }    public Integer getDeptId() {        return deptId;    }    public void setDeptId(Integer deptId) {        this.deptId = deptId;    }    public Emp(Integer id, String empname, Integer age, Double salary,            Date birthday, Integer deptId) {        super();        this.id = id;        this.empname = empname;        this.age = age;        this.salary = salary;        this.birthday = birthday;        this.deptId = deptId;    }    public Emp(String empname, Double salary, Integer age) {        super();        this.empname = empname;        this.age = age;        this.salary = salary;    }    public Emp() {    }}
package com.lgd.orm;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.HashMap;import java.util.Map;/** * 使用Javabean来封装一条记录 * @author liguodong * */public class Demo06 {    public static void main(String[] args) {        Connection connection = JDBCUtil2.getMysqlConn();        PreparedStatement preparedStatement = null;        ResultSet resultSet = null;        Emp emp = null;        try {            preparedStatement = connection.prepareStatement("select enpname,salary,age from emp where id=?");            //preparedStatement.setObject(1, 2);            preparedStatement.setInt(1, 2);            resultSet = preparedStatement.executeQuery();            while(resultSet.next())            {                //System.out.println(resultSet.getString(1));                emp = new Emp(resultSet.getString(1), resultSet.getDouble(2), resultSet.getInt(3));                         }        } catch (SQLException e) {            e.printStackTrace();        }finally{            JDBCUtil2.close(resultSet,preparedStatement,connection);        }        System.out.println(emp.getEmpname()+"--"+emp.getSalary()+"--"+emp.getAge());                }}

运行结果:
王二狗–30000.0–4

package com.lgd.orm;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;/** * 使用List<Emp>来封装多条记录 * @author liguodong * */public class Demo07 {    public static void main(String[] args) {        Connection connection = JDBCUtil2.getMysqlConn();        PreparedStatement preparedStatement = null;        ResultSet resultSet = null;        List<Emp> list = new ArrayList<Emp>();        try {            preparedStatement = connection.prepareStatement("select enpname,salary,age from emp where id>=?");            //preparedStatement.setObject(1, 2);            preparedStatement.setInt(1, 2);            resultSet = preparedStatement.executeQuery();            while(resultSet.next())            {                //System.out.println(resultSet.getString(1));                Emp emp = new Emp(resultSet.getString(1), resultSet.getDouble(2), resultSet.getInt(3));                             list.add(emp);            }        } catch (SQLException e) {            e.printStackTrace();        }finally{            JDBCUtil2.close(resultSet,preparedStatement,connection);        }        for (Emp emp : list) {            System.out.println(emp.getEmpname()+"--"+emp.getSalary()+"--"+emp.getAge());        }    }}

运行结果:
王二狗–30000.0–4
李大钊–35000.0–5

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 牙套粘在牙齿上的松了怎么办 缝的线长在肉里怎么办 小孩喜欢用舌头顶牙齿缝怎么办 1岁多小宝贝全身长红点怎么办 生完胸好涨但很难把奶吸出来怎么办 怀孕快9个月内裤上有白带怎么办 一早起来发现内裤有白色液体怎么办 阴部骚痒白带多白带多小腹痛怎么办 15岁一周鲁了3次怎么办 月经摊迟三天内裤有白带怎么办 怀孕内裤上有黄黄的分泌物怎么办 老公出轨想离婚但舍不得孩子怎么办 老婆出轨离婚又舍不得家我该怎么办 怀孕一个月刚刚自慰有点流血怎么办 老公出轨还不知道悔改妻子怎么办 离婚了前妻户口还在再婚怎么办 怀孕六个月内裤老是湿有异味怎么办 怀孕五个月内裤总是湿有异味怎么办 耳朵里面有个洞老是流水冒浓怎么办 宝宝拉粑粑有臭酸味怎么回事怎么办 老婆晚上回家内裤是湿的尿味怎么办 怀孕五个月下身痒内裤湿怎么办 哺乳期奶水太多经常弄湿衣服怎么办 麻料裙子一坐下就皱怎么办 不小心把答题卡弄皱了怎么办 嘴巴又干又黏又臭怎么办 不小心把红枣核吞了怎么办 小天才电话手表被偷了怎么办 18k金被火烧黑了怎么办 衣服掉色染到别的衣服上怎么办 夏天太阳太毒刚发芽的花种子怎么办 长斑了怎么办 喝玫瑰花茶能祛斑吗 烧纸火纸迷信纸利润太低怎么办 刚买的绣球花花有点蔫怎么办 ZF葡7正常佩戴动能太满怎么办 怀孕初期老婆婆做的菜不好吃怎么办 调节协议已签字不签收调解书怎么办 给晋中苗圃拉了树苗没拿上钱怎么办 多肉旁边长出好多小株怎么办 烤瓷牙制备时颌关系不够怎么办 对门放石头正对我家大门怎么办