阅读:9078次
评论:30条
更新时间:2011-05-26
Nutz 的使用非常简单,针对 Nutz.Dao, Nutz.Ioc, Nutz.Mvc 在本专栏里会有更详细的介绍,这里就其最重要的一个功能(Nutz.Dao)做一下说明:
1. 首先,你必须安装 JDK1.5 或者以上版本。 如果你直接使用编译好的 jar 包,请保证你的 JDK是1.6 的,因为 Nutz 的jar包是在 1.6.0_11 上编译的。 JDK1.5 的需要重新从源码编译。 好在 Nutz 的源码不依赖任何第三方jar 文件,你拿下来就能编译。
2. 其次,为了运行 Nutz.Dao ,你必须要有一个数据库软件。 Mysql,Postgresql, SQLServer, Oracle, DB2 都可以,如果是其他的数据库,在大数据量分页查询的时候,为了效率可能你需要实现一个 Pager, 关于如何建立 Pager,在 Nutz.Dao 分类中会有详细说明。
3. 建立一个普通的 Java 项目,随便你用什么 IDE,或者你不爱用 IDE 也可以,但是你要将数据库的 JDBC Driver 和你喜欢的连接池加入项目的 classpath
4. 在数据库里建立一张你自己的数据表, 这里我们用 t_person 来举例:
5. 在 Java 项目中建立一个POJO,比如 com.zzh.demo.Person :
6. 随便建立一个有 main 函数的类,在 main 函数里这么写:
请注意, dataSource 变量应该是你预先设置好的,只要是一个 javax.sql.DataSource 对象就成。像比较常用的连接池都提供了 DataSource 的实现,你可以随便选一个你喜欢的连接池
上面这段代码会想数据库里插入一条记录,至于如何获取,如何删除,如何查询, 你可以通过 IDE 的自动提示工具看一看。不用 IDE 的朋友,可以看看 com.zzh.dao.Dao 接口的源代码,接口函数很容易理解。 更详细的使用说明会在专栏的 Nutz.Dao 分类里给出。不过,这个例子足够作为 Hello World 了, 祝你玩的开心
1. 首先,你必须安装 JDK1.5 或者以上版本。 如果你直接使用编译好的 jar 包,请保证你的 JDK是1.6 的,因为 Nutz 的jar包是在 1.6.0_11 上编译的。 JDK1.5 的需要重新从源码编译。 好在 Nutz 的源码不依赖任何第三方jar 文件,你拿下来就能编译。
2. 其次,为了运行 Nutz.Dao ,你必须要有一个数据库软件。 Mysql,Postgresql, SQLServer, Oracle, DB2 都可以,如果是其他的数据库,在大数据量分页查询的时候,为了效率可能你需要实现一个 Pager, 关于如何建立 Pager,在 Nutz.Dao 分类中会有详细说明。
3. 建立一个普通的 Java 项目,随便你用什么 IDE,或者你不爱用 IDE 也可以,但是你要将数据库的 JDBC Driver 和你喜欢的连接池加入项目的 classpath
4. 在数据库里建立一张你自己的数据表, 这里我们用 t_person 来举例:
CREATE TABLE t_person ( id SERIAL PRIMARY KEY, name VARCHAR(50) NOT NULL UNIQUE, age INT );
5. 在 Java 项目中建立一个POJO,比如 com.zzh.demo.Person :
import com.zzh.dao.entity.annotation.*; @Table("t_person") // 声明了Person对象的数据表 public class Person { @Column // 表示该对象属性可以映射到数据库里作为一个字段 @Id // 表示该字段为一个自增长的Id private int id; @Column @Name // 表示该字段可以用来标识此对象,或者是字符型主键,或者是唯一性约束 private String name; @Column private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
6. 随便建立一个有 main 函数的类,在 main 函数里这么写:
Dao dao = new NutDao(dataSource); Person p = new Person(); p.setName("ABC"); p.setAge(20); dao.insert(p);
请注意, dataSource 变量应该是你预先设置好的,只要是一个 javax.sql.DataSource 对象就成。像比较常用的连接池都提供了 DataSource 的实现,你可以随便选一个你喜欢的连接池
上面这段代码会想数据库里插入一条记录,至于如何获取,如何删除,如何查询, 你可以通过 IDE 的自动提示工具看一看。不用 IDE 的朋友,可以看看 com.zzh.dao.Dao 接口的源代码,接口函数很容易理解。 更详细的使用说明会在专栏的 Nutz.Dao 分类里给出。不过,这个例子足够作为 Hello World 了, 祝你玩的开心
30 楼 zozoh 2009-09-28 09:30
@Id(next={"select SEQ_person.nextval from sys.dual;"})
总提法出错.但单步跟踪发现执行select SEQ_person.nextval from sys.dual;也出错.
仲有,通过单步执行,发现做一次插入操作,会先把数据插入,再去生成ID,再Update.这样就存在 一个问题,当设置了约束时,就会出错.
你的 SQL 以 分号结尾, Oracle 的 JDBC 不接受。
你直接用 JDBC 做的话,也会是这样的。
把分号去掉即可
29 楼 strongkill 2009-09-28 08:23
@Id(next={"select SEQ_person.nextval from sys.dual;"})
总提法出错.但单步跟踪发现执行select SEQ_person.nextval from sys.dual;也出错.
仲有,通过单步执行,发现做一次插入操作,会先把数据插入,再去生成ID,再Update.这样就存在 一个问题,当设置了约束时,就会出错.
28 楼 zozoh 2009-09-24 14:11
nutzmole 项目,会根据POJO生成建表语句
但是没有文档
27 楼 herowzz 2009-09-24 13:50
26 楼 amosleaf 2009-06-24 10:35
发现一个问题程序不能放到中文名字的目录下面,否则就会报如下错误:
F:\宸ヤ綔\Java\nutz\WebRoot\WEB-INF\lib\nutz-1[1].a.11.jar (系统找不到指定的路径。)
当把程序放到英文名字目录下面就没问题!
应该是 Eclipse Java 虚拟机的问题。 如果中文路径没问题,将 nutz-1.a.11.jar 改名成 nutz.jar 看看有没有问题。
应该是jvm的编码和你IDE编码不一致造成的,如果你用的是Eclipse,修改下面两项:
(1)preferences-->Workspace,修改file encoding为UTF-8,点击apply.
(2)preferences-->Content Types,修改java source file编码为UTF-8,点击Update.
我碰到过,就这么解决的,good luck.
25 楼 zozoh 2009-06-11 13:02
试过针对oracle数据库进行插入操作吗?我看过源码select max(id)还带着分号,根本新增不了。
Oracle 的确有很大的问题,我还没跑测试。
不过你可以暂时用 @Id(next={"一段自己的获取最大值的SQL"})
来顶个先
24 楼 gaojh 2009-06-11 12:50
23 楼 zozoh 2009-06-03 11:03
mvc使用方法出了吗?还有IOC呢?
还在弄, 请看 如何随时获取 Nutz 的进度 一文
22 楼 switch200500 2009-06-03 10:32
21 楼 zozoh 2009-06-02 00:21
我下载了nutz-source-1.a.12.jar,在eclipse 3.1+jdk1.5.08的环境下编译不了,在有@Override标注的地方(主要是接口的实现)都提示编译错误:必须覆盖超类的方法,如ExecutableSql.java:
因为 JDK1.5 @Override 必需覆盖父类的方法。 JDK1.6 如果继承自一个接口也可以声明 @Override。 建议你用 JDK1.6 来编译。
我编译 Nutz 依赖一个 JDK1.6 的实现以及 Tomcat1.6 关于 Servelet 的实现。
20 楼 zozoh 2009-06-02 00:00
proxool怎么获取DataSource 对象?能不能给个例子?找了一大堆资料,要配置JNDI?谢谢。
见: org.logicalcobwebs.proxool.ProxoolDataSource
19 楼 zozoh 2009-06-01 23:59
proxool怎么获取DataSource 对象?能不能给个例子?找了一大堆资料,要配置JNDI?谢谢。
18 楼 sense97 2009-06-01 18:16
17 楼 hyc8761 2009-05-31 17:11
16 楼 zozoh 2009-05-27 08:57
源码
com.zzh.mvc.NutServlet
com.zzh.mvc.access.Session
中找不到
com.zzh.Const
在下个版本 (1.a.13) 里,我会放到包里,是 build 文件漏了
15 楼 zozoh 2009-05-27 08:55
什么时候发布下个版本,还有mvc什么时候出来?正想把nutz和struts2.0整合起来用,我的第一个nutz程序:自己写了个连接数据库的Resource.java
地址如下:http://www.bsay.net/read.php?tid=3364
端午过后的一个礼拜吧,这个版本主要针对 Http 作了修改。 你现在用 nutz.1.a.12.jar 里就带了 ioc 和 mvc
因为我还没有出文档,所以大家不知道怎么用。我争取在 1.a.13 的时候,出一点 mvc 和 ioc 的例子
14 楼 switch200500 2009-05-26 21:30
zozoh 写道
呵呵,是我的 build 文件漏了,谢谢,下个版本,我会放在源码包里
什么时候发布下个版本,还有mvc什么时候出来?正想把nutz和struts2.0整合起来用,我的第一个nutz程序:自己写了个连接数据库的Resource.java
地址如下:http://www.bsay.net/read.php?tid=3364
13 楼 Caspar 2009-05-26 16:57
com.zzh.mvc.NutServlet
com.zzh.mvc.access.Session
中找不到
com.zzh.Const
12 楼 Caspar 2009-05-26 16:46
nutz-source-1.a.12 中没这东西呢~
11 楼 amosleaf 2009-05-24 15:04
Dao dao = new NutDao(dataSource);
希望你写个链接sql server2005的datasource,我们参考一下,谢谢!
(1)下载数据库驱动
http://download.microsoft.com/download/C/D/3/CD301BF5-E28F-45EA-A1DA-53F2EB448D78/sqljdbc_1.2.2828.100_enu.exe
(2)下载c3p0的jar包。(如果你有兴趣,你可以自己写一个类 实现 javax.sql.DataSource接口,这里我用c3p0数据源)
http://sourceforge.net/project/showfiles.php?group_id=25357
(3)
ComboPooledDataSource cpds=new ComboPooledDataSource(); cpds.setDriverClass("com.microsoft.sqlserver.jdbc.SQLServerDriver"); cpds.setJdbcUrl("jdbc:microsoft:sqlserver://${ip}:${port};DatabaseName=${dbName}");
cpds.setUser("${userName}");
cpds.setPassword("${password}");
这个cpds就是一个datasource了。
10 楼 zozoh 2009-05-22 21:24
发现一个问题程序不能放到中文名字的目录下面,否则就会报如下错误:
F:\宸ヤ綔\Java\nutz\WebRoot\WEB-INF\lib\nutz-1[1].a.11.jar (系统找不到指定的路径。)
当把程序放到英文名字目录下面就没问题!
应该是 Eclipse Java 虚拟机的问题。 如果中文路径没问题,将 nutz-1.a.11.jar 改名成 nutz.jar 看看有没有问题。
9 楼 switch200500 2009-05-22 17:17
F:\宸ヤ綔\Java\nutz\WebRoot\WEB-INF\lib\nutz-1[1].a.11.jar (系统找不到指定的路径。)
当把程序放到英文名字目录下面就没问题!
8 楼 switch200500 2009-05-22 17:13
7 楼 switch200500 2009-05-22 16:38
希望你写个链接sql server2005的datasource,我们参考一下,谢谢!
6 楼 WWQQ 2009-05-22 10:32
5 楼 zozoh 2009-05-22 01:06
就一行啊,还咋简洁啊?
如何建立DataSource, 这个是数据库连接池的事,我以前由于兴趣的问题,写过一个连接池。但是现在有的连接池(如 c3p0 等) 我也没什么办法做得比他们还要好了,输入 Driver, Url, username, password,怎么我看都是少不了滴~~~
4 楼 switch200500 2009-05-21 22:44
3 楼 zozoh 2009-05-08 15:26
请从此处下载: http://code.google.com/p/nutz/
2 楼 zozoh 2009-05-07 08:57
插入是个基本操作,不太可能有问题。 如果不行,你可以把你的代码发给我看
1 楼 gaojh 2009-05-06 18:59