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
- orm Lite的使用
- ORM的使用
- ORM doctrine的使用
- Android ORM 数据库的使用
- Android ORM 数据库的使用
- 提取django的orm使用
- Android ORM数据库的使用
- Django ORM框架的使用
- 怎样高效的使用JavaEE ORM框架
- 怎样高效的使用JavaEE ORM框架
- 关于ORM框架的认识与使用
- 新型轻量级ORM FluentData的使用
- Android之greenDao,一个orm的使用
- nodjs jugglingdb orm框架的使用
- django-orm中F对象的使用
- android orm工具GreenDao的使用
- Python SQLalchemy ORM的使用(一)
- Python ORM slqalchemy 中join的使用
- Java相关环境配置(1)----JDK&JRE
- Trie树详解及其应用
- Search in Rotated Sorted Array II
- 提高第15课时,实践,简单银行系统的初步框架(加强版)v2.0
- PL/SQL基础
- ORM的使用
- IOS 数据库
- HTML基础3--内嵌、块元素
- WaitForSingleObject
- 各种不爽,杭电1166终于挣扎着AC了
- iOS开发人员必看的精品资料(100个)——下载目录
- 什么是白牌机什么是ONIE (by quqi99)
- Android Support v4、v7、v13的区别和应用场景
- 欢迎使用CSDN-markdown编辑器