package cn.jbit.pet;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class PetManager {
/**
* 程序入口
*
* @param args
*/
public static void main(String[] args) {
System.out.println("-----主人领养的所有宠物列表-----");
System.out.println("ID\t宠物名\t健康值\t亲密度\t状态\t领养时间");
// 迭代出集合里的数据
Iterator<Pet> it = showInfo(1).iterator();
while (it.hasNext()) {
Pet pet = it.next();
System.out.println(String.format("%d\t%s\t%d\t%d\t%s\t%s",
pet.getId(), pet.getName(), pet.getHealth(), pet.getLove(),
pet.getStatus(), pet.getAdopeTime()));
}
}
/**
*
* 加载数据
*
* @param mastId
* 主人ID号
* @return 返回一个对象集合结果
*/
private static List<Pet> showInfo(int mastId) {
/**
* 创建一个ArrayList集合
*/
List<Pet> list = new ArrayList<Pet>();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
// 加载驱动
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 获取连接
try {
conn = DriverManager
.getConnection("jdbc:oracle:thin:@localhost:1521:oracle10",
"epet", "accp");
// 创建数据库命令对象
stmt = conn.createStatement();
// 操作数据
String sql = "select id,nvl(name,'无名'),health,love,"
+ "decode(status,1,'正常',0,'禁用','无效'),"
+ "to_char(adopt_time,'yyyy\"年\"MM\"月\"dd\"日\"')"
+ " from pet where master_id = " + mastId;
// 执行数据库命令
rs = stmt.executeQuery(sql);
while (rs.next()) {
Pet pet = new Pet();
pet.setId(rs.getInt(1));
pet.setName(rs.getString(2));
pet.setHealth(rs.getInt(3));
pet.setLove(rs.getInt(4));
pet.setStatus(rs.getString(5));
pet.setAdopeTime(rs.getString(6));
list.add(pet);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close(); // 关闭结果集连接
if (stmt != null)
stmt.close(); // 关闭Statement连接
if (conn != null)
conn.close(); // 关闭数据库连接
} catch (SQLException e) {
e.printStackTrace();
}
}
// 返回集合
return list;
}
}
package cn.jbit.pet;
public class Pet {
/**
* 无参构造函数
*/
public Pet() {
}
/**
* 带参构造函数
*
* @param name
* 昵称
* @param health
* 健康值
* @param love
* 亲密度
*/
public Pet(String name, int health, int love) {
this.setName(name);
this.setHealth(health);
this.setLove(love);
}
// ID号
private int id;
/**
* 获取ID号
*
* @return ID号
*/
public int getId() {
return id;
}
/**
* 指定ID号
*
* @param id
* ID号
*/
public void setId(int id) {
this.id = id;
}
private String name; // 昵称
/**
* 读取昵称
*
* @return 昵称
*/
public String getName() {
return name;
}
/**
* 指定昵称
*
* @param name
* 昵称
*/
public void setName(String name) {
this.name = name;
}
private int health = 100; // 健康值
/**
* 读取健康值
*
* @return 健康值
*/
public int getHealth() {
return health;
}
/**
* 指定健康值
*
* @param health
* 健康值
*/
public void setHealth(int health) {
if (health >= 0 && health <= 100) {
this.health = health;
} else {
health = 40;
System.out.println("健康值应该在0~100之间,默认值是40");
}
}
private int love = 0; // 亲密度
/**
* 读取亲密度
*
* @return 亲密度
*/
public int getLove() {
return love;
}
/**
* 指定亲密度
*
* @param love
* 亲密度
*/
public void setLove(int love) {
this.love = love;
}
// 状态
private String status;
/**
* 获取状态
*
* @return 状态
*/
public String getStatus() {
return status;
}
/**
* 指定状态
*
* @param status
* 状态
*/
public void setStatus(String status) {
this.status = status;
}
// 时间
private String adopeTime;
/**
* 获取时间
*
* @return 时间
*/
public String getAdopeTime() {
return adopeTime;
}
/**
* 指定时间
*
* @param adopeTime
* 时间
*/
public void setAdopeTime(String adopeTime) {
this.adopeTime = adopeTime;
}
}