自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Maven笔记(一)

1. 坐标Maven坐标为各种构件引入了秩序,任何一个构件都有必须明确定义自己的坐标,而一组Maven坐标是通过一些元素定义的,它们是groupId, artifactId, version, packaging, classifier。下面简单介绍一下这几个标签1) groupId定义当前Maven项目隶属的实际项目,当然跟实际项目之间并不是一对一的关系。其命名方式与Java包名

2015-12-22 10:52:47 317

原创 Oracle JDBC通过占位符可以查询可变长字段,不可查询固定长度字段

这个问题在半年前,花了我两天的时间才解决,现在刚好想起来,顺便记录一下以防忘了。通过jdbc,预编译的sql,无法查询到固定长度的字段。用例子说话:创建一个表,只有一个字段,长度为固定的char类型。并插入一条数据。create table tblchar(  name char(20) );在Java代码中使用预编译的SQL查询,无法查询到结果。而使用拼接的SQL,可

2015-12-22 10:50:08 1010

原创 Oracle 汉字在不同字符集下所占字节

今天发现了一个问题,一个长度设置为2000字节的字段,插入一条长度为1000的汉字数据,竟然报错了。一个汉字占两个字节,按理说刚好是2000个字节。但通过查看日志,发现插入数据的长度为3000字节。百度了一下,原来是不同的字符集造成的。一般情况下,数据库的NLS_CHARACTERSET 为AL32UTF8或UTF8,即一个汉字占用三到四个字节。如果NLS_CHARACTERSET为Z

2015-12-22 10:47:28 1201

原创 Base64的Java代码实现

欢迎拍砖~在数据二进制和byte互相转换的地方方法写得有点挫,不知道有没有更好的方法~顺便复习了java的一些基础东西,如位操作,原码反码补码可以在这篇blog里学习到详细的知识点:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html直接上代码吧,知识点在注释上编码器: 1 p

2015-12-22 10:44:47 531

原创 数字证书简介及Java编码实现

1.数字证书简介数字证书具备常规加密解密必要的信息,包含签名算法,可用于网络数据加密解密交互,标识网络用户(计算机)身份。数字证书为发布公钥提供了一种简便的途径,其数字证书则成为加密算法以及公钥的载体。依靠数字证书,我们可以构建一个简单的加密网络应用平台。数字证书类似于个人身份证,由数字证书颁发认证机构(Certificate Authority, CA)签发。只有经过CA签发的证书在网络

2015-12-22 10:42:07 1133

原创 JDK自带方法实现RSA数字签名

JDK 6只支持MD2withRSA, MD5withRSA, SHA1withRSA其他的如SHA512withRSA需要第三方包支持,如BC(bouncy castle)--20151126 更正:JDK 7已经可以支持SHA256withRSA和SHA512withRSA了JDK的密钥长度默认仍是1024 1 package jdbc.pro.lin; 2

2015-12-22 10:39:27 1067

原创 JDK自带方法实现RSA非对称加密

1 package jdbc.pro.lin; 2 3 import java.security.InvalidKeyException; 4 import java.security.Key; 5 import java.security.KeyFactory; 6 import java.security.KeyPair; 7 import java.se

2015-12-22 10:35:56 599

原创 JDK自带方法实现AES对称加密

请看代码。 1 package jdbc.pro.lin; 2 3 import java.security.InvalidAlgorithmParameterException; 4 import java.security.InvalidKeyException; 5 import java.security.NoSuchAlgorithmException

2015-12-22 10:33:15 817

原创 JDK自带方法实现消息摘要运算

啊,有点小注释,懒得介绍了,就贴个代码吧,大意理解就可以了。 1 package jdbc.pro.lin; 2 3 import java.security.InvalidKeyException; 4 import java.security.MessageDigest; 5 import java.security.NoSuchAlgorithmExcep

2015-12-22 10:30:36 242

原创 Base64原理简介

Base64是一种编码方式,通常用于将二进制数据转换成可见字符的形式,该过程可逆。过程大致如下:1. 对64个可见字符,进行一个索引编码。索引是二进制的值,对应找到一个可见字符。Base64 编码表ValueChar ValueChar ValueChar ValueChar0A16Q32

2015-12-22 10:27:58 284

原创 数字签名原理简介(附数字证书)

