import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Properties; import org.apache.log4j.PropertyConfigurator; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.jsoup.Jsoup; import com.app.entity.sys.JdbcInfo; public class PropertyUtil { private Document doc; private JdbcInfo jdbcInfo; public JdbcInfo getJdbcInfo() { if(jdbcInfo==null) jdbcInfo=new JdbcInfo(); return jdbcInfo; } /** * ============================================================== */ private PropertyUtil() { try { doc = new SAXReader().read(Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml")); Element driverNameElement = (Element) doc.selectObject("/config/db-info/driver-name"); Element urlElement = (Element) doc.selectObject("/config/db-info/url"); Element usernameElement = (Element) doc.selectObject("/config/db-info/username"); Element passwordElement = (Element) doc.selectObject("/config/db-info/password"); jdbcInfo = new JdbcInfo(); jdbcInfo.setDriverName(driverNameElement.getStringValue());//获取driver-name节点值 jdbcInfo.setUrl(urlElement.getStringValue()); jdbcInfo.setUsername(usernameElement.getStringValue()); jdbcInfo.setPassword(passwordElement.getStringValue()); } catch (Exception e) { e.printStackTrace(); } } /** * 利用Jsoup解析xml * @throws Exception */ private static void Jsoup()throws Exception{ String pathname="src/config/doc/xml/sys-config.xml"; File flie=new File(pathname); org.jsoup.nodes.Document doc = Jsoup.parse(flie, "UTF-8"); String driverName=doc.select("driver-name").text();//获取driver-name节点值 String url=doc.select("url").text(); String username=doc.select("username").text(); String password=doc.select("password").text(); System.out.println(password); } }
package com.app.entity.sys; import java.io.Serializable; public class JdbcInfo implements Serializable { private String driverName; private String url; private String username; private String password; public String getDriverName() { return driverName; } public JdbcInfo(String driverName, String url, String username, String password) { this.driverName=driverName; this.url=url; this.username=username; this.password=password; } public JdbcInfo() { } @Override public String toString() { return "JdbcInfo [driverName=" + driverName + ", password=" + password + ", url=" + url + ", username=" + username + "]"; } public void setDriverName(String driverName) { this.driverName = driverName; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
<?xml version="1.0" encoding="UTF-8"?> <config> <db-info> <driver-name>oracle.jdbc.driver.OracleDriver</driver-name> <url>jdbc:oracle:thin:@localhost:1521:oracle</url> <username>sa</username> <password>sa</password> </db-info> </config>
相关推荐
1. **连接数据库**:使用`DriverManager.getConnection()`建立数据库连接。 2. **执行SQL语句**:通过`Statement`或`PreparedStatement`对象执行INSERT、SELECT、UPDATE、DELETE等操作。 3. **处理结果集**:对于...
在Java中,常用的数据库连接库有JDBC(Java Database Connectivity)和ORM(Object-Relational Mapping)框架,如Hibernate和MyBatis。JDBC是Java标准的一部分,提供了与各种数据库系统交互的接口。ORM框架则简化了...
Java的try-catch语句可以捕获并处理异常,而log4j或slf4j等日志框架则用于记录程序运行过程中的信息,方便调试和问题排查。 九、持久化存储 除了临时存储数据,网络爬虫还可能需要将抓取的信息进行长期存储,这涉及...
Java提供了丰富的IO库(如File和BufferedReader)和数据库驱动(如JDBC)支持数据存取。 9. **爬虫框架**:为简化开发,Java有一些成熟的爬虫框架,如WebMagic、Jsoup-Crawler和Colly。这些框架封装了网络请求、...
10. **日志记录**:为了便于调试和监控,爬虫程序应该记录详细的执行日志,Java的Log4j或SLF4J是常用的日志框架。 通过学习和分析这个Java网络爬虫源代码,你可以了解上述技术的实际应用,加深对网络爬虫原理的理解...
Java中,`CSV`或`JSON`库可以用来处理和导出数据,而`JDBC`则可以用来连接和操作数据库。 7. **多线程和异步处理**:如果需要大量抓取数据,可能需要利用多线程或异步处理来提高效率。Java的并发库提供了丰富的工具...
对于简单的项目,可能会使用FileWriter或CSV格式,而更复杂的情况则可能涉及数据库操作,如JDBC连接MySQL或SQLite。 7. **异常处理**:在编写网络爬虫时,网络错误、服务器响应错误等情况是常见的,因此良好的异常...
对于文本数据,如商品名称,可以创建一个实体Bean来封装数据,然后通过JDBC或ORM框架(如Hibernate)存入数据库。例如,创建一个`Product`类,包含`name`和`imageUrl`字段,然后将`names`和`images`的对应元素组合并...
如果数据量大,可能需要使用数据库如MySQL、MongoDB,Java提供了JDBC接口和各种ORM框架(Hibernate、MyBatis)便于与数据库交互。 5. **网页状态码和重定向**:Java爬虫需要处理HTTP响应状态码,比如200表示成功,...
最后,为了使项目更易于使用和维护,我们可以封装这些功能成一个可配置的命令行工具,或者开发一个简单的Web界面,让用户输入关键词并显示抓取的排名信息。 总的来说,这个项目涵盖了网络请求、HTML解析、数据存储...
Java有JDBC API用于连接和操作各种数据库,或者可能使用NoSQL数据库如MongoDB。 8. **异常处理**:为了保证程序的健壮性,异常处理是必不可少的。Java的try-catch-finally语句块用于捕获和处理可能出现的异常。 9....
例如,使用JDBC连接MySQL,或者使用NoSQL数据库如MongoDB,以及文件系统的操作如Apache Commons IO。 7. **爬虫框架**:为简化开发,可以使用Java爬虫框架,如WebMagic、Colly等。它们封装了HTTP请求、HTML解析、...
JAVA提供了JDBC接口用于连接各种数据库,如MySQL、PostgreSQL等。 7. **异常处理与日志记录**:良好的错误处理和日志记录是任何软件系统的重要组成部分,对于爬虫来说,遇到404错误、网络连接问题等都需要有合适的...
16. **数据库连接池**:如C3P0,Druid。 17. **ORM实体填充**:自动将数据库结果转换为Java对象。 18. **分页查询**:根据数据库方言生成SQL。 19. **钓鱼网站检测**:URL验证,SSL证书检查。 20. **实时消息推送**...
Jsoup提供了DOM解析、CSS选择器等功能,便于我们查找和提取所需的数据元素。 3. **模拟交互**:如果网站有动态加载或者需要登录才能访问的数据,可能需要模拟用户行为,比如点击按钮、填写表单。HtmlUnit是一个无头...