03 2016 档案

摘要:本篇将详细讲解如何正确地在实际开发中编写事务处理操作,以及在事务处理的过程中使用ThreadLocal的方法。 在前面两篇博客中已经详细地介绍和学习了DbUtils这个Apache的工具类,那么在本篇中将全部使用DbUtils来编写我们的代码,简化操作嘛,由于本篇主要讲解事务,因此如果不懂事务,可以 阅读全文
posted @ 2016-03-13 22:09 fjdingsd 阅读(954) 评论(0) 推荐(0)
摘要:本篇将会详细地介绍Apache公司的JDBC帮助工具类DbUtils以及如何使用。在上一篇中我们已经通过将以前对dao层使用JDBC操作数据库的冗余代码进行了简易封装形成自己的简单工具类JdbcUtils,而在这过程中很多都是借鉴和参考了DbUtils的代码,因此通过上一篇的学习,会让我们在对DbU 阅读全文
posted @ 2016-03-13 21:57 fjdingsd 阅读(2492) 评论(0) 推荐(0)
摘要:本篇根据上一篇利用数据库的几种元数据来仿造Apache公司的开源DbUtils工具类集合来编写自己的JDBC框架。也就是说在本篇中很大程度上的代码都和DbUtils中相似,学完本篇后即更容易了解DbUtils是如何使用的。 我们在使用JDBC对数据库进行操作时,基本都是在dao层,也就是说在dao层 阅读全文
posted @ 2016-03-13 21:44 fjdingsd 阅读(774) 评论(0) 推荐(1)
摘要:本篇介绍数据库方面的元数据(MetaData)的有关知识。元数据在建立框架和架构方面是特别重要的知识,再下一篇我们仿造开源数据库工具类DbUtils就要使用数据库的元数据来创建自定义JDBC框架。 在我们前面使用JDBC来处理数据库的接口主要有三个,即Connection,PreparedState 阅读全文
posted @ 2016-03-13 21:29 fjdingsd 阅读(26296) 评论(1) 推荐(6)
摘要:本篇介绍几种开源数据库连接池,同时重点讲述如何使用Tomcat服务器内置的数据库连接池。 之前的博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式。这样能减少数据库创建连接的消耗。正是由于数据库连接池的思想非常重要,所以市面上也有很多开源的数据库连接池供我们使 阅读全文
posted @ 2016-03-13 21:12 fjdingsd 阅读(9497) 评论(0) 推荐(1)
摘要:本篇介绍几种开源数据库连接池,同时重点讲述如何使用C3P0数据库连接池。 之前的博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式。这样能减少数据库创建连接的消耗。正是由于数据库连接池的思想非常重要,所以市面上也有很多开源的数据库连接池供我们使用。主要有以下三 阅读全文
posted @ 2016-03-13 20:58 fjdingsd 阅读(2767) 评论(1) 推荐(1)
摘要:本篇介绍几种开源数据库连接池,同时重点讲述如何使用Apache公司的的DBCP数据库连接池。 前面一篇博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式。这样能减少数据库创建连接的消耗。正是由于数据库连接池的思想非常重要,所以市面上也有很多开源的数据库连接池供 阅读全文
posted @ 2016-03-13 20:42 fjdingsd 阅读(1211) 评论(0) 推荐(0)
摘要:有时候一个对象的方法可能不是我们想要的功能,我们希望能将这个方法覆写。而对于覆写,我们最直白的感觉就是通过子类继承的方式,但是有时候对于使用web开发而言,我们能知道获取对象的实现接口,而真正对象是属于哪个类我们并不知道,例如Connection接口,HttpServletResponse接口这样的 阅读全文
posted @ 2016-03-13 20:37 fjdingsd 阅读(3152) 评论(0) 推荐(0)
摘要:本篇讲诉数据库连接池的概念和如何使用JDBC来创建自定义的数据库连接池。 我们在操作数据库的时候首先最重要的就是获取数据库的连接,只有获取了连接才能有后面对数据库的一系列操作。但是获取连接的过程是非常消耗数据库资源的,并且也非常耗时,这一点看看TCP三次握手取得连接也可以想象的到。多次获取连接比长连 阅读全文
posted @ 2016-03-13 20:34 fjdingsd 阅读(2508) 评论(0) 推荐(0)
摘要:本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据 阅读全文
posted @ 2016-03-13 20:25 fjdingsd 阅读(570025) 评论(35) 推荐(113)
摘要:本篇将讲诉如何使用JDBC进行数据库有关事务的操作。在上一篇博客中已经介绍了事务的概念,和在MySQL命令行窗口进行开启事务,提交事务以及回滚事务的操作。 似乎事务和批处理都可以一次同时执行多条SQL命令,但是事务是如果某一条SQL出错,则前面已经执行过的SQL全部都将回滚;而批处理中某一条SQL出 阅读全文
posted @ 2016-03-13 20:18 fjdingsd 阅读(3593) 评论(2) 推荐(6)
摘要:本篇讲述数据库中非常重要的事务概念和如何使用MySQL命令行窗口来进行数据库的事务操作。下一篇会讲述如何使用JDBC进行数据库的事务操作。 事务是指数据库中的一组逻辑操作,这个操作的特点就是在该组逻辑中,所有的操作要么全部成功,要么全部失败。在各个数据具有特别紧密的联系时,最好是使用数据库的事务来完 阅读全文
posted @ 2016-03-13 20:06 fjdingsd 阅读(3904) 评论(1) 推荐(4)
摘要:本篇讲述如何使用JDBC来调用MySQL数据库中的存储过程。建议在学习如何使用JDBC调用存储过程前,请先了解如何在数据库中使用存储过程。 存储过程是指在数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后以后再调用任意次都不需要重新编译了。说白了就是一堆SQL语句的合 阅读全文
posted @ 2016-03-13 19:57 fjdingsd 阅读(9993) 评论(0) 推荐(5)
摘要:本篇讲述如何使用JDBC获取能自动增加的主键的值。有时候我们在向数据库插入数据时希望能返回主键的值,而不是通过查询的方式。一般来说,在多表相互关联主键约束,也就是说别的表的外键约束是该表的主键,那么在该表插入时主键自动增加,那么就应该将主键值给别的外键是该表的主键,以指示别的表在更新自己的外键项时应 阅读全文
posted @ 2016-03-13 19:50 fjdingsd 阅读(2218) 评论(0) 推荐(0)
摘要:本篇讲述如何使用JDBC对数据库实现批处理操作。很多时候单条SQL命令不能满足我们的需求,我们需要对数据库一次实现很多操作,需要发送一批SQL命令给数据库执行。 而JDBC也提供了相应的方法给我们实现批处理操作。分别使用Statement对象或者PreparedStatement对象。这两种方式分别 阅读全文
posted @ 2016-03-13 19:44 fjdingsd 阅读(2952) 评论(0) 推荐(1)
摘要:在本文将介绍如何使用JDBC操作MySQL数据库对于大容量数据类型的读取。在之前的博客中已经介绍了如何使用JDBC来操作数据库对各种数据的增删改查,那么大容量数据类型的数据操作又为何不同呢。 原因在于之前对数据的操作,都可以存储在系统的内存中,但是如果我们对于大容量数据还按以前的方式操作的话,就要将 阅读全文
posted @ 2016-03-13 19:33 fjdingsd 阅读(900) 评论(0) 推荐(0)
摘要:最近在使用JSP显示从Servlet带过来的数据时,大量的使用到了EL表达式,并且有些EL表达式是在使用到JavaScript的函数时作为参数传入的,举个例子,比如下面的样子: 这个HTML标签的意思是,如果我点击这个超链接,会触发一个JavaScript函数,而这个JavaScript函数的参数是 阅读全文
posted @ 2016-03-13 19:27 fjdingsd 阅读(1139) 评论(0) 推荐(0)
摘要:本篇讲诉如何在页面中通过操作数据库来完成数据显示的分页功能。当一个操作数据库进行查询的语句返回的结果集内容如果过多,那么内存极有可能溢出,所以在大数据的情况下分页是必须的。当然分页能通过很多种方式来实现,而这里我们采用的是操作数据库的方式,而且在这种方式中,最重要的是带限制条件的查询SQL语句: 其 阅读全文
posted @ 2016-03-13 19:20 fjdingsd 阅读(7882) 评论(0) 推荐(3)
摘要:本篇以看传智播客方立勋老师的《JDBC入门》之《实现客户关系管理案例》视频有感,从中提取方老师在设计管理系统的简单案例中对自己比较有用的部分,以便日后在开发过程中希望能有所帮助。 在这个视频中,该客户关系管理系统的界面由简单的“添加客户”和“查看客户”两个超链接构成。其中“查看客户”的功能涉及使用数 阅读全文
posted @ 2016-03-13 19:07 fjdingsd 阅读(372) 评论(0) 推荐(0)
摘要:本篇讲诉为何在JDBC操作数据库的过程中,要使用PreparedStatement对象来代替Statement对象。 在前面的JDBC学习中,对于Statement对象,我们已经知道是封装SQL语句并发送给数据库执行的功能,但是实际开发中,这个功能我们更经常用的是Statement类的子类Prepa 阅读全文
posted @ 2016-03-13 17:08 fjdingsd 阅读(3846) 评论(0) 推荐(0)
摘要:在web工程中,应该为每一层(web、service、dao)设计各种层的自定义异常,这样做最大的好处在于在每一层的代码中,如果系统抛出了异常,那么如果在日志中就可以根据这个异常快速定位到是在哪一层出现的错误。 通常在工程中会创建一个异常包,这个包中封装了整个工程中所有的自定义异常,例如如果我们在D 阅读全文
posted @ 2016-03-13 17:01 fjdingsd 阅读(571) 评论(0) 推荐(0)
摘要:在上一篇博客《JDBC操作数据库的学习(1)》中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本篇就在简单开发中如何对上一篇的例子进行“升级”,满足简单开发中对数据库的增删改查(CRUD)。 如果按照上一篇中 阅读全文
posted @ 2016-03-13 17:00 fjdingsd 阅读(952) 评论(0) 推荐(1)
摘要:单单对数据库的操作,比如说MySQL,我们可以在命令行窗口中执行,但是一般是应用程序要操作数据库,因此我们应该在程序中的代码上体现对数据库的操作,那么使用程序应用如何操作数据库呢?那就要使用到数据库的连接驱动,应用程序通过这些驱动来操作数据库: 但是这里就又有一个问题了,不同的数据库有各自的驱动程序 阅读全文
posted @ 2016-03-13 16:54 fjdingsd 阅读(1331) 评论(0) 推荐(2)
摘要:有时候我们要在MyEclipse中将一个WEB工程进行复制,然后将工程名进行重命名,但这样还是会出错,因为只改变工程名还不够,一般在MyEclipse中WEB工程的【WebRoot】目录名和工程名是一样的,因此我们还需要改这个: 复制的工程 > 右键点击工程,选择【Properties】属性 > 阅读全文
posted @ 2016-03-13 16:31 fjdingsd 阅读(385) 评论(0) 推荐(0)
摘要:我们都知道在web开发时经常使用三层架构(web、service、dao),每一层有着自己的实现类,而通过对实现类进行抽取方法形成接口,每一层通过接口进行上下层之间的耦合。例如在业务service层和数据访问dao层之间,当dao层写好了对数据库的增删改查方法时,抽取成dao接口,而在service 阅读全文
posted @ 2016-03-13 16:28 fjdingsd 阅读(3651) 评论(0) 推荐(0)
摘要:有时候在MyEclipse中,文件只能保存为“ISO-8859-1”的类型,而这种类型的文件时无法保存中文数据的,那么我们只能将中文数据经过Unicode编码才能往文件中保存,这里可以使用JDK自带的工具——native2ascii。 使用命令行窗口,输入“native2ascii”,如下图所示: 阅读全文
posted @ 2016-03-13 16:18 fjdingsd 阅读(928) 评论(0) 推荐(0)
摘要:需求:一个方法传入的参数是Object类型(假设对象为“items”,使用Object类型也是为了使用多态而增加方法复用性),但已知这个Object对象可能是集合,包括Collection和Map,也可能是数组,包括对象类型数组和基本数据类型数组,那么如何将这个对象中的元素进行迭代,同时添加进一个集 阅读全文
posted @ 2016-03-13 16:16 fjdingsd 阅读(2994) 评论(0) 推荐(0)
摘要:需求:一个方法传入的参数是Object类型(假设对象为“items”,使用Object类型也是为了使用多态而增加方法复用性),但已知这个Object对象可能是基本类型数组,也可能是对象数组,如何将这个对象中的数组元素进行迭代,同时添加进一个集合中(我们不关心添加迭代出来的值是什么类型)。 分析:如果 阅读全文
posted @ 2016-03-13 16:06 fjdingsd 阅读(2791) 评论(0) 推荐(0)
摘要:在一些以金融等行业中的计算是需要十分精确的,即使我们使用像double这样的类型,由于浮点数的原因,会使得数据计算变得不精确,例如下面的例子: 则结果为:0.10500000000000001。 像double这样的浮点数类型,只能用于平常的科学计算,要想使得计算精确无误,必须使用Java中的Big 阅读全文
posted @ 2016-03-13 15:58 fjdingsd 阅读(514) 评论(0) 推荐(0)
摘要:上一篇内省(Introspector)讲到的是采用JavaAPI中的类来操作bean及其属性,而Apache也开源了第三方框架来简化和丰富了对bean属性的操作,这个框架就是BeanUtils。 使用BeanUtils记得先导入BeanUtils开发包,同时BeanUtils也需要将commons- 阅读全文
posted @ 2016-03-13 15:34 fjdingsd 阅读(1253) 评论(0) 推荐(0)
摘要:内省(Introspector)是专门用来操作JavaBean属性的。不是所有的字段(Field)都能被称之为属性,只有某些字段具有getXXX或setXXX方法的才能称之为属性,当然要称为是一个Bean还需要有一个无参的构造器,而内省就是对这些属性进行操作。 我们先来看一个例子来数一数Javabe 阅读全文
posted @ 2016-03-13 15:15 fjdingsd 阅读(3375) 评论(0) 推荐(0)
摘要:Java中的可变参数 Java1.5后出现了一个新特性,即可变参数,格式为:类型 …参数 例如: 总的来说,可变参数可以当成是数组来用: 如果方法参数中不止有可变参数,还有别的类型的参数,那么可变参数应该放到方法列表中的最后才不会报错: 可以直接用数组来满足参数是可变参数的方法: 最后我们再来看一看 阅读全文
posted @ 2016-03-13 15:06 fjdingsd 阅读(519) 评论(0) 推荐(0)