Category: JavaSE

Java: SQLite 数据库基本操作 之 去除大小写敏感,防注入,execute,executeQuery和executeUpdate的区别

去除大小写敏感 大部分数据库在进行字符串比较的时候,对大小写是不敏感的。但是,最近使用SQLite的时候,却发现它的情况恰好相反。 假设表User的结构和值如下: UserName 1 User1 执行下面的SQL语句: SELECT * FROM [User] WHERE UserName = 'user1' 结果是没有找到任何记录。明显地,SQLite在进行字符串比较的时候,默认对大小写是敏感的。这会对应用程序造成不良的影响。比如,用户在输入用户名的时候必须严格按照大小写输入,这是一种很不好的用户体验;用户表中可能同时存在 user 和 USER 两个用户,容易造成混淆。 由于SQLite是近年来才兴起的数据库,中文资料少得很。… Read More

Java: SQLite 数据库基本操作

安装 在我们开始之前,我们需要在Java程序中使用SQLite,以确保我们有SQLite的JDBC驱动程序和Java的机器上。可以查看如何在机器上安装Java的教程。现在,让我们来检查一下如何设置SQLite的JDBC驱动程序。 下载 sqlite-jdbc-(VERSION).jar 的最新版本: sqlite-jdbc . 添加下载的jar文件sqlite-jdbc-(VERSION).jar 在类路径中,可以用带 – classpath选项,如下面例子。 前提条件 在学习本教程,应该对Java编程语言的一个很好的理解。因为要处理RDBMS,所以它需要对SQL和数据库的概念有很好的理解。 J… Read More

JAVA: java第三方包学习之jsoup

使用python写爬虫的人,应该都听过beautifulsoup4这个包,用来解析HTML很方便。现在介绍一个类似于beautifulsoup4的java第三方库,功能类似。jsoup 是一个解析 HTML 的第三方 java 库,它提供了一套非常方便的 API,可使用 DOM,CSS 以及类 jQuery 的操作方法来取出和操作数据。 简介 jsoup 是一个解析 HTML 的第三方 java 库,它提供了一套非常方便的 API,可使用 DOM,CSS 以及类 jQuery 的操作方法来取出和操作数据。 jsoup 这个包类似与 python 中流行的 HTML 解析包 Beautifulsoup4。 jsoup 实现了 WHATWG HTML5 规范,能够… Read More

JAVA: 使用FileUtils简化你的文件操作

前言: 在工作当中我们往往遇到很多文件的操作,我们也习惯写一些自己定义的工具类来简化文件操作,其实apache的commons的FileUtils类就是这样一个工具类,使用它能大大的简化我们对文件的操作。   准备工作: 1.下载jar     地址:http://commons.apache.org/proper/commons-io/download_io.cgi 2.把commons-io-2.4.jar 这个文件导入到你的项目中   说明: 1.由于是一个工具类使用都非常的简单 所以本文只是将其分类,展示它能够提供给我们什么。 2.习惯看api的可以直接看官方的api   传送门 3.可以看… Read More

java 集合类Array、List、Map区别和联系

Java集合类主要分为以下三类: 第一类:Array、Arrays 第二类:Collection :List、Set 第三类:Map :HashMap、HashTable 一、Array , Arrays Java所有“存储及随机访问一连串对象”的做法,array是最有效率的一种。 1、 效率高,但容量固定且无法动态改变。 array还有一个缺点是,无法判断其中实际存有多少元素,length只是告诉我们array的容量。 2、Java中有一个Arrays类,专门用来操作array 。 arrays中拥有一组static函数, equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。 f… Read More

java中HashMap的用法

重点介绍HashMap。首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。在下文中会有例子具体说明。 再来看看HashMap和TreeMap有什么区别。HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。 import java.util.Map; import java.util.HashMap; import java.util.Set… Read More

JAVA: 读写文件的几种方法

