下载jar包:(Linux下载1,Windows下载2)
http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi
Apache DbUtils跟我们学jdbc时自己写的DBUtil很相似,只不过功能更加强大,我们不需要自己写工具类了,使用Apache DbUtils可以大量节省时间精力。不难,只需要知道有哪些主要的类会用就ok
//以下方法全为ResultSetHandler的实现类
public static void testDbUtilQuery(){
QueryRunner runner = new QueryRunner(DataSourceUtil.getDataSortceByC3P0());
try {
//1.用数组接收查询到数据的第一行
System.out.println("1.用数组接收查询到数据的第一行");
Object[] object = runner.query("select * from student where sno > ?",new ArrayHandler(),1);
System.out.println(Arrays.toString(object));
//2.用集合数组接收查询到的所有数据
System.out.println("*****************************************");
System.out.println("2.用集合数组接收查询到的所有数据");
List<Object[]> objects = runner.query("select * from student where sno > ?",new ArrayListHandler(),1);
for (Object[] objects1 : objects) {
System.out.print(Arrays.toString(objects1));
}
//3.用对象数组接收查询到的数据的第一行
System.out.println("*****************************************");
System.out.println("3.用对象数组接收查询到的数据的第一行");
Student student = runner.query("select * from student where sno > ?",new BeanHandler<Student>(Student.class),1);
System.out.println(student);
//4.用对象数组接收查询到的所有数据
System.out.println("*****************************************");
System.out.println("4.用对象数组接收查询到的所有数据");
List<Student> students = runner.query("select * from student where sno > ?",new BeanListHandler<Student>(Student.class),1);
System.out.println(students);
//5.在4的基础上加个key(Oracle中默认的数据类型是BigDecimal)
System.out.println("*****************************************");
System.out.println("5.在4的基础上加个key");
Map<BigDecimal,Student> studentMap = runner.query("select * from student where sno > ?",new BeanMapHandler<BigDecimal,Student>(Student.class,"sno"),1);
System.out.println(studentMap);
//6.在5的基础上再加个key
System.out.println("*****************************************");
System.out.println("6.在5的基础上加个key");
Map<String,Map<String,Object>> studentMaped = runner.query("select * from student where sno > ?",new KeyedHandler<String>("sname"),1);
System.out.println(studentMaped);
//7.查询某一列
System.out.println("*****************************************");
System.out.println("7.查询某一列");
List<String> studentColumn = runner.query("select * from student where sno > ?",new ColumnListHandler<String>("sname"),1);
System.out.println(studentColumn);
//8.查询行数
System.out.println("*****************************************");
System.out.println("8.查询行数");
BigDecimal studentCount = runner.query("select count(1) from student where sno > ?",new ScalarHandler<BigDecimal>(),1);
System.out.println(studentCount);
} catch (SQLException e) {
e.printStackTrace();
}
}
//增删改
public static void testDbUtilUpdata() throws SQLException {
QueryRunner queryRunner = new QueryRunner(DataSourceUtil.getDataSortceByC3P0());
//删除
System.out.println("删除:" + queryRunner.update("delete from student where sno = ?", new Object[]{
12}));
//插入
System.out.println("插入:" + queryRunner.update("insert into student values(?,?,?,?)", new Object[]{
12, "郭金", 56, "阿拉尔"}));
//修改
System.out.println("修改:" + queryRunner.update("update student set sname = ? where sno = ?", new Object[]{
"郭金xiugai",12}));
}
public static void main(String[] args) throws SQLException {
testDbUtilQuery();
testDbUtilUpdata();
}
运行截图:
文章浏览阅读239次。泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。模板的格式template<typename T1, typename T2,…,typename Tn>返回值类型 函数名(参数列表){}模板分为类模板和函数模板模板它本身并不是函数,是编译..._模版是复用代码的一中机制,利用模版可以进行与类型无关的程序设计
文章浏览阅读9.9k次。如何将访问的接口去掉token验证项目应用:springboot oath2完成此操作需要修改两个模块的application.yml文件修改,一个是getway网关的yml文件,另一个则是接口所在模块的yml文件_不通微服务开发阶段怎样取消sa_token验证
文章浏览阅读1.8w次。今天用非root账号,用sudo 命令 添加了两个账号,然后重启服务···可以正常取出东西,但是不能提交···报的错就是 : 不能打开文件“/var/svn/svnrepos/db/txn-current-lock”: 权限不够查了半天 找到了解决办法,原文链接:http://blog.sina.com.cn/s/blog_7139569d0100woar.htm_svn cant open file
文章浏览阅读2.4w次,点赞11次,收藏44次。原文地址:https://www.bitecho.net/microsoft-visual-studio-2019.html#respondVisual Studio(简称VS)是微软公司的开发工具包系列产品,包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等,并且几乎适用于所有开发平台。微软于4月3日正式发布了Visual Studio 2019正式版,在IDE、性能、常规调试、源控制和Team管理器、编程语言、Web技术、Xamarin移动..._microsoft vcredist 2019
文章浏览阅读869次。hadoop的应用场景在线旅游:目前全球范围内80%的在线旅游网站都是在使用Cloudera公司提供的Hadoop发行版,其中SearchBI网站曾经报道过的Expedia也在其中。移动数据:Cloudera运营总监称,美国有70%的智能手机数据服务背后都是由Hadoop来支撑的,也就是说,包括数据的存储以及无线运营商的数据处理等,都是在利用Hadoop技术。电子商务:这一场景应该是非常确定的,eBay就是最大的实践者之一。国内的电商在Hadoop技术上也是储备颇为雄厚的。能源开采:美国Che_hadoopcore基础
文章浏览阅读415次。在初步认识了类的构造方法,尤其是六大默认成员函数以及重载运算符后,我们就可以利用这些特性,来DIY一个自己的类,我的选择是构建一个可以进行日期方面运算/判断的类:需要实现的功能:赋值运算(=);加减天数还有前/后置++和–;计算出两个日期之间相差了多少天判断两个日期的大小(>,==,<);额外关系运算(>=,<=);因为Date是一个自定义类型,所有上述的所..._c++定制类模板class b
文章浏览阅读145次。据说这个题很容易考,嘻嘻嘻,我自己做做。。。每做一个题 它还有变形,我又要开始思考。。。。。所有算法题里面我最讨厌 矩阵 矩阵,数学都没有搞明白矩阵,你还要我写代码。。。说明我今年变聪明了。。。。我做题都是非常简单思路,大道至简。就是如果这三个数之和刚好与target相等就直接输出,如果不是 就看范围。找到距离这个target最近的两个数。min,max最后用绝对值比较一下就可以了..._最接近的三数之和 时间复杂度
文章浏览阅读710次。经典算法研究系列:十、从头到尾彻底理解傅里叶变换算法、上作者:July、dznlong 二零一一年二月二十日推荐阅读:The Scientist and Engineer's Guide to Digital Signal Processing,By Steven W. Smith, Ph.D。此书地址:http://www.dspguide.com/pdfbook.htm_求序列的5点dft
文章浏览阅读5.2k次,点赞7次,收藏18次。1.简化axios调用2.vue组件化3.vue中路由机制
文章浏览阅读322次。作为一个80后,自从90年代开始接触电脑,一路走来也有20多年。电脑一代一代不断的升级创新,从笨重的机箱慢慢演化成超薄的一体机,省略掉了繁重的机箱显示器和音响,节省了桌面空间,以全新的超薄形象带来了更加清爽的体验。逼格瞬间提升有木有。一体机最早是在1998年由苹果研发推出的。一体机的特性就在于巧妙的将主机和显示器整合为一体。内部元件高度集成。并且随着无线技术的发展,电脑一体机的键盘、鼠标与显示器可..._家庭上网用一体机好吗
文章浏览阅读261次。台达标准型多功能电表DPM-C520台达标准型多功能电表DPM-C520 ,为因应自动化市场快速发展、以及智能制造的趋势,所设计出的盘面安装式三相智能电表,具备精度高的特点,适用于配电盘的环境使用。● 可支持各种电力参数量测及谐波量测● 支持报警设定、参数群组化设定● 采用MODBUS协议,可广泛应用于各种控制系统,SCADA系统和能源管理系统中,是构建能源管理系统、节能监测系统的理想选择。产品特..._台达c520表485通讯说明
文章浏览阅读2.1k次,点赞2次,收藏3次。函数绑定要创建一个函数,可以在特定的this环境中以指定参数去调用另一个函数(即可以创建始终在指定环境中运行的函数)这个技巧和回调函数与事件处理程序一起使用,可以实现将函数作为变量传递的同时,保留代码运行的环境. 例子: var handler = { message: "event handle", handleClick: function (event) { alert(this.message); _js function bind