首先要了解什么叫对称加密和非对称加密,消息摘要这些知识。1. 非对称加密在通信双方,如果使用非对称加密,一般遵从这样的原则:公钥加密,私钥解密。同时,一般一个密钥加密,另一个密钥就可以解密。因为公钥是公开的,如果用来解密,那么就很容易被不必要的人解密消息。因此,私钥也可以认为是个人身份的证明。如果通信双方需要互发消息,那么应该建立两套非对称加密的机制(即两对公私钥密钥对),发消息的

2015-12-22 10:25:20 436

原创 Oracle 特殊字符模糊查询的方法

最近在写DAO层的时候,遇到一个问题,就是使用like进行模糊查询时,输入下划线,无法精确查到数据,而是返回所有的数据。这让我很好奇,百度之后才发现,原来是因为有些特殊字符需要进行转义才可以进行查询。首先理解一下什么是特殊字符。在ascii码表中,特殊字符的范围如下。即从32~47 58~64 91~96 123~126。模糊查询时,有两种方法可以进行转换。1. 使用REG

2015-12-22 10:22:42 1199

原创 将博客搬至CSDN

转java也已经一年多了,不搞C#了,暂时拜拜~

2015-12-22 10:20:02 203

原创 HTML 转义字符

在HTML中,一个包含特殊字符(如例如在标签中,添加一个字符串"alert('hello')",那么就要对这个字符串进行转义。转义字符串(Escape Sequence),即字符实体(Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。比如,要显示小于号

2015-12-22 10:17:22 399

原创 Entity Framework Demo(一) 简单搭建环境

Entity Framwork(实体框架,简称EF)是ORM(Object Relational Mapping,对象映射关系)的一个解决方案。EF允许项目将数据库的表映射为实体,并封装了操作方法,方便开发人员直接操作数据库。EF有三种开发模式,分别是:Database First(数据库先行): 将已存在的数据库中的表映射为实体;Code First(代码先行):先编写代码,再通

2015-12-22 10:14:42 1693

原创 求集合的交集

给定两个数组,求两个数组的交集。 1 string[] a = new string[] { "khlin", "hzluo", "jjguo", "hhchen", "jxhan", "lxiao", "jsxiao", "wwang", "lsxie", "lwang" }; 2 string[] b = new string[] {

2015-12-22 10:12:02 436

原创 查找算法复习(1)--二分查找法

二分查找法要求被查找的线性表已经排序。每一次查找,按中间索引把表分为左右两部分,通过对比中间值与目标值的大小,决定下一次查找在左表还是右表,直到无法再分割。 1 public static int BinarySearch(string[] datalist, string key) 2 { 3 int low = 0;

2015-12-22 10:09:23 307

原创 排序算法复习(2)-- 选择排序

选择排序法的思想是,每次选择数组中最小的一位。实现起来只需要几行代码,时间复杂度是O(N^2)。  1 public static void SelectedSort(string[] datalist) 2 { 3 int minIndex; 4 for (int i = 0; i 2; i++)//默认从小到大

2015-12-22 10:06:46 306

原创 对称加密

(本文系张子阳《.net之美》读书笔记,文中多处引用书本内容)流首先简单介绍一下流的概念。流的最主要用途就是与应用程序外部的文件或数据源进行数据交互。考虑将一个TXT文件从D盘拷贝到C盘。它的拷贝过程应该是这样的:源文件在磁盘中,需要建立一个类似管道的东西将文件和内存中的应用程序连接起来,并且将文件按字节发送。创建一个byte[]数组用于存放字节。接下来,在C盘创建目标文件

2015-12-22 10:04:06 316

原创 ado.net 学习小结

连接数据源Connection对象。Connection对象处于最顶层,是所有数据访问请求的关口。我们通过其暴露的属性进行配置。下面是一段连接字符串的示例。  1 if (string.IsNullOrEmpty(con.ConnectionString)) 2 { 3 con.ConnectionString =

2015-12-22 10:01:26 327

原创 数据库架构、用户等关系小结

层级关系:server.database.schema.object客户端通过实例连接数据库。sql server使用实例时,需使用登录名(如默认的sa)。一个登录名可以映射到多个数据库的用户名,而用户可以拥有不同的架构,但架构只能有一个拥有者,包括用户和角色等。因此,登录后要指定使用哪个数据库。指定之后就以对应的用户名进行操作。例如登录名test_login,映射到table1的a用

2015-12-22 09:58:45 1113

原创 排序算法复习(1)-- 快速排序

private static int SortUnit(int[] datalist, int low, int high) { int key = datalist[low];//把第一个数当作基准数 while (low //两个指针一开始应该不等,每一次分区间的结果必然是两者指向同一下标 {

2015-12-22 09:56:47 215

原创 IIS注册.net框架及temp文件权限开放

配置好IIS服务之后,在浏览器打开localhost:xx【端口号】,提示:无法识别属性 targetFramework=4.0这是因为项目是4.0框架,配置IIS时,在应用程序池没有选择.net 4.0的原因。如果应用程序池里没有.net 4.0,那就是因为没有把框架注册到IIS上。操作方法:找到框架的路径,一般情况下在C:\Windows\Microsoft.NET\Framewo

2015-12-21 19:37:51 404

原创 order by 自定义排序

使用order by排序,有时候不是根据字符或数字顺序,而是根据实际要求排序。例如有客户A,B,C,我希望排序结果是B,C,A,那么就要通过自定义的规则排序。第一种方法,可以构造一张映射表,将客户映射到所需要的顺序。第二种方法,如果要排序的客户不多,可以直接写出,那就使用如下方法:order by case customer when B then 1            w

2015-12-21 19:34:26 7430

原创 PL/SQL 批量SQL

批量SQL包括:FORALL语句BULK COLLECT子句FORALL语句FORALL具有如下结构:FORALL loop_counter IN bounds_clause [SAVE ECEPTIONS]SQL_STATEMENT;其中, bounds_clause是下面形式之一:lower_limit .. upper_limitINDICES OF co

2015-12-21 19:31:46 357

原创 PL/SQL 嵌套表变长数组和索引表[转]

关于PL/SQL中这三种数组的介绍,不想写了。转一篇日志吧……链接:http://www.blogjava.net/decode360/archive/2008/08/08/280825.html作者:decode360补充一点:假如从first到last的遍历过程中,存在被删除的占位符,如果使用则会报错。可用Exists(下标)的方法来判断是否存在。不能用is null 来判断……

2015-12-21 19:29:06 392

原创 PL/SQL Select into 异常处理

在使用select into 为变量赋值时,如果变量是集合类型,不会产生异常,而如果是基本类型或记录类型,则会报异常。异常产生了怎么办?当然是捕获并处理啦。对于普通的代码块来说,在代码块的结尾处理就可以了。但是在循环里面呢?根据异常的传播,产生异常程序会中止。但如果想要在发生异常后,达到continue的效果,可不能在结尾的exception那里添加when others then c

2015-12-21 19:26:26 1414

原创 PL/SQL 记录集合IS TABLE OF的使用

在PL/SQL代码块中使用select into 赋值的话,有可能返回的是一个结果集。此时,如果使用基本类型或自定义的记录类型,将会报错。因此,需要定义一个变量,是某种类型的集合。下面以一个基于表的行类型的集合为例简单介绍一下(相信基本类型同理吧)。 1 DECLARE 2 CURSOR cur_tx IS SELECT GKEY from t ; 3 SUBT

2015-12-21 19:23:48 1107

原创 PL/SQL 触发器简介

与公司同事交流了一下,得知触发器很少用。性能是一方面,主要是如果用太多触发器,可能到时你都不知道会有什么操作自动发生。有些操作可以在程序中控制。例如在插入某个表时,写个log表的记录。这可以用触发器实现,但比较好的做法还是在程序中写个插入到log的语句实现。所以,就只学习了很简单的部分。触发器的通用语法如下:CREATE [OR REPLACE] TRIGGER Trigger_n

2015-12-21 19:21:08 309

原创 plsql 显式游标

显式游标的处理过程包括:声明游标,打开游标,检索游标,关闭游标。声明游标CURSOR c_cursor_name IS statement;游标相当于一个查询结果集,将查询的结果放在游标里,方便在块里进行处理。记录一个记录就是一个复合的数据结构,相当于结果集里的一行数据,用于遍历游标时存放结果。记录支持三种定义:基于表,基于游标,自定义。如果是基于表或游标,其定义格式为

2015-12-21 19:18:28 268

原创 PL/SQL 异常高级概念

做好了准备想要接受难一点的概念,结果发现,其实这一章很水。1. raise_application_errorraise_application_error 是Oracle提供的一种特殊的内置过程,允许程序员为特定应用程序创建有意义的错误消息,也即自定义。语法如下:raise_application_error(error_number,error_message);orrai

2015-12-21 19:15:48 296

原创 PL/SQL 异常的传播

今晚看了关于PL/SQL异常传播的内容,做个笔记。1.PL/SQL执行语句块发生运行时错误PL/SQL 语句块的可执行部分发生某个运行时错误,执行权会转到该语句块的异常处理部分。当与该异常相关的语句执行完毕之后,执行权会转到主机环境或者外围语句块。如果不存在该错误的异常处理程序,该异常就会被传播到外围语句块,然后再次执行刚才所描述的步骤。如果没有发现异常处理程序,则程序执行会终止,执行权会

2015-12-21 19:13:09 243

原创 pl/sql 自学软件安装及配置

对于pl/sql接触也有大半年,但是居然一点也没去学,写SQL还停留在简单的连接之类的语句,这怎么行?当然得自学啦。不过自学也要有配套的设备。我的想法是在VMware虚拟机中安装XP系统,再在XP系统中安装Oracle服务端。由于在物理机已经安装plsql 和 oracle客户端,所以到时确保两台机器联网,就可以通过配置tnsnames.ora文件来实现连接了。首先要创建一个新虚拟机,过程

2015-12-21 19:10:29 351

原创 DataGridView 索引,添加列

问题1:DataGridView绑定DataTable之后,在界面排序,选择若干行,此时选中的行的index与DataTable中的index不一致,这样若想要对其对应的行进行修改操作,将会造成错误。Sol: 首先将选中的DataGridView行的DataBoundItem属性转换为DataRowView, 然后通过对应的DataTable中的取出索引。1 DataRowView d

2015-12-21 19:07:49 1172

原创 ComboBox 强制转换为大写的方法

最近遇到如何将输入在组合框(ComboBox)中的英文字符转换为大写的问题。在TextBox中,有CharacterCasing属性,直接设置为Upper即可。但是在ComboBox中没有此属性,所以要另找其他方法。直觉告诉我,一定是在KeyDown, KeyPress, KeyUp这三个事件中找到突破口,研究下去果然如此。三者触发的前后顺序如上所示,KeyDown和KeyPress,

2015-12-21 19:05:09 1294

原创 C#基础笔记

动态链接库(DLL,Dynamic Link Library)和程序都属于程序集(Assembly)。C#编译器只是将C#代码转换成公共中间语言(Common Intermediate Language, CIL),VES(Virtual Execution System 虚拟执行系统,也称运行时)将CIL编译成机器码,这个过程称为即时编译(JT编译,Just-in-Time)。这些代码称为托

2015-12-21 19:02:28 322

原创 简单打开和保存txt文件

最近学习Stream类型,练习打开和保存TXT文件。首先要明白流概念,学过C++的应该清楚,这里就不多说了【其实我也不知道如何解释】。Stream类有很多子类,包括:FileStream类,主要用于读取磁盘上的文件或者向磁盘文件写入信息。有时,我们需要将程序中的一些数据存储到磁盘上或是读取配置文件中某些内容,在这里我们就会用该类。MemoryStream类,主要用于操作内存中的数据

2015-12-21 18:59:48 784

原创 用回溯法解决子集和问题【C#版本】

最近在开发某项目,遇到这样一个需求:在一个账单记录的Table中,记录着每张账单及其金额,要求用户输入一个金额,从表中取出金额组合为该金额的账单【可能有很多个解,但只需要提供一例】。这题目看起来很简单,只是把数加起来判断,但仔细一想,难度不小。因为组合的个数没有确定,可以直接找到,即1个,或者2个,3个……N个组成,那么原先想要使用的for循环就无法使用了,因为不知道要嵌套多少层,而且跟后来的

2015-12-21 18:57:08 485

原创 Windows Forms编程实战笔记(一至四章)

对于系统提供的类的事件,sender传递了指向引发事件的对象的一个引用,e是EventArgs(有些时候是其子类如ToolStripItemEventArgs)类型,包含了事件所携带的信息,例如在MouseEventArgs里,e包含mouse的xy坐标值。 Tag属性是控件的标识,当需要对控件进行标识又不想让其显示出来的时候,可以使用Tag属性。它是一个Object对象。 Enu

2015-12-21 18:55:09 557

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除