Java中常用的开发工具有哪些

发布网友 发布时间:2022-04-20 13:48

我来回答

7个回答

懂视网 时间:2022-05-02 14:30

class JdbcUtils { //定义一个连接池 private static BasicDataSource bd = new BasicDataSource(); //工具类,私有他的无参构造 private JdbcUtils() { super(); } //使用静态代码块进行连接池的属性配置 //静态代码块是随着类的加载而加载的且只加载一次(节省资源) static { /* * 必须设置的项 */ //设置mySQL的驱动 bd.setDriverClassName("com.mysql.jdbc.Driver"); //设置要连接数据库的URL bd.setUrl("jdbc:mysql://localhost:3306/mydb"); //设置用户名 bd.setUsername("root"); //设置数据库密码 bd.setPassword("root"); /* * 选择设置的项,不设置的话会有默认值跟着 */ //初始化连接数 bd.setInitialSize(10); //最大连接数 bd.setMaxActive(15); //最大空闲连接数 bd.setMaxIdle(6); //最小空闲连接数 bd.setMinIdle(3); } /** * 获取连接池对象 * @return bd 连接池 */ public static DataSource getDataSource() { return bd; } }

(二)C3P0连接池

  C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有
Hibernate,Spring等。(百度百科)
  C3P0连接池有自动回收空闲连接的功能,而DBCP没有自动回收空闲连接的功能。
1、导入jar包
  同DBCP的使用步骤一样,第一步要导入相关的jar包:
  c3p0-0.9.1.2.jar
2、C3P0连接池的使用
  通过查看帮助文档(doc目录下的index.html文件里边有个快速入门)发现C3P0可以通过手动或者配置文件的方式使用。


    * 通过手动进行配置

public static void main(String[] args) throws Exception {
// 获得C3P0连接池对象
ComboPooledDataSource source = new ComboPooledDataSource();
// 设置驱动
source.setDriverClass("com.mysql.jdbc.Driver");
// 设置连接库的路径
source.setJdbcUrl("jdbc:mysql:///mydb");
// 设置用户名
source.setUser("root");
// 设置密码
source.setPassword("root");
// 通过连接池创建一个QueryRunner对象
QueryRunner runner = new QueryRunner(source);
// 测试
String sql = "SELECT * FROM users";
List<Object[]> list = runner.query(sql, new ArrayListHandler());
for (Object[] objects : list) {
for (Object object : objects) {
System.out.print(object + " ");
}
System.out.println();
}
}

   

  * 通过配置文件进行配置
  C3P0连接池支持.xml和属性文件.properties的文件配置,当然了他对其配置文件的名字和里边的文件也有一定的要求(搞一个别
的名他就不认识了),XML配置文件的名字一定是c3p0-config.xml,属性配置文件的名字一定是c3p0.properties.默认情况下C3P0连接
池就会找类加载路径下的c3p0-config.xml进行解析。c3p0-config.xml配置文件除了一些链接数据库的一些必要属性外也可以配置一些
连接池其他的属性:最小池里的数量,最大池里的数量等。具体的属性配置可以百度或者阅读开发文档。


  栗子:
  * c3p0-config.xml配置文件

<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///mydb</property>
<property name="user">root</property>
<property name="password">root</property>
</default-config>
</c3p0-config>


