使用 Junit 测试类编写
public class JdbcTest {
private Connection con = null;// 创建一个数据库连接
private PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement
private ResultSet result = null;// 创建一个结果集对象
@Before
public void init(){
try {
System.out.println("创建数据库连接...");
Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序
String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:orcl";// 127.0.0.1是本机地址,ORCL 是Oracle的数据库名字
Properties po = new Properties();
po.put("user", "***");
po.put("password", "*****");
con = DriverManager.getConnection(url,po);// 获取连接
System.out.println("数据库连接成功!");
} catch (Exception e) {
System.out.println("数据连接失败!");
e.printStackTrace();
}
}
@Test
public void select() {
try {
String sql = "select * from t_product";// 预编译语句,“?”代表参数
pre = con.prepareStatement(sql);// 实例化预编译语句
result = pre.executeQuery();// 执行查询(select使用),注意括号中不需要再加参数
ArrayList<TProduct> productsList = new ArrayList<TProduct>();
while (result.next()){
// 当结果集不为空时
TProduct product = new TProduct(result.getInt("product_id"), result.getString("product_name"), result.getDouble("product_price"));
productsList.add(product);
}
System.out.println(productsList);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
@Test
public void update(){
try {
String sql = "update t_product set product_name = ? where product_id = ?";
pre = con.prepareStatement(sql);
pre.setString(1, "可口可乐");
pre.setInt(2, 0);
if(pre.executeUpdate() == 1) //update, delete, insert, 使用 executeUpdate()
System.out.println("update successful!");
else
System.out.println("update fail!");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
@After
public void end(){
//不管如何,连接的对象必须释放
try
{
// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
// 注意关闭的顺序,最后使用的最先关闭
if (result != null)
result.close();
if (pre != null)
pre.close();
if (con != null)
con.close();
System.out.println("数据库连接已关闭!");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}