JAVA JDBC 连接 Oracle

使用 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();
            }
    }

}
posted @ 2017-10-21 14:54  佰大于  阅读(107)  评论(0编辑  收藏  举报