第三方jar包的使用

第三方jar包使用

所谓第三方jar包,就是由第三方编写的工具类,里面有很多已经写好的方法,
我们可以通过加载jar包,直接调用里面的方法,省去了大量的代码编写,比如int row = qr.update(connection,sql, params);
这一方法,只需要数据库连接,sql语句,与数组,便可以直接完成更新,而我们自己实现更新功能时,
获取到连接后,需要用connection.createStatement,建立statement对象,然后再用statement对象执行sql语句,
statement.executeUpdate()执行sql语句,用result接受得到的结果,
可见第三方jar包里面提供的封装好的方法,可以方便我们实现功能
代码示例
使用占位符传入语句
直接传递参数 注意要和占位符问号的顺序 对应
更新数据

这里写图片描述

关闭资源

这里写图片描述

插入数据

这里写图片描述

// 实现所有数据的更新
public static void main(String[] args) throws SQLException {
    Connection connection = JDBCUtil.getConnection();
    QueryRunner qr = new QueryRunner();
    String sql = "update sort set sname=?,sprice=?,sdesc=?";
    String[]  params = {"张飞","2301","桃园三结义"};
    int row = qr.update(connection,sql, params);
    if(row>0) {
        System.out.println("更新成功");
    }
    DbUtils.closeQuietly(connection);
}
public static void main(String[] args) throws SQLException {
    Connection connection = JDBCUtil.getConnection();
    QueryRunner qr = new QueryRunner();
    String sql = "update sort set sname=?,sprice=?,sdesc=?";
    int row = qr.update(connection,sql, "关羽","2206","过五关斩六将");
    if(row>0) {
        System.out.println("更新成功");
    }
    DbUtils.closeQuietly(connection);
}
public static void main(String[] args) throws SQLException {
    Connection connection = JDBCUtil.getConnection();
    QueryRunner qr = new QueryRunner();
    String sql = "insert into sort values (null,'刘备','2207','汉中王')";
    int row = qr.update(connection, sql);
    if(row > 0) {
        System.out.println("插入成功");
    }
    DbUtils.close(connection);
}

查询操作八个结果集

这里写图片描述

ArrayHander
把查询出来的数据的第一行 放进对象数据中 并返回
private static void fun1() throws SQLException {
        // ArrayHandler
        Connection connection = JDBCUtil.getConnection();
        QueryRunner qr = new QueryRunner();
        String sql = "select * from sort";
        Object[] query = qr.query(connection, sql, new ArrayHandler());
        for (Object object : query) {
            System.out.println(object);
        }
        DbUtils.closeQuietly(connection);
    }

这里写图片描述

ArrayListHandler
查询每一条记录,放到List集合中
每一条记录是一个对象数组 
private static void fun2() throws SQLException {
    Connection connection = JDBCUtil.getConnection();
    QueryRunner qr = new QueryRunner();
    String sql = "select * from sort";
    List<Object[]> list = qr.query(connection, sql, new ArrayListHandler());
    for (Object[] key : list) {
        for (Object object : key) {
            System.out.println(object);
        }
    }
}

这里写图片描述

BeanHandler
 把结果集的第一行 封装成一个JavaBean对象
 JeanBean对象规则
 1.成员变量私有化
 2.提供空参的构造方法
 3.提供set/get方法
 符合以上规则的实体类创建处理的对象
 就是一个javabean对象
private static void fun3() throws SQLException {
    Connection connection = JDBCUtil.getConnection();
    QueryRunner qr = new QueryRunner();
    String sql = "select * from sort";
    Sort query = qr.query(connection, sql, new BeanHandler<Sort>(Sort.class));
    if(query != null) {
        System.out.println(query);
    }
    DbUtils.closeQuietly(connection);
}

这里写图片描述

BeanListHandler
private static void fun4() throws SQLException {
    //BeanListHandler
    Connection connection = JDBCUtil.getConnection();
    QueryRunner qr = new QueryRunner();
    String sql = "select * from sort";
    List<Sort> list = qr.query(connection, sql, new BeanListHandler<Sort>(Sort.class));
    for (Sort sort : list) {
        System.out.println(sort);
    }
}

这里写图片描述

ColumnlistHandler
返回表中的某一列数据
public static void main(String[] args) throws SQLException {
     //  ColumnlistHandler
    Connection connection = JDBCUtil.getConnection();
    QueryRunner qr = new QueryRunner();
    String sql = "select * from sort";
    List<Double> query = qr.query(connection, sql,new ColumnListHandler<Double>("sprice"));
    for (Double string : query) {
        System.out.println(string);
    }
}

这里写图片描述

ScalarHandler
查询结果是一个的时候使用的
比如count(*) MAX(sprice) MIN(sproce) AVG(sprice)
private static void fun6() throws SQLException {
    // ScalarHandler
    Connection connection = JDBCUtil.getConnection();
    String sql = "select AVG(sprice) from sort";
    QueryRunner qr = new QueryRunner();
    Double query = qr.query(connection, sql, new ScalarHandler<Double>());
    System.out.println(query);
}

这里写图片描述

MapHandler
以键值对的形式保存  字段名 与 值
private static void fun7() throws SQLException {
    // MapHandler
    Connection connection = JDBCUtil.getConnection();
    QueryRunner qr = new QueryRunner();
    String sql = "select * from sort";
    Map<String, Object> query = qr.query(connection, sql, new MapHandler());
    for (String key : query.keySet()) {
        System.out.println(key + " " + query.get(key));
    }
}

这里写图片描述

MapListHandler
list表中保存Map对象
private static void fun8() throws SQLException {
Connection connection = JDBCUtil.getConnection();
QueryRunner qr = new QueryRunner();
String sql = "select * from sort";
List<Map<String,Object>> list = qr.query(connection, sql, new MapListHandler());
for (Map<String, Object> map : list) {
    for (String key : map.keySet()) {
        System.out.println(key + " "+ map.get(key));
    }
}

这里写图片描述
这里写图片描述

数据库连接池

package com.lanou3g.jdbc;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;

public class Demo05 {
    private static BasicDataSource dataSource = new BasicDataSource();
    static {
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/myjdbc");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        // 初始化连接数
        dataSource.setInitialSize(10);
        // 设置最大活动数
        dataSource.setMaxActive(7);
        // 设置最大空闲连接数
        dataSource.setMaxIdle(4);
        // 设置最小空闲连接数
        dataSource.setMinIdle(2);
    }
    // 获取数据库连接池
    public static DataSource getDataSource() {
        return dataSource;
    }
}
测试数据库连接池
public class Demo03 {
    public static void main(String[] args) throws SQLException {
        // 数据库连接池和QueryRunner的使用
        QueryRunner qr
        = new QueryRunner(DataSourceUtil.getDataSource());
        // 插入一条数据
        String sql = "insert into sort values(null,?,?,?)";
        Object[] params = {"试卷",10,"一份万分试卷"};
        int row = qr.update(sql,params);
        if(row > 0) {
            System.out.println("插入成功");
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值