ORM:对象关系映射
//-------------------工具类--------------------------
package java_277_JDBC_ORM原理_使用Object数组存储一条记录_练习;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
*JDBC工具类
*/
public class JDBCUtil {
static Properties pros = null;//可以帮助读取和处理资源文件中的信息
//静态代码块
static{//加载JDBCUtil类的时候调用;注意:这个类只能加载一次
pros = new Properties();
try {
pros.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
} catch (IOException e) {
e.printStackTrace();
}
}
//建立mysql连接
public static Connection getMysqlConn(){
try {
//加载驱动类
Class.forName(pros.getProperty("mysqlDriver"));
//连接数据库
return DriverManager.getConnection(
pros.getProperty("mysqlURL"),pros.getProperty("mysqlUser"),
pros.getProperty("mysqlPwd"));//characterEncoding 字符编码
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
//获取oracle连接
public static Connection getOracleConn(){
try {
//加载驱动类
Class.forName(pros.getProperty("oracleDriver"));
//连接数据库
return DriverManager.getConnection(
pros.getProperty("oracleURL"),pros.getProperty("oracleUser"),
pros.getProperty("oraclePwd"));//characterEncoding 字符编码
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
//封装关闭方法
public static void close(ResultSet rs){
try {
if(rs!=null){
rs.close();//关闭
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void close(Statement ps){
try {
if(ps!=null){
ps.close();//关闭
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(Connection conn){
try {
if(conn!=null){
conn.close();//关闭
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(ResultSet rs,Statement ps,Connection conn){
//关闭遵循先进后关原则;一定要分开关闭,这样出现异常不影响后面的程序执行
try {
if(rs!=null){
rs.close();//关闭
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if(ps!=null){
ps.close();//关闭
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(conn!=null){
conn.close();//关闭
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//--------------------------封装一条信息---------------
package java_277_JDBC_ORM原理_使用Object数组存储一条记录_练习;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
*测试使用Object[]来封装一条记录
*/
public class Demo01 {
public static void main(String[] args) {
Connection conn = JDBCUtil.getMysqlConn();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement(“select empname,salary,age from emp where id=?”);//如果只查一个人id=编号
//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));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
JDBCUtil.close(rs, ps, conn);
}
}
}
//-----------------------创建-数据库–添加-内容----------------------
创建2个表
emp设计表
添加内容
//-----------------------结果----
//---------------------------多条信息----
package java_277_JDBC_ORM原理_使用Object数组存储一条记录_练习;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*测试使用Object[]来封装一条记录
-
使用List<Object[]>数组,存储多条信息
*/
public class Demo01 {
public static void main(String[] args) {
Connection conn = JDBCUtil.getMysqlConn();
PreparedStatement ps = null;
ResultSet rs = null;
//Object[] objs = null;//查一条信息
List<Object[]> list = new ArrayList<Object[]>();//查多条信息
try {
//ps = conn.prepareStatement(“select empname,salary,age from emp where id=?”);//如果只查一个人id=编号
ps = conn.prepareStatement(“select empname,salary,age from emp where id>?”);//查多条信息
ps.setObject(1,0);
rs = ps.executeQuery();
//游标
while(rs.next()){
Object[] objs = new Object[3];//用Object数组 3代表三列 ;这是封装一条记录信息
//System.out.println(rs.getString(1)+"–"+rs.getDouble(2)+"–"+rs.getInt(3));
objs[0] = rs.getString(1);
objs[1] = rs.getObject(2);//直接用Object省事; 也可以用getDouble
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]);
}
}
}
//-------------------结果------------------------