  * C3P0的工具类

public class C3p0Utils {
// 定义一个c3p0连接池
private static ComboPooledDataSource source;
// 定义一个连接对象
private static Connection connection;

private C3p0Utils() {
super();
}

static {
// 初始化连接池
source = new ComboPooledDataSource();
try {
// 获得一个连接
connection = source.getConnection();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static Connection getConnection() {
return connection;
}
}

  通过代码演示可以看到通过配置文件的方式还是非常方便的,后期维护的话只要改相关的配置文件就可以了,xml作为配置文件便于
我们的阅读,所以推荐使用c3p0-config.xml配置文件。

二、DBUtils工具类

  使用原生的JDBC进行开发,你会发现代码冗余过多,使用麻烦,极度不爽。而工具类的出现就是为了简化我们的开发。DBUtils是
apache commons组件一个成员,使用DBUtils工具类首先要导入相关的jar包 - commons-dbutils-1.6.jar。
  DBUtils封装并简化了JDBC操作,减少了相关代码的书写、它一共有3个核心的部分组成:
  * QueryRunner提供对sql语句操作的API。
  * ResultSetHandler接口提供了执行完sql语句后怎样封装结果集。
  * DbUtils工具类提供了关闭相关资源和处理事物的方法。
1、QueryRunner核心类
  * new QueryRunner() ,无参构造,使用无参构造时,调用update,query方法时需要传入Connection对象
  * update(Connection conn, String sql, Object... params) ,用来完成表数据的增加、删除、更新操作。
  * query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) ,用来完成表数据的查询操作。
------------------------------------------------------------------------------------------------------------------------------------------------------------------
  * new QueryRunner(DataSource ds) ,带参构造,使用带参构造时调用update,query方法无需要传入Connection对象
  * update(String sql, Object... params) ,用来完成表数据的增加、删除、更新操作。
  * query(String sql, ResultSetHandler<T> rsh, Object... params) ,用来完成表数据的查询操作。


  栗子:
  * 无参构造的update方法

/**
* 增加操作
* @throws SQLException
*/
private static void method01() throws SQLException {
// 通过工具类获得连接
Connection connection = JdbcUtilsConfig.getConnection();
// 获得QueryRunner对象
QueryRunner runner = new QueryRunner();
// 编写sql语句
String insert = "INSERT INTO sort(sname,sprice,sdesc) VALUES(?,?,?)";
// 执行update方法,也可以将数据存到Object数组里然后传入数组,返回值为影响的行数
int update = runner.update(connection, insert, "家具", 1000, "很好用");
System.out.println(update);
}

/**
* 更新操作
* 
* @throws SQLException
*/
private static void method02() throws SQLException {
// 通过工具类获得连接
Connection connection = JdbcUtilsConfig.getConnection();
// 获得QueryRunner对象
QueryRunner runner = new QueryRunner();
// 编写sql语句
String s = "UPDATE sort SET sname=?,sprice=?,sdesc=? WHERE sid=4";
// 执行update方法
runner.update(connection, s, "花卉", 100, "买给你爱的人");
//安静的关闭
DbUtils.closeQuietly(connection);
}

/**
* 删除操作
* 
* @throws SQLException
*/
private static void method03() throws SQLException {
// 通过工具类获得连接
Connection connection = JdbcUtilsConfig.getConnection();
// 创建一个QueryRunner对象,用来完成SQL语句的执行
QueryRunner qr = new QueryRunner();
// 执行SQL语句
String sql = "DELETE FROM zhangwu WHERE name = ?";
Object[] params = { "股票收入" };
int line = qr.update(connection, sql, params);
// 结果集的处理,影响的行数
System.out.println("line=" + line);
}

 

  * 有参构造的query方法

public static void main(String[] args) throws Exception {
// 通过工具类获得连接池对象
DataSource dataSource = C3p0Utils.getDataSource();
// 通过连接池创建一个QueryRunner对象
QueryRunner runner = new QueryRunner(dataSource);
// 编写sql语句
String sql = "SELECT * FROM users";
// 执行query方法传入ArrayListHandler返回集合
List<Object[]> list = runner.query(sql, new ArrayListHandler());
// 遍历集合
for (Object[] objects : list) {
for (Object object : objects) {
System.out.print(object + " ");
}
System.out.println();
}
}

 

2、ResultSetHandler结果集处理类
  * ArrayHandler 将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录的值。
  * ArrayListHandler 将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。
  * BeanHandler 将结果集中第一条记录封装到一个指定的javaBean中。
  * BeanListHandler 将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中。
  * ColumnListHandler 将结果集中指定的列的字段值,封装到一个List集合中。
  * ScalarHandler 它是用于单数据。例如sql中的聚合函数SUM(),Count()等。
  * MapHandler 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,可以配合工具类
BeanUtils.populate(Bean bean, Map map);一起使用方便数据的封装。
  * MapListHandler 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合。

