java开发环境的搭建(上班笔记01)

1.MySQL软件有客户端和服务端两个,要装了服务端的MySQL才可以使用和访问,

Navicat for MySQL,参照百度百科

Navicat for MySQL是一款强大的 MySQL 数据库管理和开发工具,它为专业开发者提供了一套强大的足够尖端的工具,但对于新用户仍然易于学习。Navicat for MySQL 基于Windows平台,为 MySQL 量身订作,提供类似于 MySQL 的用管理界面工具。此解决方案的出现,将解放 PHP、J2EE 等程序员以及数据库设计者、管理者的大脑,降低开发成本,为用户带来更高的开发效率。
Navicat for MySQL 使用了极好的图形用户界面(GUI),可以用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。 用户可完全控制 MySQL 数据库和显示不同的管理资料,包括一个多功能的图形化管理用户和访问权限的管理工具,方便将数据从一个数据库转移到另一个数据库中(Local to Remote、Remote to Remote、Remote to Local),进行档案备份。 Navicat for MySQL 支援 Unicode,以及本地或远程 MySQL 服务器多连线,用户可浏览数据库、建立和删除数据库、编辑数据、建立或执行 SQL queries、管理用户权限(安全设定)、将数据库备份/复原、汇入/汇出数据(支援 CSV, TXT, DBF 和 XML 档案种类)等。软件与任何 MySQL 5.0.x 伺服器版本兼容,支援 Triggers,以及 BINARY VARBINARY/BIT 数据种类等的规范。
2.启动Tomcat出现"cannot connection to VM”这样的错误,参考网上资料:
以管理员身份运行cmd,输入netsh winsock reset 再重启,重置winsock,可能是某个软件篡改了winsock.具体是哪些软件能修改
winsock,具体原因不明。
部署web项目:
例如TestWeb
-src
(存放项目的源代码)

-lib (存放服务器对应的jar文件) 

-webapp (Web应用的根目录,整个项目存放的目录) 

-WEB-INF (存放lib目录、classes目录、web.xml)
-classes (源代码文件编译后输出的目录)
-lib (存放Web应用所需的各种Jar文件)
-web.xml (整个web项目的配置文件) 

那么直接部署到tomcat,跟在服务器debug这种有什么区别

一个tomcat 可以设定是否以debug模式运行,还是run模式运行的! 有待研究

3.常用的线程池

DBCP,C3P0,Proxool,DBP

1.Jakarta DBCP
dbcp是Apache的一个开源项目:commons.dbcp
dbcp依赖Apache的另外两个开源项目:commons.collections和commons.pool
下载以上三个jar包,并添加到你的项目中就可以使用dbcp作为项目的数据库连接池了
下载地址:http://commons.apache.org/downloads/[collections,dbcp,pool]
2.C3P0
c3p0是一个开放源代码的JDBC连接池,他在lib目录中和Hibernate一起发布,包括实现jdbc3和jdbc2拓展说明Collection和Statement池的Datasources对象
下载地址:http://sourceforge.net/projects/c3p0
3.Proxool
proxool是一个Java SQL Driver驱动程序,提供了对你选择的其它类型的驱动程序的连接池封装。可以非常简单的移植到现存的代码中。完全可配置。快速,成熟,健壮。可以透明地为你现存的JDBC驱动程序增加连接池功能
官方主页:http://proxool.sourceforge.net
下载地址:http://proxool.sourceforge.net/download.html
4.DBPool
DBPool是一个高效的易配置的数据库连接池。它除了支持连接池应有的功能之外,还包括了一个对象池使你能够开发一个满足自已需求的数据库连接池
项目主页:http://homepages.nildram.co.uk/slink/java/DBPool/
在实际使用中,我们可以根据自己项目的需求和要求性能进行选择,若项目中添加了Spring框架,就可以很容易在Spring的配置文件中进行配置。也可以在Hibernate项目中配置,还可以在Tomcat中对连接池进行配置,通过使用JNDI获得连接

下边咱们来对比一下:

C3P0和DBCP
C3P0是Hibernate3.0默认的自带数据库连接池,DBCP是Apache开发的数据库连接池。我们对这两种连接池进行压力测试对比,发现在并发300个用户以下时,DBCP比C3P0平均时间快1秒左右。但在并发400个用户时,两者差不多。
速度上虽然DBCP比C3P0快些,但是有BUG:当DBCP建立的数据库连接,因为某种原因断掉后,DBCP将不会再重新创建新的连接,导致必须重新启动Tomcat才能解决问题。DBCP的BUG使我们决定采用C3P0作为数据库连接池。dbcp有BUG,在某些种情会产生很多空连接不能释放,所以抛弃了对dbcp的支持。我不知是否在dbcp最新版本中解决了这个问题,我以前在一个访问量不大的项目中用过dbcp,运行了一年多都没出现问题。不过在网上的确也有不少网友指出dbcp在大型的应用中会出现不稳定的情况。所以在真相未经证实的情况下,我觉得对dbcp持慎重的态度。

c3p0:
至于c3p0,有评论说它的算法不是最优的,而且,我在matrix中,见到有网友做了一个实验,在同一项目中分别用了几个常用的连接池,然后测试其性能,发现c3p0占用资源比较大,效率也不高。
所以,基于上述原因,我才花两晚的时间去研究proxool的配置,proxool不少行家推荐使用,而且暂时来说,是负面评价是最少的一个。在三星中也有项目是用proxool的。C3P0在负载种的情况下表现比较好,C3P0的一个比较特别的设计是它默认会启动三个异步线程用来在来不及调度的情况下使用,所以在任何情况下都不会失去响应。Proxool已经有两年没有发布新版本了吧。

posted @ 2013-12-24 23:17  Ann869  阅读(556)  评论(0编辑  收藏  举报