nutz的主键不在数据库底层实现主键自增,还是要依靠数据库底层实现主键自增。
下面是oracl和nutz配合实现主键自增。
第一步:在数据库里完成主键自增的机制。
1,创建表T_PERSON(设置id字段为主键)
-- Create table
create table T_PERSON
(
ID NUMBER not null,
NAME NVARCHAR2(60),
PASSWORD NVARCHAR2(60),
ADDRESSID NUMBER
)
tablespace SYSTEM
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table T_PERSON
add constraint PK_PERSON primary key (ID)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
2,创建序列(实现主键自增的必要前提)
--创建序列(实现person,address主键自增的必要序列)
create sequence seq_nutz
increment by 1
start with 1
maxvalue 999999999;
3,给要主键自增的表上创建触发器(在插入前利用触发器给主键id赋值)
--给person表创建触发器--实现主键自增
CREATE TRIGGER trigger_pk_person BEFORE
insert ON T_PERSON FOR EACH ROW
begin
select seq_nutz.nextval into:New.id from dual;
end;
4,测试
插入sql:
INSERT INTO t_person(NAME,password,Addressid) VALUES('陈超阳','123456789','24');
再次查询该条记录已经有了id 42了。
至此数据库设计已经ok。
第二步:nutz插入:
1,数据库实体模型设计
package com.supan.nuts.module;
import org.nutz.dao.entity.annotation.Column;
import org.nutz.dao.entity.annotation.Id;
import org.nutz.dao.entity.annotation.One;
import org.nutz.dao.entity.annotation.Table;
@Table("T_PERSON")
public class Person {
//ID表示使用数据库的自增(默认的)
@Id
private Integer id;
@Column("name")
private String name;
@Column("password")
private String password;
@Column("addressId")
private Integer addressId;
@One(target = Address.class,field = "addressId")
private Address address;
//省略getter setter....
}
2,插入的action。
package com.supan.nuts.action;
import org.nutz.dao.impl.NutDao;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.adaptor.JsonAdaptor;
import org.nutz.mvc.annotation.AdaptBy;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import com.supan.nuts.module.Person;
@IocBean
public class PersonAction {
@Inject
private NutDao dao;
@At("/insertPerson")
@Ok("json")
@AdaptBy(type=JsonAdaptor.class)
public String insertPerson(@Param("..") Person person) {
dao.insertWith(person, "address");
return "success";
}
public NutDao getDao() {
return dao;
}
public void setDao(NutDao dao) {
this.dao = dao;
}
}
分享到:
相关推荐
`nutz-log`提供了日志记录功能,可以根据需求选择不同的日志实现,如log4j、slf4j等;`nutz-utils`则是一些通用的工具类,如字符串处理、日期时间操作等。 在实际项目中,根据需求可能还需要引入一些额外的jar包,...
nutz-1.r.60.jar
nutz-1.b.43-jdk5.jar 资源包
3. `nutz-1.r.58-sources.jar`:这个文件提供了Nutz框架的源代码,对于想要深入研究Nutz内部实现或者进行二次开发的开发者来说非常有价值。通过查看源码,开发者可以更直观地理解框架的工作原理,以便更好地利用和...
3. **Nutz-1.r.61.jar** 这是Nutz框架1.r.61版本的核心库文件,包含了所有编译后的Java类。在开发项目时,将此jar文件添加到项目的类路径中,就可以使用Nutz提供的各种服务和功能。 4. **Nutz-1.r.61-sources.jar*...
Nutz, 它是一组轻便小型的框架的集合。 -------------Nutz 可以做什么? Dao -- 针对 JDBC 的薄封装,事务模板,无缓存 Ioc -- JSON 风格的配置文件,声明时切片支持 Mvc -- 注解风格的配置,内置多文件上传功能 ...
Nutz -- Web(Mvc/Ioc/Aop/Dao/Json) for ALL Java developer
2. `nutz-1.r.62-sources.jar`:提供了框架的源代码,开发者可以通过查看源码理解Nutz的内部实现,便于学习和调试。这对于深入理解和自定义框架行为非常有帮助。 3. `nutz-1.r.62-manual.pdf` 和 `nutz-1.r.62-...
Nutz框架是Java编程语言的一组轻便小型框架集合,旨在提高Web开发人员的生产力。Java作为一种优美且成熟的编程语言,广泛应用于各种软件领域,包括企业服务器、移动设备、车载设备等,甚至拓展到了桌面和图像处理...
nutz-1.r.62.jar 的jar包 可以解决中文乱码,设置字符编码等等
nutz-1.b.43-jdk5.jar 资源包
这个压缩包“wendal-nutz-master.zip”包含了NUTZ框架的一个示例项目或者学习资源,帮助初学者理解和掌握NUTZ的核心特性。 在深入探讨NUTZ之前,我们先来理解一下什么是框架。框架是一种预定义的软件结构,它规定了...
3. "nutz-1.r.61-manual.pdf"和"nutz-1.r.61-manual.rtf"是用户手册的不同格式版本,提供了全面的框架使用指南,涵盖了从基础到高级的使用教程和示例,帮助开发者快速上手。 4. "manual"可能是手册的另一个链接或者...
在本案例中,我们关注的是"Nutz-1.r.57的JDK1.5编译",这表明我们需要了解如何在较低的JDK版本环境下,编译和使用Nutz框架。 首先,我们要知道Nutz官方推荐使用JDK1.6进行编译,这是因为JDK1.6引入了许多对开发者...
标题:"nutz-1.b.49-manual.pdf" 指出了文档是关于Nutz框架的官方手册,版本为1.b.49。手册这一名称通常意味着该文档是为用户提供详细的指导,帮助用户理解和使用该框架。 描述:"nutz 框架nutz-1.b.49-manual.pdf...
Nutz-jar包是Nutz框架的打包形式,通常包含了框架的核心类库以及相关的依赖,方便开发者在项目中快速引入和使用。 在20170512版本的Nutz-jar包中,我们可以预见到以下几个关键知识点: 1. **Nutz IoC容器**:Nutz ...
"nutz-1.a.25_jdoc.zip" 是Nutz框架1.a.25版本的Java文档压缩包,其中包含了详细的API参考和使用指南,帮助开发者理解和使用这个框架。 首先,让我们深入了解Nutz的各个组件: 1. **Nutz MVC**:Nutz 提供了一个轻...
Nutz是对于Java程序员来说,除SSH之外的另一个选择。当然,它是开源的,并且是完全免费的。同时也是商业友好的(Licensed under the Apache License, Version 2.0)。
我们的小程序源码功能多样,涵盖社交、电商等领域。高度定制化,轻松打造专属风格。用户体验佳,界面美观操作便捷。安全可靠,保障数据与运行稳定。适合创业者、企业和开发者。提供技术支持与文档说明。...