再谈mysql的limit

在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。

SELECT * FROM table  LIMIT [offset,] rows | rows OFFSET offset

LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。

mysql> SELECT * FROM table LIMIT 5,10;  // 检索记录行 6-15
 
//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: 
mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.
 
//如果只给定一个参数,它表示返回最大的记录行数目: 
mysql> SELECT * FROM table LIMIT 5;     //检索前 5 个记录行
 
//换句话说,LIMIT n 等价于 LIMIT 0,n。
2011年11月18日 | 归档于 Mysql

Eclipse项目包按层次关系显示

Wndow->Navigation->Show View menu->Package presentation->Hierarchical”

2011年11月16日 | 归档于 Java

spring jdbc的结果缓存

网上收集一些文章

http://ehcache.org/documentation/user-guide/jdbc#the-example-files

http://blog.goyello.com/2010/07/29/quick-start-with-ehcache-annotations-for-spring/

http://www.blogjava.net/176142998/archive/2009/02/03/221507.html

http://www.blogjava.net/zzzlyr/articles/343234.html

http://blog.csdn.net/wzl002/article/details/6012225

2011年11月15日 | 归档于 Java, Mysql

java支持动态脚步语言

今天才知道java支持动态脚步语言,比如:javascript、python、ruby等等,下面一个经典的例子:

1
2
3
4
5
6
7
8
import javax.script.*;
public class HelloWorld {
  public static void main(String[] args) throws ScriptException {
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("JavaScript");
    engine.eval("print ('Hello World')");
  }
}
2011年10月31日 | 归档于 Java

eclipse 无法启动 JVM terminated. Exit code=-1

今天见鬼了,上午FlashBuilder启动报错,晚上eclipse启动报错。
晚上启动eclipse报 JVM terminated. Exit code=-1
解决办法和上次一样,修改eclipse.ini

-Xms256m改成-Xms128m,把Xmx512m  改为 Xmx256m,

改完后,正常启动了。

我估计是因为多个jvm导致,所有的配置要一致。

PPStream导致网页打不开的解决办法

昨天晚上下载了一个PPStream 看了一个电影,我也是很少用PPStream,后来打开一个网页,发现打不开了,超级郁闷.
QQ和ppStream都正常,说明网是通的,只是DNS有问题,我折腾了20分钟左右才搞定,解决办法如下:

1,用360安全卫士修复一下(虽然没啥用,但是还要重新修复一下吧),重启后发现还是没有解决。

2,这个时候发现tcp/ip被设置为自动获取了,你要自己把ip填上,及dns地址。

3,DNS填写你所在地区的dns外(我填的192.168.1.1),备用dns填google的(8.8.8.8)。

我就是这样解决的,很奇怪,配置和以前完全一样,360修复的也没什么作用.

FlashBuilder4.5启动时报Failed to create the Java Virtual Machine

根据网上介绍,在FlashBuilder.exe的同级目录有个FlashBuilder.ini文件,在文件中追加下面一行参数就可以了:

1
-XX:MaxPermSize=128M

FlashBuilder.ini的全部内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-nl
zh_CN
-startup
eclipse/plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
eclipse/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810
--launcher.defaultAction
openFile
-vmargs
-Xms256m
-Xmx512m
-XX:MaxPermSize=256m
-XX:PermSize=64m
-XX:MaxPermSize=128M
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=eclipse/dropins
-Declipse.application=com.adobe.flexbuilder.standalone.FlashBuilderApplication

该参数的意思google了一下,大概解释如下:
“为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?
  通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种:堆内存和非堆内存,另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动主要有以下几种原因:
  1) 参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;
  2) -Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。说到实际物理内存这里需要说明一点的是,如果你的内存是1024MB,但实际系统中用到的并不可能是1024MB,因为有一部分被硬件占用了。”

Mysql多表关联修改及删除数据

不多说了,直接贴出sql脚本
 

1
update hero h join sdata s on h.sdata_id = s.id set h.value = g.value;

删除也是同样的操作.例如:

1
delete h.* from hero h join sdata s on h.sdata_id = s.id set h.value = g.value;
2011年10月26日 | 归档于 Mysql

java读写Properties文件

读取Properties有两种方法,
一种是用classloader获取流,代码如下:

1
2
3
4
Properties p = new Properties();
InputStream is = this.getClass().getResourceAsStream("config.properties");
p.load(is);
is.close();

另外一种是直接使用文件流:

1
2
3
4
Properties p = new Properties();
InputStream is = new FileInputStream("config.properties");
p.load(is);
is.close();

写Properties的方法其实也比较简单代码如下:

1
2
3
4
5
6
7
8
Properties p = new Properties();
InputStream is = this.getClass().getResourceAsStream("config.properties");
p.load(is);
is.close();
p.setProperty("key","value");
FileOutputStream fos = new FileOutputStream("config.properties");
properties.store(fos,null);
fos.close();
2011年10月23日 | 归档于 Java

hibernate连表查询并返回部分数据封装在vo中

在hibernate中,有时候会用到连表查询,并返回部分数据,而不是两个表的所有数据,实现如下:

1
select new com.Person(a.pic,b.name) from A as a,B as b  where a.id = b.id;

注意:Person对象要有对应的构造方法。

如果用map滚,就繁琐很多了.

2011年10月11日 | 归档于 Java
标签: