分析一个动态创建表的mysql存储过程

一直以来不用存储过程主要的原因是存储过程的可移植性问题。我在公司经历过的所有项目,到最后几乎都有了数据库移植的需求。客户嫌软件产品太贵,则打包一 个基于免费的mysql的版本给他;客户有钱,对可靠性要求很高,则打包个基于oracle的版本给他。就我工作中接触到的这两种数据库而言,她们的存储 过程语法是大体相似,但不尽相同的。所以,如果将业务逻辑放到存储过程中,就意味着移植需要额外的工作,维护时需要同时维护两套存储过程代码。这样子代价 比较高,所以之前的做法是宁可将业务逻辑在代码中维护,并以一致的标准sql来操作数据库。

      但是,正所谓凡事存在既有她的道理。抛开可移植性问题(移植问题在一些场合里面可能并不是最重要的),将需要多条sql才能完成的操作,放到存储过程中,编译存储在数据库中,执行起来往往是比代码方式高效的。

     明白存储过程的使用场景后,一起来分析mysql5开始引入的存储过程。根据外界传递进来的表名来判断某个表是否存在,不存在的话则动态创建表,这在在mysql下,使用按时间分表的方式来处理大数据量的问题,还是相当有用的。学习下,以备不时之需额。(via 毕竟红尘)

    /*

利用统一开发环境(UDE)开发天气预报

对于大部分在手机用户来讲,天气情况的实时关注已成为趋势,每天早晨起床,看一看今天的天气,做一做提前准备,一天都会有个好心情。下雨带伞,天冷添衣。不用孔明的“观星”,只要手机轻轻一按,便可知“天下” 大事。下面,就让我们来看看天气预报应用程序在UDE环境下的设计思路和开发过程。

 

1)J2ME效果图

 


2013年前端开发者如何提升自己

大部分人非常在意个人在技术上的提升。但是保持对新技术的了解是一项不小的挑战, 毕竟我们需要的信息在数量上过于庞大。2012年里,伴随着前端发展的是大量的革命性突破和对前端的重新定义。

我们在实践的路上飞速前进,具体的进步体现在使用抽象化,优秀的代码质量,维护性上的提升以及更好的性能。如果你实在忙到没有时间来跟上最新的技术,不用担心。

随着假日的来临,我们就有了一些空闲的时间可以自己支配,我想,如果我把我收集的前端相关的精品讨论列表分享出来,那一定会对大家有一些帮助。你不需要把所有的都阅读一遍,但是这些相关的建议会让你了解更多相关的知识,为明年成为一名更好的前工程端开发师做准备。

以下是一些关于前端开发的优秀的PPT,你可以通过文中的链接来访问。

一、基础部分

走在技术前沿的方法

Google发布支持Java 7的App Engine预览版

Google的平台即服务(Platform-as-a-Service)产品App Engine在其10月份的更新中包含了对即将到来的Java 7支持的预览。该更新仅限于开发机使用,Google尚未给出官方支持的时间表,简单说明如下:

在即将发布的版本中,我们将包含一些新的Java 7功能,而且App Engine的Java运行时会正式支持Java 7。在新版本到来之前,我们强烈建议开发者开始使用Java 7来测试其应用程序,同时测试最新的App Engine Java SDK。

Google支持的是Java 7的一个除方法句柄(即InvokeDynamic字节码指令)外的子集,至少目前已经支持Java 7中的所有新增类。不过它的确支持来自Coin项目的新语言特性:

VirtualBox 4.1 正式版发布

虽然曾经的Sun VirtualBox已经更名为Oracle VirtualBox,但是不变的是VirtualBox的开源和强大功能。日前,VirtualBox 4.1正式发布,作为一次较大的版本的升级,4.1版新增了不少功能。VirtualBox 4.1支持克隆虚拟机,对GUI界面也进行了完善,并且将64位主机的内存限制提高到了1TB。VirtualBox 4.1支持Windows、Linux和Mac系统主机,可虚拟的系统包括Windows (NT 4.0、2000、XP、Server 2003、Vista)、DOS/Windows 3.x、Linux (2.4和2.6)、OpenBSD等。

VirtualBox 4.1.0 更新日志:

1、支持虚拟机的克隆
2、改进了创建虚拟磁盘和复制虚拟磁盘的GUI界面;
3、64位主机的内存限制提升到1TB;
4、支持Linux主机下的PCI passthrough;
5、增加WDDM图形卡驱动,Windows虚拟机可以支持Windows Aero效果,支持Direct3D;
6、支持SATA硬盘的热插拔;
7、新的网络模式UDP Tunnel:可轻松实现不同主机上的虚拟机的连接;
8、修复了一些Bug。

MyEclipse 8.6 / 8.5 经典版本注册及官方下载(新增百度网盘)

启动界面

MyEclipse 8.x 最新注册码(有效期至2013年):

Subscriber: java.gzit.org
Subscription Code: wLR8ZC-655431-6852515133486259

注册后:

Subscriber: java.gzit.org
Product ID: E3MP (MyEclipse Professional Subscription)
License version: 1.0
Full Maintenance Included
Subscription expiration date (YYYYMMDD): 20130706
Number of licenses: 986

MyEclipse 6.6 / 6.0 经典版本注册及官方下载(新增百度网盘)

MyEclipse 6.x 最新注册码(有效期至2013年):

Subscriber: java.gzit.org
Subscription Code: wLR8ZC-655411-68525856439453120

注册后:

Subscriber: java.gzit.org
Product ID: E3MP (MyEclipse Professional Subscription)
License version: 1.0
Full Maintenance Included
Subscription expiration date (YYYYMMDD): 20130703
Number of licenses: 966

MyEclipse 5.5 / 5.0 经典版本注册及官方下载(新增百度网盘)

关于界面

MyEclipse 5.x 最新注册码(有效期至2013年):

Subscriber: java.gzit.org
Subscription Code: wLR8ZC-655400-68525856978324228

注册后:

Subscriber: java.gzit.org
Product ID: E3MP (MyEclipse Professional Subscription)
License version: 1.0
Full Maintenance Included
Subscription expiration date (YYYYMMDD): 20130703
Number of licenses: 955

MyEclipse 9.1 Enterprise Workbench 发行说明

标签:

鉴于国内用户访问不到官网,把myeclipse 9.1发行说明简要用中文概述一下:

MyEclipse的9.1企业工作台 发行说明
2011年7月1日

MyEclipse的9.1是MyEclipse的企业工作台IDE为企业Java和Web开发的最新平台,基于Eclipse 3.6 构建,MyEclipse 9.1提供了百多种新的和改进的代码开发,测试和部署功能。以下是关键的新功能和改进功能亮点:

一、Java EE 6
从MyEclipse 9开始,你就可以使用Java EE 6的特性,例如Servlet 3.0 / JSF 2.0 / JPA 2.0 / EJB 3.1和JAX - RS 1.1等等。

二、ICEfaces 2
ICEfaces2可以被添加到JSF2个项目开发下一代的AJAX应用,支持可视化设计ICEfaces2组件和标签而源编辑器提供内容协助和验证。

发布MyEclipse 9.1 / 9.0 / 8.6 / 8.0 / 7.5 / 7.0 / 6.6 / 6.0 / 5.5 等全系列注册码及官方下载地址及高速网盘国内地址

特别说明:
最新的序列号和注册码可用至2013年,具体请移步:
MyEclipse 8.6 / 8.5 经典版本注册及官方下载(新增网盘)
MyEclipse 6.6 / 6.0 经典版本注册及官方下载(新增网盘)
MyEclipse 5.5 / 5.0 经典版本注册及官方下载(新增网盘)

2011/7/1发布的MyEclipse 9.1,支持Java EE 6,ICEfaces 2,64位原生Windows支持,Cocoa,增强的Struts 2等五大特性不得不支持,具体更新列表请参照Myeclipse 9.1更新说明(中文)

MyEclipse 8.6.1 Enterprise Workbench 发行说明

标签:

MyEclipse 8.6.1 Enterprise Workbench
Release Notes November 17, 2010

Overview
1.What's New in MyEclipse 8.6.1 - A Quick Flyover
2.Additional Enhancement / Fix Details for 8.6.1
3.Getting Help
4.Known Issues
5.Discontinued Features
6.License and OSS Information
--------------------------------------------------------------------------------

PING和TELNET用法介绍

标签:

JAVA里的PING是在JDK 1.5后用了新的函数isreachable去实现,具体介绍如下:

1、InetAddress对象的常用方法

  InetAddress类有很多get方法,用来获取主机名,主机地址等信息。主要有:

  byte[] getAddress() 返回次InetAddress对象的原始IP地址,保存为一个byte数组

  String getCanonicalHostName() 获取此IP地址的完全限定域名

  String getHostAddress() 获取IP地址的字符串,返回为一个String

  String getHostName() 获取此IP地址的主机名

  下面一个简单的例子展示这些方法的使用:

Java异常类总结

标签:

  算术异常类:ArithmeticExecption

  空指针异常类:NullPointerException

  类型强制转换异常:ClassCastException

  数组负下标异常:NegativeArrayException

  数组下标越界异常:ArrayIndexOutOfBoundsException

  违背安全原则异常:SecturityException

  文件已结束异常:EOFException

  文件未找到异常:FileNotFoundException

  字符串转换为数字异常:NumberFormatException

  操作数据库异常:SQLException

  输入输出异常:IOException

  方法未找到异常:NoSuchMethodException

  java.lang.AbstractMethodError

  抽象方法错误。当应用试图调用抽象方法时抛出。

如何应用Clone

对于克隆(Clone),Java有一些限制:

  1、被克隆的类必须自己实现Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。Cloneable 接口实际上是个标识接口,没有任何接口方法。

  2、实现Cloneable接口的类应该使用公共方法重写 Object.clone(它是受保护的)。某个对象实现了此接口就克隆它是不可能的。即使 clone 方法是反射性调用的,也无法保证它将获得成功。

  3、在Java.lang.Object类中克隆方法是这么定义的:

  protected Object clone()

  throws CloneNotSupportedException

  创建并返回此对象的一个副本。表明是一个受保护的方法,同一个包中可见。

  按照惯例,返回的对象应该通过调用 super.clone 获得。

  引题:

  举个例子说吧,现在有一个对象比如叫foo,你需要在创建当前对象的一个副本作为存根你能怎么做?

  假如你不用Clone,那么你可以先new一个对象foo1:Foo foo1=new Foo(),然后用foo给foo1对象set值,这样就得到foo的副本foo1;除此之外,别无选择。

Java线程同步的使用

Synchronized,顾名思义,代表线程同步。那么,在java编程中如何使用它呢?

  我们首先来看这样一个情况:对于同一个变量synDemo,我们分别在2个不同的线程中调用synDemo.synMethord1()与synDemo.synMethord2()。
[code]
  package com.cnblogs.gpcuster;/** * * @author Aaron.Guo * */

  public class Tester {public static void main(String[] args) {final SynDemo synDemo = new SynDemo();Thread thread1 = new Thread() {@Overridepublic void run() {// TODO Auto-generated method stub

  super.run();synDemo.synMethord1();}};Thread thread2 = new Thread() {@Overridepublic void run() {// TODO Auto-generated method stub

用trim函数实现去掉空格

1.

   String.trim()

  trim()是去掉首尾空格

  2.

str.replace(" ", ""); 去掉所有空格,包括首尾、中间

  String str = " hell o ";

  String str2 = str.replaceAll(" ", "");

  System.out.println(str2);

  3.或者replaceAll(" +",""); 去掉所有空格

  4.

str = .replaceAll("\\s*", "");

  可以替换大部分空白字符, 不限于空格

  \s 可以匹配空格、制表符、换页符等空白字符的其中任意一个

  5.或者下面的代码也可以去掉所有空格,包括首尾、中间
[code]
  public String remove(String resource,char ch)

  {

  StringBuffer buffer=new StringBuffer();

  int position=0;

  char currentChar;

  while(position

16进制和字节数组互转程序

[code]public static String stringToHexString(String strPart) {

  String hexString = "";

  for (int i = 0; i

  int ch = (int) strPart.charAt(i);

  String strHex = Integer.toHexString(ch);

  hexString = hexString + strHex;

  }

  return hexString;

  }

  private static String hexString="0123456789ABCDEF";

  /*

  * 将字符串编码成16进制数字,适用于所有字符(包括中文)

  */

  public static String encode(String str)

  {

  // 根据默认编码获取字节数组

  byte[] bytes=str.getBytes();

  StringBuilder sb=new StringBuilder(bytes.length*2);

解决Java内存泄露问题方案

内存泄漏的慨念

  1.c/c++是程序员自己治理内存,Java内存是由GC自动回收的。

  我虽然不是很熟悉C++,不过这个应该没有犯常识性错误吧。

  2.什么是内存泄露?

  内存泄露是指系统中存在无法回收的内存,有时候会造成内存不足或系统崩溃。

  在C/C++中分配了内存不释放的情况就是内存泄露。

  3.Java存在内存泄露

  我们必须先承认这个,才可以接着讨论。虽然Java存在内存泄露,但是基本上不用很关心它,非凡是那些对代码本身就不讲究的就更不要去关心这个了。

  Java中的内存泄露当然是指:存在无用但是垃圾回收器无法回收的对象。而且即使有内存泄露问题存在,也不一定会表现出来。

  4.Java中参数都是传值的。

  对于基本类型,大家基本上没有异议,但是对于引用类型我们也不能有异议。

  Java是如何管理内存

对Java进行初始化应避免的问题

为了说明这个问题先给大家出个问题吧:

  请看代码:
[code]
  view plaincopy to clipboardprint?

  public abstract class A {

  public A() {

  initMethod();

  }

  public abstract void initMethod();

  }

  public abstract class A {

  public A() {

  initMethod();

  }

  public abstract void initMethod();

  }

  view plaincopy to clipboardprint?

  public class B extends A {

  static String staticStr = "static1";

  private String testStr = "Test1";

  /*

  * (non-Javadoc)

  *

  * @see A#initMethod()

  */

  public void initMethod() {

如何改善系统对JVM的使用方式

应用程序服务器是一个 Java 进程,它需要 Java 虚拟机(JVM)才能运行以及支持它所运行的 Java 应用程序。在配置应用程序服务器的过程中,可以对设置进行微调以改善系统对 JVM 的使用方式。

  关于本任务

  JVM 为基于 Java 的应用程序提供了运行时执行环境。WebSphere Application Server 是 JVM 运行时环境与基于 Java 的服务器运行时的组合。它可以在不同 JVM 提供程序提供的 JVM 上运行。要确定正在运行 Application Server 的 JVM 的提供程序,请从 WebSphere Application Server 的app_server_root/java/bin 目录中发出 java -fullversion 命令。您也可以检查其中一个服务器的 SystemOut.log。当应用程序服务器启动时,Websphere Application Server 会将关于 JVM 的信息(包括 JVM 提供程序信息)写入此日志文件。

  从调整 JVM 的观点看,有两种主要的 JVM 类型:

  IBM JVM

  基于 Sun HotSpot 的 JVM,其中包括 Solaris 上的 Sun HotSpot JVM 以及 HP 的 JVM for HP-UX

页面

订阅 JAVA技术网 RSS