如果您使用java8,可以也参考这篇文章:JAVA: Java8流逐行读取文件 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class MainClass { public static void main(String args) { }

JAVA: 理解Java中的类初始化

在运行 Java 代码时,很多时候需要弄清楚程序执行的流程,而面向对象的 Java 程序并非像主要为面向过程而设计的 C 语言一样去顺序执行(简单按照代码的顺序),这使得对于类文件的加载以及执行流程的理解非常重要。本文简单介绍了 Java 类的初始化部分具体过程,包括成员变量、静态代码块、构造函数等的初始化时机及执行流程。 初始化时机 根据 javase 8 的文档说明[1],一个类(本文暂不考虑接口)T 将在下列情况第一次出现前立即被初始化: T 的一个实例被创建[2]; T 的一个静态方法被调用; T 声明的一个静态变量被赋值; T 声明的一个静态变量被使用并且这个变量不是常量[3]; 暂不考虑这种情况(涉及到顶层类,断言,内部类等)… Read More

JAVA:获得平台相关的行分隔符、路径分隔符,兼容各平台

【问题】 不同系统平台下的行分隔符、路径分隔符等常常不同。如 行分隔符在windows 下是 \r\n,在Linux下面是 \n, 在Mac下是 \r 路径分隔符在windows下是 \ ,在LInux下是 / ——来自网络资料 如何在Java程序获取当前平台的分隔符,以及其他系统相关的状态呢? import java.util.Properties; public class SeparatorUtils { /* system properties to get separators */ static final Properties PROPERTIES = new Properties(System.getProperties()); /** * get… Read More

JAVA: 史上最全maven pom.xml详解

什么是pom? pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。 快速察看: xml 代码 <project> <modelVersion>4.0.0</modelVersion> <groupId>...</groupId> <artifactId>...</artifactId> <version>...</version> &… Read More

JAVA: Java8流逐行读取文件

在Java8中,可以使用Files.lines读取文件的流。 c://lines.txt – 用于测试的简单文本文件 line1 line2 line3 line4 line5 核心代码: Write to file using BufferedWriter //Get the file reference Path path = Paths.get("c:/output.txt"); //Use try-with-resource to get auto-closeable writer instance try (BufferedWriter writer = Files.newBufferedWriter(path)) { writer.write("Hel… Read More

JAVA: Google Sheet API V4 入门二 :基本写入

利用 Sheets API,您可以向单元格、范围、范围集以及整个工作表写入值和公式。 本页面上的示例说明了如何使用此 API 的 spreadsheets.values 集合实现一些常用的写入操作。 请注意,也可以使用 spreadsheet.batchUpdate 方法写入单元格值,如果您希望同步更新单元格格式设置或 spreadsheets.values 集合不会影响的其他属性,此方法将非常实用。不过,对于简单的值写入操作,使用 spreadsheets.values.update 或 spreadsheets.values.batchUpdate 更简单。 在这些示例中,占位符 spreadsheetId 用于表示您需要提供… Read More

JAVA: Google Sheet API V4 入门一 :基本读取

利用 Sheets API,您可以读取单元格、范围、范围集以及整个工作表中的值。 本页面上的示例说明了如何使用此 API 的 spreadsheets.values 集合实现一些常用的读取操作。您也可以使用 spreadsheets.get 方法读取单元格值,不过在大多数情况下,使用 spreadsheets.values.get 或 spreadsheets.values.batchGet 更加简单。 在这些示例中,占位符 spreadsheetId 用于表示您需要提供电子表格 ID 的位置,可以从电子表格网址中找到此 ID。要读取的范围在请求网址中使用 A1 表示法指定。 这些示例均假设要读取的电子表格在其第一个工作表(“Sheet… Read More

JAVA: Google Guice 学习AOP (面向切面的编程)

Guice的AOP还是很弱的,目前仅仅支持方法级别上的,另外灵活性也不是很高。看如下示例: Guice支持AOP的条件是: 类必须是public或者package (default) 类不能是final类型的 方法必须是public,package或者protected 方法不能使final类型的 实例必须通过Guice的@Inject注入或者有一个无参数的构造函数 且看示例代码 1、定义接口 package com.guice.AOP; import com.google.inject.ImplementedBy; @ImplementedBy(ServiceImpl.class) public interface Serv… Read More