发表于: 2016-08-25 15:18:33

3 2321


     今天完成的事情:学习JDBC

     收获:用JDBC完成对数据库的CRUD

      1. 在自己的数据库(imooc)中创建数据表tdb_goods:

  CREATE TABLE IF NOT EXISTS tdb_goods(

    goods_id    SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

    goods_name  VARCHAR(150) NOT NULL,

    goods_cate  VARCHAR(40)  NOT NULL,

    brand_name  VARCHAR(40)  NOT NULL,

    goods_price DECIMAL(15,3) UNSIGNED NOT NULL DEFAULT 0,

    is_show     BOOLEAN NOT NULL DEFAULT 1,

    is_saleoff  BOOLEAN NOT NULL DEFAULT 0

  );

     2. 在数据表中增加记录;

     3. 创建pojo类class Goods,包含以下属性:

     private int id;

     private String name;

     private String cate;

     private String brand;

     private float price;

     private boolean show;

     private boolean saleoff;

     并完成相应的getter、setter方法;

     4. 创建工具类DBUtil,包含以下属性:

     private static final String URL = "jdbc:mysql://127.0.0.1:3306/imooc";

     private static final String USER = "root";

     private static final String PASSWORD = "XXXXX";

     private static ArrayList<Goods> goodsList = new ArrayList<Goods> ();

     private static Goods goods;

     在工具类中完成对数据库操作的各方法,如下:

     A. 查询整个数据表

     public static void query() throws Exception {

        Class.forName("com.mysql.jdbc.Driver"); // 加载驱动程序

        Connection con = DriverManager.getConnection(URL, USER, PASSWORD); // 获得数据库连接

        Statement stmt = con.createStatement(); // 创建statement对象

        ResultSet rs = stmt.executeQuery("select goods_id, goods_name, goods_price from tdb_goods");

        while(rs.next()) {

           goods = new Goods();

           goods.setId(rs.getInt(1));

           goods.setName(rs.getString(2));

           goods.setPrice(rs.getFloat(3));

           goodsList.add(goods);

           goods = null;

        }

        for(Goods goods : goodsList){

           System.out.println(goods.toString());

        }

     }

     B. 通过id查询某条记录

     public static Goods getById(int id) throws Exception {

        Class.forName("com.mysql.jdbc.Driver"); // 加载驱动程序

        Connection con = DriverManager.getConnection(URL, USER, PASSWORD); // 获得数据库连接

        String sql = "select goods_id, goods_name, goods_price from tdb_goods where goods_id = ?";

        PreparedStatement ptmt = con.prepareStatement(sql); // 创建Preparedstatement对象

        ptmt.setInt(1, id);

        ResultSet rs = ptmt.executeQuery();

        while(rs.next()) {

           goods = new Goods();

           goods.setId(rs.getInt(1));

           goods.setName(rs.getString(2));

           goods.setPrice(rs.getFloat(3));

        }

        return goods;

     }

     C. 添加记录

     public static void add(Goods goods) throws Exception {

        Class.forName("com.mysql.jdbc.Driver"); // 加载驱动程序

        Connection con = DriverManager.getConnection(URL, USER, PASSWORD); // 获得数据库连接

        String sql = "Insert into tdb_goods (goods_name, goods_cate, brand_name, goods_price, is_show, is_saleoff) VALUES (?, ?, ?, ?, ?, ?)";

        PreparedStatement ptmt = con.prepareStatement(sql); // 创建Preparedstatement对象

        ptmt.setString(1, goods.getName());

        ptmt.setString(2, goods.getCate());

        ptmt.setString(3, goods.getBrand());

        ptmt.setFloat(4, goods.getPrice());

        ptmt.setBoolean(5, goods.isShow());

        ptmt.setBoolean(6, goods.isSaleoff());

        ptmt.execute();

     }

     D. 更新相同id某一条记录

     public static void update(Goods goods) throws Exception {

        Class.forName("com.mysql.jdbc.Driver"); // 加载驱动程序

        Connection con = DriverManager.getConnection(URL, USER, PASSWORD); // 获得数据库连接

        String sql = "Update tdb_goods SET goods_name=?, goods_cate=?, brand_name=?, goods_price=? WHERE goods_id=?";

        PreparedStatement ptmt = con.prepareStatement(sql); // 创建Preparedstatement对象

        ptmt.setString(1, goods.getName());

        ptmt.setString(2, goods.getCate());

        ptmt.setString(3, goods.getBrand());

        ptmt.setFloat(4, goods.getPrice());

        ptmt.setInt(5, goods.getId());

        ptmt.execute();

     }

     E. 删除某一条记录

     public static void delete(int id) throws Exception {

        Class.forName("com.mysql.jdbc.Driver"); // 加载驱动程序

        Connection con = DriverManager.getConnection(URL, USER, PASSWORD); // 获得数据库连接

        String sql = "DELETE FROM tdb_goods WHERE goods_id=?";

        PreparedStatement ptmt = con.prepareStatement(sql); // 创建Preparedstatement对象

        ptmt.setInt(1, id);

        ptmt.execute();

}

     未遇到问题。

     明天计划的事情:对maven、mybatis有更深刻的理解,争取跑完任务1。



返回列表 返回列表
评论

    分享到