  常用Handler举例:
  *BeanHandler的栗子:

/**
 * 商品详情查询
 * 
 * @param pid
 * @return product
 * @throws Exception
 */
 @Override
 public Product findByPid(String pid) throws Exception {
 //通过连接池创建QueryRunner对象
 QueryRunner queryRunner = new QueryRunner(C3p0Utils.getDataSourse());
 //根据传入的商品ID编写sql语句
 String sql = "SELECT * FROM product WHERE pid=?";
 //传入sql语句和BeanHandler结果集返回商品Bean
 Product product = queryRunner.query(sql, new BeanHandler<Product>(Product.class), pid);
 return product;
 }

  * ScalarHandler的栗子:

 /**
 * 商品总数查询
 * @return totalCount
 * @throws Exception
 */
 @Override
 public Integer findAdmintotalCount() throws Exception {
 QueryRunner queryRunner = new QueryRunner(C3p0Utils.getDataSourse());
 //pflag字段为是否下架
 String sql = "SELECT COUNT(*) FROM product WHERE pflag=?";
 Long totalCount = (Long) queryRunner.query(sql, new ScalarHandler(),Product.UN_FLAG);
 //将Long转换成Integer类型返回
 return totalCount.intValue();
 }

  * BeanListHandler的栗子:

/**
 * 根据类别查询商品
 * 
 * @param cid 商品ID
 * @param beginPage 起始页
 * @param pageSize 每页显示的条数
 * @return list
 * @throws Exception
 */
 @Override
 public List<Product> findPageByCid(String cid, Integer beginPage, Integer pageSize) throws Exception {
 QueryRunner queryRunner = new QueryRunner(C3p0Utils.getDataSourse());
 //分页查询
 String sql = "SELECT * FROM product WHERE cid=? AND pflag=? LIMIT ?,?";
 //BeanListHandler里泛型要写你查询实体Bean类型,传入参数为Bean.class
 List<Product> list = queryRunner.query(sql, new BeanListHandler<Product>(Product.class), cid, Product.UN_FLAG,
  beginPage, pageSize);
 //返回结合
 return list;
 }

 

3、DbUtils工具类
  此类提供了关闭相关资源和处理事物的方法:
  * DbUtils.closeQuietly() 安静的关闭资源。

JAVA基础-JDBC二(常用的开源工具)

标签:共享   select   pid   config   pre   完成   帮助文档   2-2   集中   

热心网友 时间:2022-05-02 11:38

常用的工具有:

Eclipse   据数据显示很多Java开发人员的Java开发工具便是Eclipse,这主要得益于Eclipse是一个开源的、可以基于Java的可扩展开发平台。Eclipse本身而言,它只是一个框架和一组服务,但可以通过插件组件构建开发环境。

editplus  EditPlus是一款由韩国 Sangil Kim (ES-Computing)开发的编辑器,可以作为C,Java,Php等等语言的一个简单的IDE。EditPlus拥有无*的撤消与重做、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑多文件、全屏幕浏览功能,也是一款常见的Java开发工具。

NetBeans   NetBeans提供了功能全面的阵列,如转换器,编辑器和代码分析器,使用这些工具可以帮助我们使用的Java技术实现应用程序。NetBeans工具范围相当广泛,是一款的Java开发工具。

Junit    Junit是一个可以帮助Java开发人员编写和运行测试的单元测试框架。JUnit和市场上其他类似的框架有着本质的区别。主要表现在你可以一次测试一个代码块,而不需要等待该模块在运行测试前完成。实际上是你可以“先测试,然后写代码”

VisualVM    VisualVM也是一款使用较多的Java开发工具。它最主要的功能便是可以排查故障,可以使用VisualVM整合多命令行JDK工具。如jvmstat、JMX和Serviceability Agent(SA)中使用VisualVM。VisualVM最出名的是附加了API,以获得更多的数据,以及自动使用更快捷。

Gradle    Gradle是一个自动化项目工具,是建立在Apache Maven和Apache Ant的功能上。虽然Gradle并不是的构建工具(的是Maven,64%的Java开发人员会选择它),但它的普及速度很快。它同时也可作为默认的Android构建开发工具。

SparkJava    SparkJava是一款体形轻巧,功能强大的Web应用框架。Spark可以通过一些繁琐的XML配置来使用Spark框架编写应用程序。能让我们花最少的精力来开发Java的Web应用程序。是一款的Java web开发工具。

Clover    Clover主要用于代码覆盖,可以帮助用于测试应用程序的代码。我们可以在IDE或持续集成系统中运行Clover。能够让测试的运行速度更快。是Java开发测试必不可少的工具之一。

热心网友 时间:2022-05-02 12:56

第一个Java常用的开发工具为JDK,也叫Java软件开发工具包,是一个编写Java的Applet小程序和应用程序的程序开发环境,
JDK中还包括了Java的开发环境,所以下载了JDK就包含了Java开发环境。而且JDK之所以被叫做Java软件开发工具包,是因为它包含了其它Java开发工具,如:编译工具(javac.exe)、打包工具(jar.exe)等。
第二个是JavaIDE:Eclipse,Eclipse
是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。而且由于它的平等和一致性,使得其它开发语言也可以在eclipse上使用。
第三个是notepad++,notepad++是一个编译工具,它的优点是及时你把文件删掉了,如果在notepad++中打开过,那么那里就会保留,所以对一些容易误删的人来说比较友好,notepad++可以用来替代notepad。
第四个是Visual Studio Code,它是一个运行于 Mac OS X、Windows和 Linux
之上的跨平台源代码编辑器。而且这个编辑器支持多种语言和格式的编写。

热心网友 时间:2022-05-02 14:31

Eclipse 开发JAVA项目工具
Tomcat服务器
MySQL、Oracle数据库
WinScp 、FileZilla传输文件
XShell、SecureCRTP连接Linux(进行命令操作)

热心网友 时间:2022-05-02 16:22

eclipse(免费),MyEclipse(收费),netbean(免费),idea(社区版免费)

热心网友 时间:2022-05-02 18:30

在现如今的互联网时代里,Java无疑是一种极为流行的开发语言,无论是程序界还是整个互联网行业势必带来很大的影响。不管是人才需求还是薪资水平上,Java的发展前景都是很乐观的。关于Java的一些常用的工具,也是需要我们不断去掌握和了解的。下面一起来了解下Java的4大常用工具吧!

1、ServiceLoader-加载服务(获取接口的所有实现)
Java开发人员常常希望将使用和创建组件的内容区分开来,这通常是依靠创建一个描述组件动作的接口,并使用某种中介创建组件实例来完成的。
2、SCanner
有无数Java工具能帮助您构建解析器,很多函数语言已成功构建解析器函数库(解析器选择器)。但如果要解析的是逗号分隔值文件,或空格分隔文本文件,又怎么办呢?大多数工具用在此处就过于隆重了,而String.split()又不够。(对于正则表达式,请记住一句老话:“您有一个问题,用正则表达式解决。那您就有两个问题了。”)
3、Timer
Java.util.Timer和TimerTask类提供了方便、相对简单的方法可在定期或一次性延迟的基础上执行任务:
4、StAX-解析XML文件
当XML头一次出现在很多Java开发人员面前时,有两种基本的解析XML文件的方法。SAX解析器实际是由程序员对事件调用一系列回调方法的大型状态机。DOM解析器将整个XML文档加入内存,并切割成离散的对象,它们连接在一起形成一个树。该树描述了文档的整个XMLInfoset表示法。这两个解析器都有缺点:SAX太低级,无法使用,DOM代价太大,尤其对于大的XML文件—整个树成了一个庞然大物。
幸运的是,Java开发人员找到第三种方法来解析XML文件,经由对文档建模成“节点”,它们可以从文档流中一次取出一个,检查,然后处理或丢弃。这些“节点”的“流”提供了SAX和DOM的中间地带,名为“StreamingAPIforXML”,或者叫做StAX。(此缩写用于区分新的API与原来的SAX解析器,它与此同名。)StAX解析器后来包装到了JDK中,在Javax.xml.stream包。
以上就是给大家讲的有关于Java的一些常用的工具,大家记得多去学习学习。

热心网友 时间:2022-05-02 20:55

https://zhidao.baidu.com/question/872090447827136892.html
这里有详细的答复
-供参考
-梁兆铃
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com