7.Oracle应用

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;
	}

}

 



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值