标签:orm
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
标签:orm
原文地址:http://blog.csdn.net/scgaliguodong123_/article/details/45509569