win7下VS2008升级补丁
VS2008升级补丁
前几天我使用VS2008 就会提示升级, 但是一升级就会出错. 气死俺了 在网上找了一大圈才知道这个补丁,
希望能帮到你.
java图形界面开发-事件监听
6.2.4 事件适配器
适配器类实现一个对应的所有接口,只是方法为空。
public abstract class WindowAdapter implements WindowListener
{
public void windowOpened(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
public void windowClosing(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
}
表6.1 Listener接口与对应的适配器(Adapter)类
接口名称 适配器名称
ComponentListener ComponentAdapter
ContainerListener ContainerAdapter
FocusListener FocusAdapter
KeyListener KeyAdapter
MouseListener MouseAdapter
MouseMotionListener MouseMotionAdapter
WindowListener WindowAdapter
(7)鼠标运动事件
鼠标运动事件发生在鼠标移过某个组件时。
任何组件都可以产生这些事件,通过接口 MouseMotionListener 实现。
该接口有两个方法: mouseDragged(MouseEvent)
mouseMove(MouseEvent)
MouseMotionListener 没有自己的事件类型,替代它的是 MouseEvent 。
被用在 MouseEvent 对象上的方法它都可以使用:
getClickCount( ) 返回鼠标被单击次数(整数)
getPoint( ) 返回鼠标被单击位置的 x ,y 坐标
getX( ) 返回 x 位置
getY( ) 返回 y 位置
(8)窗口事件(WindowEvent)
窗口事件发生在用户打开或关闭一个诸如 Frame 或 Window 的窗口时。任何组件都可以产生这些事件,为了支持它们,类必须实现接口:WindowListener。
接口 WindowListener 中有七个方法:
windowActivated(WindowEvent) 窗口被激活
windowClosed (WindowEvent) 窗口已关闭
windowClosing (WindowEvent) 窗口正在关闭
windowDeactivated (WindowEvent) 窗口失效
windowDeiconified (WindowEvent) 窗口正常化时
windowIconified (WindowEvent) 窗口最小化时
windowOpened (WindowEvent) 窗口被打开
(5)键盘事件(KeyEvent)
发生在键盘上的某个键被按下时。
类为了能够处理这些事件必须实现接口 KeyListener 。
每个产生一个键盘事件的组件上要调用方法 addKeyListener( )
在接口 KeyListener 中有三个方法: public void keyPressed(KeyEvent evt) { //…… }
public void keyReleased(KeyEvent evt)
{ //…… }
public void keyTyped(KeyEvent evt)
{ //…… }
在 KeyEvent 对象上可以使用的方法:
getKeyChar( ) 返回与事件相关的键盘字符的 Unicode 码
.
.
.
.
.
.
.
.
.
.
.
.
.
.
java事件监听器
当你将一个类用作事件监听器时,你已经设置好一个特定的事件类型,它会用该类进行监听。接下来的操作是:一个匹配的监听器必须被加入到该组件中
组件被创建之后,可以在组件上调用如下方法来将监听器与它联系起来
addActionListener( ) 可用于 Button,Check, TexyField 等组件
addAdjustmentListener( ) 可用于 ScrollBar 组件
addFocusListener( ) 可用于所有可视化组件
addItemListener( ) 可用于 Button,CheckBox 等组件
addKeyListener( ) 可用于所有可视化组件
addMouseListener( ) 可用于所有可视化组件
addMouseMotionListener( ) 可用于所有可视化组件
addWindowsListener( ) 可用于 Window,Frame等组件
例:下面语句创建一个 Button 对象,并将它与动作事件监听器联系起来
Button button = new Button( “OK” ) ; button . addActionListener ( this ) ; //this 指明当前类就是事件监听器
2 使用方法
(1)动作事件(ActionEvent)
发生在用户完成了使用下列组件之一的动作: Button , CheckBox , ComboBox , TextField , RadioButton
类为了能够处理这些事件必须实现接口 ActionListener 。
每个产生一个动作事件的组件上要调用方法 addActionListener( )
方法 actionPerformed(ActionEvent evt) 是接口 ActionListener 惟一的 方法采用如下格式: public void actionPerformed(ActionEvent evt) { //…… }
在 ActionEvent 对象上可以使用的方法:
getSource( ) 获取产生事件组件的组件名
getActionCommand( ) 获取与组件有关的文本,如命令按钮的标签
键盘事件(KeyEvent)
发生在键盘上的某个键被按下时。
类为了能够处理这些事件必须实现接口 KeyListener 。
每个产生一个键盘事件的组件上要调用方法 addKeyListener( )
在接口 KeyListener 中有三个方法: public void keyPressed(KeyEvent evt) { //…… }
public void keyReleased(KeyEvent evt)
{ //…… }
public void keyTyped(KeyEvent evt)
{ //…… }
在 KeyEvent 对象上可以使用的方法:
getKeyChar( ) 返回与事件相关的键盘字符的 Unicode 码
.
.
.
.
.
.
.
.
.
.
java图形界面开发,简单的计算器
package day16.pm;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class CalcultorA {
public static void main(String[] args){
JFrame jf=new JFrame("我的计算器v1.0");
jf.setLayout(new BorderLayout());
JPanel northPanel=new JPanel();
JPanel centerPanel=new JPanel();
northPanel.setLayout(new FlowLayout());
centerPanel.setLayout(new GridLayout(4,4));
JTextField jtf=new JTextField(20);
jtf.setFont(new Font("宋体",Font.BOLD,20));
northPanel.add(jtf);
northPanel.add(new JButton("C"));
...........
.
.
.
.
.
.
.
.
.
.
.
.
.
代码批量替换(自己在服务器上用的很好用)
专业替换工具, 我自己再服务器上用的, 我一次性替换了9000个html页面代码, 很好用... 希望能给你带来方便!
java中文版API1.6
最新最全最好的java中文版API 1.6.
此 API 文档的组织方式
此 API(应用程序编程接口)文档包含对应于导航栏中的项目的页面,如下所述。
概述
概述 页面是此 API 文档的首页,提供了所有软件包的列表及其摘要。此页面也可能包含这些软件包的总体描述。
软件包
每个软件包都有一个页面,其中包含它的类和接口的列表及其摘要。此页面可以包含四个类别:
接口(斜体)
类
枚举
异常
错误
注释类型
类/接口
每个类、接口、嵌套类和嵌套接口都有各自的页面。其中每个页面都由三部分(类/接口描述、摘要表,以及详细的成员描述)组成:
类继承图
直接子类
所有已知子接口
所有已知实现类
类/接口声明
类/接口描述
嵌套类摘要
字段摘要
构造方法摘要
方法摘要
字段详细信息
构造方法详细信息
方法详细信息
每个摘要条目都包含该项目的详细描述的第一句。摘要条目按字母顺序排列,而详细描述则按其在源代码中出现的顺序排列。这样保持了程序员所建立的逻辑分组。
注释类型
每个注释类型都有各自的页面,其中包含以下部分:
注释类型声明
注释类型描述
必需元素摘要
可选元素摘要
元素详细信息
枚举
每个枚举都有各自的页面,其中包含以下部分:
枚举声明
枚举描述
枚举常量摘要
枚举常量详细信息
使用
每个已文档化的软件包、类和接口都有各自的“使用”页面。此页面介绍了使用给定类或软件包的任何部分的软件包、类、方法、构造方法和字段。对于给定的类或接口 A,其“使用”页面包含 A 的子类、声明为 A 的字段、返回 A 的方法,以及带有类型为 A 的参数的方法和构造方法。访问此页面的方法是:首先转至软件包、类或接口,然后单击导航栏中的“使用”链接。
树(类分层结构)
对于所有软件包,有一个 类分层结构 页面,以及每个软件包的分层结构。每个分层结构页面都包含类的列表和接口的列表。从 java.lang.Object 开始,按继承结构对类进行排列。接口不从 java.lang.Object 继承。
查看“概述”页面时,单击“树”将显示所有软件包的分层结构。
查看特定软件包、类或接口页面时,单击“树”将仅显示该软件包的分层结构。
已过时的 API
已过时的 API 页面列出了所有已过时的 API。一般由于进行了改进并且通常提供了替代的 API,所以建议不要使用已过时的 API。在将来的实施过程中,可能会删除已过时的 API。
索引
索引 包含按字母顺序排列的所有类、接口、构造方法、方法和字段的列表。
华为内部资料,java编程性能(跟面试代码有关)
免责声明:共享只为拿分,请勿传播java编程性能
KindEditor解决ie6,ie7,ie8,ie9 浏览器兼容问题!
KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。 KindEditor 使用 JavaScript 编写,可以无缝地与 Java、.NET、PHP、ASP 等程序集成,比较适合在 CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用。
360官方公布的服务器安全配置详细步骤
服务器安全配置 官方公布的, 我用很好的。 希望给你们能带来帮助
冲击波病毒专杀,
我的服务器开机 弹出一个对话框提示自动关机剩余30秒。 在网上找了好多专杀工具,可惜都不能解决,雷死我了, 最后还是找到一个 非常好用的工具, 共享下....
java 异常总结
其他还有很多异常,我就不一一列举了,我要说明的是,一个合格的程序员,需要对程序中常见的问题有相当的了解和相应的解决办法,否则仅仅停留在写程序而不会改程序的话,会极大影响到自己的开发的。关于异常的全部说明,在api里都可以查阅。
算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下标越界异常:ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
方法未找到异常:NoSuchMethodException
java.lang.AbstractMethodError 抽象方法错误。当应用试图调用抽象方法时抛出。
java.lang.AssertionError 断言错。用来指示一个断言失败的情况。
java.lang.ClassCircularityError 类循环依赖错误。在初始化一个类时,若检测到类之间循环依赖则抛出该异常。
java.lang.ClassFormatError 类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。
java.lang.Error 错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况。
java.lang.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。
java.lang.IllegalAccessError 违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常。
java.lang.IncompatibleClassChangeError 不兼容的类变化错误。当正在执行的方法所依赖的类定义发生了不兼容的改变时,抛出该异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新编译而直接运行的情况下,容易引发该错误。
java.lang.InstantiationError 实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常.
java.lang.InternalError 内部错误。用于指示Java虚拟机发生了内部错误。
java.lang.LinkageError 链接错误。该错误及其所有子类指示某个类依赖于另外一些类,在该类编译之后,被依赖的类改变了其类定义而没有重新编译所有的类,进而引发错误的情况。
java.lang.NoClassDefFoundError 未找到类定义错误。当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误。
java.lang.NoSuchFieldError 域不存在错误。当应用试图访问或者修改某类的某个域,而该类的定义中没有该域的定义时抛出该错误。
java.lang.NoSuchMethodError 方法不存在错误。当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。
java.lang.OutOfMemoryError 内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。
java.lang.StackOverflowError 堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。
java.lang.ThreadDeath 线程结束。当调用Thread类的stop方法时抛出该错误,用于指示线程结束。
java.lang.UnknownError 未知错误。用于指示Java虚拟机发生了未知严重错误的情况。
java.lang.UnsatisfiedLinkError 未满足的链接错误。当Java虚拟机未找到某个类的声明为native方法的本机语言定义时抛出。
java.lang.UnsupportedClassVersionError 不支持的类版本错误。当Java虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前Java
JAVA集合(List,Set,Map)
Java 2集合框架图 集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。 抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。 实现类:8个实现类(实线表示),对接口的具体实现。 在很大程度上,一旦您理解了接口,您就理解了框架。虽然您总要创建接口特定的实现,但访问实际集合的方法应该限制在接口方法的使用上;因此,允许您更改基本的数据结构而不必改变其它代码。 · Collection 接口是一组允许重复的对象。 · Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制。 · List 接口继承 Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。 · Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。 · 容器中的元素类型都为Object。从容器取得元素时,必须把它转换成原来的类型。 Java 2简化集合框架图 集合接口 1.Collection 接口 用于表示任何对象或元素组。想要尽可能以常规方式处理一组元素时,就使用这一接口。 (1) 单元素添加、删除操作: boolean add(Object o):将对象添加给集合 boolean remove(Object o): 如果集合中有与o相匹配的对象,则删除对象o (2) 查询操作: int size() :返回当前集合中元素的数量 boolean isEmpty() :判断集合中是否有任何元素 boolean contains(Object o) :查找集合中是否含有对象o
Java关键字大全
Java关键字大全
2.boolean
变量的值可以是 true 或 false。
-示例-
boolean valid = true;
if (valid){
<statement>
}
-注释-
boolean 变量只能以 true 或 false 作为值。
boolean 不能与数字类型相互转换。
包含 boolean 操作数的表达式只能包含 boolean 操作数。
Boolean 类是 boolean 原始类型的包装对象类。
3.break
用于提前退出 for、while 或 do 循环,或者在 switch 语句中用来结束 case 块。
-示例-
for (i=0; i<max; i++){
if (<loop finished early>){
break;
}
}
int type = <some value>;
switch (type){
case 1:
<statement>
break;
case 2:
<statement>
break;
default:
<statement>
}
-注释-
break 总是退出最深层的 while、for、do 或 switch 语句。
4.byte
byte 是 Java 原始类型。
byte 可存储在 [-128, 127] 范围以内的整数值。
-示例-
byte b = 124;
-注释-
Byte 类是 byte 原始类型的包装对象类。它定义代表此类型的值的范围的 MIN_VALUE 和 MAX_VALUE 常量。
Java 中的所有整数值都是 32 位的 int 值,除非值后面有 l 或 L(如 235L),这表示该值应解释为 long。
case
用来标记 switch 语句中的每个分支。
-示例-
int arg = <some value>;
switch (arg){
case 1:
<statements>
break;
case 2:
<statements>
break;
default:
<statements>
break;
}
-注释-
case 块没有隐式结束点。break 语句通常在每个 case 块末尾使用,用于退出 switch 语句。
如果没有 break 语句,执行流将进入所有后面的 case 和/或 default 块。
6.catch
catch 关键字用来在 try-catch 或 try-catch-finally 语句中定义异常处理块。
-示例-
try{
<可能引发异常的块>
}
catch (<java.lang.Exception 或子类> e){
<处理异常 e 的代码>
}
try{
<可能引发其他异常的块>
}
catch (FooException e){
<处理 FooException e 的代码>
}
catch (BarException e){
<处理 BarException e 的代码>
}
try{
<可能引发异常的块>
}
catch (<java.lang.Exception 或子类> e){
java反射配置文件实现
用反射原理 从配置文件中读取数据
public static void main(String[] args) throws Exception{
Properties pro=new Properties();
pro.load(new FileInputStream("fanshe.txt"));
//Class c=null;
String classNames =pro.getProperty("ClassName"); //代表 包名.类名
String FieldNames=pro.getProperty("FieldName"); //代表 属性 姓名
String FieldValues=pro.getProperty("FieldValue");//代表 属性 姓名 值
String SetFieldValues=pro.getProperty("SetFieldValue");//代表 属性 姓名 值
String FieldAges=pro.getProperty("FieldAge"); //代表 属性 年龄
int FieldAgeValues= 20;//代表 属性 年龄 值
String MethodNames=pro.getProperty("MethodName");//代表 方法名
String ParameterValues=pro.getProperty("ParameterValue"); //代表 参数值
String ParameterTypes=pro.getProperty("ParameterType"); //代表 参数类型
try {
Class c=Class.forName(classNames);
Object obj=c.newInstance(); // 创建实例, 生成对象;
Constructor con=c.getDeclaredConstructor(String.class,int.class); // 反映此 Class 对象所表示的类或接口的指定构造方法。
/* 跟 Student类中的两个参数的构造方法对应
* public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}*/
...........................
Java夜未眠-蔡学镛--高手
蔡学镛 现任 梦工厂首席技术总监兼框架师Java夜未眠
server-u(ftp)
server-u(ftp)server-u(ftp)server-u(ftp)
Domain4.1(明小子)0720更新版.rar
1.基于08.10.01号内核提升,修正一次关键错误。
2.替换原程序自带的那个小马,该为最新美化免杀版的小马!
3.添加一个服务器挂钩程序(非插件),使修改后的新内核兼容vista系统。
4.程序数据库默认名为:SetData.mdb 请大家使用3.5版本以上的MDB数据.其他低版本程序可能不兼容!
5.删除后台下载统计代码(以前没发现,本人也是从网站上面下的软件,排除作者自添加行为)
6.加了一个补针,针对sql注入功能中的一个小BUG。
7.删除了很多没有用的代码,最大限度的优化程序启动速度。
8.更新部分在xpsp3下出错的几个小BUG(小问题小解决,这个错误仅针对部分优化过度的XPSP3系统)。
提记:很多朋友说需要修改下程序IP域名查询功能,这里说明下.由于内核找不到关键句柄导致无法更新,下个版本在仔细看看!
oracle支持的数据类型
常用的数据库字段类型如下:
字段类型 中文说明 限制条件 其它说明
CHAR 固定长度字符串 最大长度2000 bytes
VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749
NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes
NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes
DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过严格测试,无千虫问题
LONG 超长字符串 最大长度2G(231-1) 足够存储大部头著作
RAW 固定长度的二进制数据 最大长度2000 bytes 可存放多媒体图象声音等
LONG RAW 可变长度的二进制数据 最大长度2G 同上
BLOB 二进制数据 最大长度4G
CLOB 字符数据 最大长度4G
NCLOB 根据字符集而定的字符数据 最大长度4G
BFILE 存放在数据库外的二进制数据 最大长度4G
ROWID 数据表中记录的唯一行号 10 bytes ********.****.****格式,*为0或1
NROWID 二进制数据表中记录的唯一行号 最大长度4000 bytes
NUMBER(P,S) 数字类型 P为整数位,S为小数位
DECIMAL(P,S) 数字类型 P为整数位,S为小数位
INTEGER 整数类型 小的整数
FLOAT 浮点数类型 NUMBER(38),双精度
REAL 实数类型 NUMBER(63),精度更高
数据类型 参数 描述
char(n) n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)
贪吃蛇Java源码
public class GreedSnake implements KeyListener
{
JFrame mainFrame;
Canvas paintCanvas;
JLabel labelScore;//计分牌
SnakeModel snakeModel=null;// 蛇
public static final int canvasWidth=200;
public static final int canvasHeight=300;
public static final int nodeWidth=10;
public static final int nodeHeight=10;
//----------------------------------------------------------------------
//GreedSnake():初始化游戏界面
//----------------------------------------------------------------------
public GreedSnake()
{
//设置界面元素
mainFrame=new JFrame("GreedSnake");
Container cp=mainFrame.getContentPane();
labelScore=new JLabel("Score:");
cp.add(labelScore,BorderLayout.NORTH);
paintCanvas=new Canvas();
paintCanvas.setSize(canvasWidth+1,canvasHeight+1);
paintCanvas.addKeyListener(this);
cp.add(paintCanvas,BorderLayout.CENTER);
JPanel panelButtom=new JPanel();
panelButtom.setLayout(new BorderLayout());
JLabel labelHelp;// 帮助信息
labelHelp=new JLabel("PageUp, PageDown for speed;",JLabel.CENTER);
panelButtom.add(labelHelp,BorderLayout.NORTH);
labelHelp=new JLabel("ENTER or R or S for start;",JLabel.CENTER);
panelButtom.add(labelHelp,BorderLayout.CENTER);
labelHelp=new JLabel("SPACE or P for pause",JLabel.CENTER);
panelButtom.add(labelHelp,BorderLayout.SOUTH);
cp.add(panelButtom,BorderLayout.SOUTH);
mainFrame.addKeyListener(this);
mainFrame.pack();
mainFrame.setResizable(false);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setVisible(true);
begin();
。
。
。
。
。
。
。
JDBC事务处理机制探秘
1、JavaBean中使用JDBC事务处理
在JDBC中怎样将多个SQL语句组合成一个事务呢?在JDBC中,打开一个连接对象Connection时,缺省是auto-commit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动的得到事务确认。为了能将多个SQL语句组合成一个事务,要将auto-commit模式屏蔽掉。在auto-commit模式屏蔽掉之后,如果不调用commit()方法,SQL语句不会得到JDBC事务处理确认。在最近一次commit()方法调用之后的所有SQL会在方法commit()调用时得到确认。
1. public int delete(int sID) {
2. dbc = new DataBaseConnection();
3. Connection con = dbc.getConnection();
4. try {
5. con.setAutoCommit(false);// 更改JDBC事务的默认提交方式
6. dbc.executeUpdate("delete from bylaw where ID=" + sID);
7. dbc.executeUpdate("delete from bylaw _content where ID=" + sID);
8. dbc.executeUpdate("delete from bylaw _affix where bylawid=" + sID);
9. con.commit();//提交JDBC事务
10. con.setAutoCommit(true);// 恢复JDBC事务的默认提交方式
11. dbc.close();
12. return 1;
13. }
14. catch (Exception exc) {
15. con.rollBack();//回滚JDBC事务
16. exc.printStackTrace();
17. dbc.close();
18. return -1;
19. }
20. }
2、SessionBean中的JTA事务
。
。
。
。
。
。
。
。
。
JDBC与Hibernate区别
JDBC与Hibernate在性能上相比,JDBC灵活性有优势。而Hibernate在易学性,易用性上有些优势。当用到很多复杂的多表联查和复杂的数据库操作时,JDBC有优势。
相同点:
◆两者都是JAVA的数据库操作中间件。
◆两者对于数据库进行直接操作的对象都不是线程安全的,都需要及时关闭。
◆两者都可以对数据库的更新操作进行显式的事务处理。
不同点:
◆使用的SQL语言不同:JDBC使用的是基于关系型数据库的标准SQL语言,Hibernate使用的是HQL(Hibernate query language)语言
◆操作的对象不同:JDBC操作的是数据,将数据通过SQL语句直接传送到数据库中执行,Hibernate操作的是持久化对象,由底层持久化对象的数据更新到数据库中。
◆数据状态不同:JDBC操作的数据是“瞬时”的,变量的值无法与数据库中的值保持一致,而Hibernate操作的数据是可持久的,即持久化对象的数据属性的值是可以跟数据库中的值保持一致的。
JDBC与Hibernate读取性能
。
。
。
。
。
。
。
。
sequence等同于序列号
在Oracle数据库中,sequence等同于序列号,每次取的时候sequence会自动增加,一般会作用于需要按序列号排序的地方。
1、Create Sequence
(注释:你需要有CREATE SEQUENCE或CREATE ANY SEQUENCE权限)
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 —— 每次加几个
START WITH 1 —— 从1开始计数
MAXVALUE —— 最大值值
NOMAXVALUE —— 不设置最大值
NOCYCLE —— 一直累加,不循环
CYCLE
CACHE 10;
只要定义了emp_sequence,你就可以用使CURRVAL,NEXTVAL
CURRVAL=返回 sequence的当前值
NEXTVAL=增加sequence的值,然后返回 sequence 值
例如:
emp_sequence.CURRVAL
emp_sequence.NEXTVAL
insert into dept (deptno, dname, loc) values (emp_sequence.nextval, '物流部', '苏州');
//查询序列的当前值
select emp_sequence.currval from dual;
可以使用sequence的地方:
。 不包含子查询、snapshot、VIEW的 SELECT 语句
。INSERT语句的子查询中
。NSERT语句的VALUES中
。UPDATE 的 SET中
可以看如下例子:
Oracle最实用函数大全
SQL中的单记录函数
1.ASCII
返回与指定的字符对应的十进制数;
SQL> select ascii(’A’) A,ascii(’a’) a,ascii(’0’) zero,ascii(’ ’) space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32
2.CHR
给出整数,返回对应的字符;
SQL> select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
-- -
赵 A
3.CONCAT
连接两个字符串;
SQL> select concat(’010-’,’88888888’)||’转23’ 高乾竞电话 from dual;
高乾竞电话
----------------
010-88888888转23
4.INITCAP
返回字符串并将字符串的第一个字母变为大写;
SQL> select initcap(’smith’) upp from dual;
UPP
-----
Smith
5.INSTR(C1,C2,I,J)
在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1
SQL> select instr(’oracle traning’,’ra’,1,2) instring from dual;
INSTRING
---------
9
6.LENGTH
返回字符串的长度;
SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst;
NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL))
------ ------------ ---------------- ------------ --------- --------------------
高乾竞 3 北京市海锭区 6 9999.99 7
7.LOWER
返回字符串,并将所有的字符小写
SQL> select lower(’AaBbCcDd’)AaBbCcDd from dual;
AABBCCDD
--------
aabbccdd
8.UPPER
返回字符串,并将所有的字符大写
SQL> select upper(’AaBbCcDd’) upper from dual;
UPPER
--------
AABBCCDD
9.RPAD和LPAD(粘贴字符)
RPAD 在列的右边粘贴字符
LPAD 在列的左边粘贴字符
SQL> select lpad(rpad(’gao’,10,’*’),17,’*’)from dual;
LPAD(RPAD(’GAO’,1
-----------------
*******gao*******
不够字符则用*来填满
10.LTRIM和RTRIM
LTRIM 删除左边出现的字符串
RTRIM 删除右边出现的字符串
SQL> select ltrim(rtrim(’ gao qian jing ’,’ ’),’ ’) from dual;
LTRIM(RTRIM(’
-------------
gao qian jing
SQLServer和Oracle常用函数对比
数学函数
1.绝对值
S:selectabs(-1)value
O:selectabs(-1)valuefromdual
2.取整(大)
S:selectceiling(-1.001)value
O:selectceil(-1.001)valuefromdual
3.取整(小)
S:selectfloor(-1.001)value
O:selectfloor(-1.001)valuefromdual
4.取整(截取)
S:selectcast(-1.002asint)value
O:selecttrunc(-1.002)valuefromdual
5.四舍五入
S:selectround(1.23456,4)value1.23460
O:selectround(1.23456,4)valuefromdual1.2346
6.e为底的幂
S:selectExp(1)value2.7182818284590451
O:selectExp(1)valuefromdual2.71828182
7.取e为底的对数
S:selectlog(2.7182818284590451)value1
O:selectln(2.7182818284590451)valuefromdual;1
8.取10为底对数
。
。
。
。
。
。
。
。
。
Oracle 基础语句 函数大全(字符串函数
ORACLE PL/SQL 字符串函数、数学函数、日期函数
--【字符串函数】
--字符串截取substr(字段名,起始点,个数)
select Name,substr(Name,2,4),substr(Name,0,3),substr(Name,-2,3),substr(Name,-2,1) from t1;
--字符串从前面取三个(0开始)
select Name,substr(Name,0,3) from t1;
--字符串从后面取三个
select Name,substr(Name,-3,3),length(Name) 串长度 from t1;
SELECT ASCII('A'),ASCII('B') from dual;
select CHR(100),CHR(80) from dual;
select CONCAT(CHR(65),CONCAT(CHR(67),CHR(98))) from dual;
select CHR(65)||CHR(66)||CHR(76) from dual;
--将每个单词的第一个字母大写其它字母小写返回。
select INITCAP('substr,abc,substring') from dual;
--返回i在MISSISSIPPI中第3次出现的位置,
select INSTR('Mississippi','i',5,3) from dual;
select INSTR('Mississippi','i',-2,3) from dual;
--返回的是字节
select INSTRB('Mississippi','i',5,3) from dual;
select INSTRB('Mississippi','i',-2,3) from dual;
--长度
select length('WHO ARE YOU') from dual;
select nvl(null,'空') from dual;
--小写
select lower('WHo are You') from dual;
--LPAD左侧用字符串补足到一定长度
select LPAD('DFSDf................',9,'WHO') from dual;
select LPAD('DFSD',9,'WHO') from dual;
select LPAD('DFSD',9,'') from dual;
select LPAD('DFSD',length('DFSD')+length('WHO......'),'WHO......') from dual;
--把最左边的字符去掉,使其第一个字符不在其中
select ltrim('Mississippi','Mis') from dual;
select ltrim('Mississippi','miD') from dual;
--RPAD右侧用字符串补足到一定长度
select RPAD('DFSDf................',9,'WHO') from dual;
select RPAD('DFSD',9,'WHO') from dual;
select RPAD('DFSD',9,'') from dual;
.
.
.
.
.
.
.
Oracle数据库使用及命名规则的详解
二、 注释说明
1. 本注释说明主要用于PL/SQL程序及其它SQL文件,其它可作参考;
2. SQLPLUS接受的注释有三种:
―― 这儿是注释
/* 这儿是注释 */
REM 这儿是注释
3. 开始注释,类似JAVAK中的开始注释,主要列出文件名,编写日期,版权说明,程序功能以及修改记录:
REM
REM $Header: filename, version, created date,auther
REM
REM Copyright
REM
REM FUNCTION
REM function explanation
REM
REM NOTES
REM
REM MODIFIED (yy/mm/dd)
REM who when - for what, recently goes first
4. 块注释,如表注释,PROCEDURE注释等,同JAVA:
/*
* This table is for TrustPass
* mainly store the information
* of TrustPass members
*/
5. 单行注释,如列注释:
login_id VARCHAR2(32) NOT NULL, -- 会员标识
三、 缩进
低级别语句在高级别语句后的,一般缩进4个空格:
DECLARE
v_MemberId VARCHAR2(32),
BEGIN
SELECT admin_member_id INTO v_MemberId
FROM company
WHERE id = 10;
DBMS_OUTPUT.PUT_LINE(v_MemberId);
END;
同一语句不同部分的缩进,如果为sub statement,则通常为2个空格,如果与上一句某部分有密切联系的,则缩至与其对齐:
BEGIN
FOR v_TmpRec IN
(SELECT login_id,
gmt_created, -- here indented as column above
satus
FROM member -- sub statement
WHERE site = 'china'
AND country='cn' )
LOOP
NULL;
END LOOP;
END;
四、 断行
• 一行最长不能超过80字符
Oracle最常用的语句
Oracle 最常用的命令
1.登陆系统用户 :sqlplus 然后输入系统用户名和密码
登陆别的用户 : conn 用户名/密码;
2.创建表空间
create tablespace 空间名
datafile 'c:\空间名' size 15M --表空间的存放路径,初始值为15M
autoExtend on next 10M --空间的自动增长的值是10M
permanent online; --永久使用
3.创建用户
create user shi --创建用户名为shi
identified by scj --创建密码为scj
default tablespace 表空间名 --默认表空间名
temporary tablespace temp --临时表空间为temp
profile default --受profile文件的限制
quota unlimited on 表空间名; --在表空间下面建表不受限制
4.创建角色
create role 角色名 identified by 密码;
5.给角色授权
grant create session to 角色名;--给角色授予创建会话的权限
grant 角色名 to 用户名; --把角色授予用户
6.给用户授予权限
grant connect,resource to shi;--给shi用户授予所有权限
Grant dba to shi;-给shi 用户授予DBA权限
grant create table to shi; --给shi用户授予创建表的权限
7.select table_name from user_tables; 察看当前用户下的所有表
8.select tablespace_name from user_tablespaces; 察看当前用户下的 表空间
9.select username from dba_users;察看所有用户名称命令 必须用sys as sysdba登陆
10.创建表
create table 表名
(
id int not null,
name varchar2(20) not null
)tablespace 表空间名 --所属的表空间
storage
(
initial 64K --表的初始值
minextents 1 --最小扩展值
maxextents unlimited --最大扩展值
);
11.--为usrs表添加主键和索引
alter table users
add constraint pk primary key (ID);
12.为已经创建users表添加外键
alter table users
add constraint fk_roleid foreign key (roleid)
references role(role_id) on delete cascad; --下边写主表的列
on delete cascad是创建级联
13.把两个列连接起来
select concat(name,id) from 表名; --把name和id连接起来
14.截取字符串
select column(name,'李') from 表名; --把name中的‘李’去掉
15.运行事务之前必须写
set serveroutput on; --打开输入输出(不写的话,打印不出信息)
ISAPI_RewriteiIS伪静态windows764位系统
ISAPI_RewriteiIS伪静态windows764位系统 很好用的,我服务器上就装的这个
HTML & XML 转义字符
HTML中<, >,&等有特殊含义,(前两个字符用于链接签,&用于转义),不能直接使用。使用这三个字符时,应使用它们的转义序列,如下所示:
& 或 & & 和
< 或 < < 小于号
> 或 > > 大于号
" " 双引号
空格
© © 版权符
® ® 注册符
前者为字符转义序列,后者为数字转义序列。数字转为字符对应的ASCII码值。例如 & lt; font >显示为,<font>,若直接写为则被认为是一个链接签。
需要说明的是:
a. 转义序列各字符间不能有空格;
b. 转义序列必须以";"结束; c. 单独的&不被认为是转义开始;
d.区分大小写。
另一个需要转义的字符是引号,它的转义序列为"" "或"""
HTML使用的字符集是ISO &859; Larin-1字符集,该字符集中有许多标准键盘上无法输入的字符。对这些特殊字符只能使用转义序列。
XML转义字符
不合法的XML字符必须被替换为相应的实体。
如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始
三步学会Java Socket编程
第一步 充分理解Socket
1.什么是socket
所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。
重要的Socket API:
java.net.Socket继承于java.lang.Object,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法,其它方法大家可以见JDK-1.3文档。
. Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。
. getInputStream方法获得网络连接输入,同时返回一个IutputStream对象实例,。
. getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。
注意:其中getInputStream和getOutputStream方法均会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。
2.如何开发一个Server-Client模型的程序
开发原理:
服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。
客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。
{建立服务器}
import java.net.*;
import java.io.*;
......
.
.
.
.
.
.
.
.
javaQQ聊天室+SocketTCP
package ChatRoomTCPQQ聊天室;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JOptionPane;
public class ChatRoomClent {
private Socket s;
public ChatRoomClent(String host,int port){
try {
s=new Socket(host,port);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void sendMessage(String str){
PrintWriter pw=null;
try {
pw=new PrintWriter(s.getOutputStream());
pw.println(str);
pw.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
public String reciveMessage(){
BufferedReader br=null;
String str="";
try {
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
str = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
}
Java 简单的窗口+菜单栏
public MenuTest(){
frame=new JFrame("菜单测试!");
bar=new JMenuBar();
file=new JMenu("文件");
edit=new JMenu("编辑");
view=new JMenu("视图");
items=new JMenuItem[3][];
addItem();
addEventHandler();
}
public void addItem(){
items[0]=new JMenuItem[5];
file.add(items[0][0]=new JMenuItem("新建"));
file.add(items[0][1]=new JMenuItem("打开..."));
file.addSeparator();
file.add(items[0][2]=new JMenuItem("保存"));
file.add(items[0][3]=new JMenuItem("另存为..."));
file.addSeparator();
file.add(items[0][4]=new JMenuItem("退出"));
items[1]=new JMenuItem[3];
edit.add(items[1][0]=new JMenuItem("查找"));
edit.add(items[1][1]=new JMenuItem("替换..."));
edit.add(items[1][2]=new JMenuItem("复制"));
items[2]=new JMenuItem[2];
view.add(items[2][0]=new JMenuItem("字体..."));
view.add(items[2][1]=new JMenuItem("颜色..."));
bar.add(file);
resources 汉版dw4 to css
DreamweaverCS4_汉版dw4 to css
就是dw4工具 把 英文版的css汉化.
很好用的呃