`
Ivan0513
  • 浏览: 212589 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Nutz Dao Hello World

    博客分类:
  • Nutz
阅读更多

在按照Nutz Dao Hello World敲代码时,遇到如下问题。
使用的数据库是:Oracle,Oracle没有自增字段,如果为主键直接注释@Id,当插入数据时,会抛出异常,

告诉我们不能为主键插入NULL值。 


要为主键赋值需要变通的解决办法:

1.使用@Prev代替@Id

以类Person(主键Person_ID)及对应表tbl_Person为例
步骤:
(1)为表创建对应序列:SEQ_Person;
(2)为字段添加注释:@Prev(@SQL("select SEQ_PERSON.NEXTVAL from dual"))

具体代码如下:

@Table("TBL_PERSON") //声明了Person对象的数据表
public class Person {
	
	/**
	 * (1)Oracle的字段没有自增的特性,使用Prev注释,在插入数据前查询序列,然后为表ID赋值
	 * (2)不能使用Next,因为估计Next是先附上默认值(int/long:0,Integer/Long:null等等),插入数据库后再更新,但是主键不允许为NULL及重复
	 */
	@Column	  // 表示该对象属性可以映射到数据库里作为一个字段
	@Prev(@SQL("select SEQ_PERSON.NEXTVAL from dual")) 
	private Long Person_ID;
//其他
}

 


2.仍然使用@Id,同时在数据库端为主键创建触发器

以类Student(主键Student_ID)及对应表tbl_Student为例

(1)主键使用@Id注释;

(2)创建表tbl_Student的序列SEQ_Student

(2)为表tbl_Student的主键创建一个复制触发器

 具体代码如下:

@Table("TBL_STUDENT")
public class Student {
	/**
	 * 通过触发器,在插入数据时先为ID复制,模拟@Prev的效果
	 */
	@Column
	@Id
	private Long Student_ID;
//.........
}
在数据库端为主键创建触发器,
以下是Oracle数据库触发器SQL:
create or replace trigger trigger_Insert_Student_PK
before insert on TBL_STUDENT for each row
begin
    if :new.Student_ID is null then
        select SEQ_STUDENT.nextval into :new.Student_ID from dual;
    end if;
end;

 

分享到:
评论

相关推荐

    nutz初使用之MVC HelloWorld (netbeans jsp版)

    在本文中,我们将深入探讨如何使用Nutz框架创建一个简单的MVC(Model-View-Controller)应用程序,以“HelloWorld”为例。Nutz是一个轻量级的Java开发框架,它提供了全面的MVC支持,使得开发者能够高效地构建Web应用...

    nutz初使用之MVC HelloWorld (netbeans html,js版)

    【标题】:“nutz初使用之MVC HelloWorld (netbeans html,js版)” 这篇教程主要介绍了如何在NetBeans环境中,结合HTML、JavaScript,利用Nutz框架构建一个简单的MVC模式的“Hello, World”应用。Nutz是一个轻量级...

    nutz初使用之MVC HelloWorld (netbeans html,jquery版)

    return "Hello, Nutz!"; } } ``` 3. **配置路由(Routing)**: Nutz使用自动扫描机制找到所有控制器,并根据注解定义的URL映射。你可以在`web.xml`或通过`@Routes`注解来配置路由规则。 4. **创建视图(View)**:...

    nutz 缓存

    Nutz是一个轻量级、全面且高效的Java开发框架,它提供了一系列工具和库,包括数据访问对象(DAO)、网络通信、JSON处理等。在描述中提到的“NULL”可能是博主在发布时未填写具体描述,所以我们主要通过标签和对Nutz...

    nutz框架使用手册.zip

    Nutz框架由一系列子项目组成,包括Nutz IOC(依赖注入)、Nutz DAO(数据访问对象)、Nutz MVC(模型视图控制器)等,涵盖了Web开发的多个层面,旨在简化开发流程,提高开发效率。 在"nutz框架使用手册.zip"中,...

    nutz需要的jar包

    Nutz是一个轻量级、高性能的Java开发框架,它提供了丰富的功能,包括MVC、ORM、DAO、AOP、IOC等,使得Java开发者能够快速地构建应用系统。本篇文章将详细探讨Nutz框架中所需的jar包以及它们在项目中的作用。 首先,...

    使用Nutz[1.b.38]对数据库表的CRUD操作

    首先,Nutz的核心组件Nutz DAO(Data Access Object)提供了与数据库交互的能力。通过简单的API,开发者可以轻松地实现对数据库的读写操作。在开始之前,确保已经在项目中正确地引入了Nutz的相关依赖。 1. **创建...

    Nutz开发用到的jar包

    3. **Nutz DAO**:DAO(Data Access Object)层负责与数据库交互。Nutz DAO提供了简单易用的API,用于执行SQL查询、事务管理等操作,支持多种数据库类型,如MySQL、Oracle、PostgreSQL等。 4. **依赖注入(IoC)**...

    ztree与nutz简单使用

    import org.nutz.dao.Dao; import org.nutz.dao.DaoFactory; public class Main { public static void main(String[] args) { Dao dao = DaoFactory.create("com.mysql.jdbc.Driver", "jdbc:mysql://localhost:...

    nutzDao增删改查Demo

    这样,你可以在Service类中直接调用 Dao 的方法,无需手动创建 Dao 实例。 ```java @Service public class UserService { @Autowired private Dao dao; public void addUser(User user) { dao.insert(user); ...

    nutz_redis集成依赖包

    import org.nutz.dao.Dao; import org.nutz.integration.jedis.JedisHolder; public class RedisExample { @Inject protected Dao dao; @Inject protected JedisHolder jedisHolder; public void ...

    nutz简单综合实例----通过html网页对数据库进行管理操作(MVC,Ioc,Dao)

    在Nutz框架下,开发者可以使用Nutz插件轻松实现DAO,通过简单的注解就能完成CRUD(创建、读取、更新、删除)操作。 在这个实例中,开发者可能创建了一个简单的HTML页面,用户可以通过这个页面提交表单,然后这些...

    高效,小巧的开源JAVA WEB 开发框架-Nutz (源码,开发文档)

    数据库访问层 -- Nutz.Dao 反转注入支持 -- Nutz.Ioc Mvc 框架 -- Nutz.Mvc Json 解析器 -- Nutz.Json 更多的简化Java语法的函数和类 -- Nutz.Lang 以及 Nutz.Castors 不依赖任何第三方 Jar 包,从而便于程序员建立...

    nutz代码生成器

    Nutz Codematic则进一步扩展了Nutz的功能,为开发者提供了一个自动化生成数据访问层(DAO)和实体类(Bean)的解决方案。 在使用Nutz Codematic时,首先你需要配置数据库连接信息,包括数据库类型(如MySQL、Oracle...

    Nutz-1.b.38

    Spring 里采用 Nutz.Dao ,又比如在 Nutz.Ioc 里使用 Hibernate 等整 -- 它所有功能均不依赖第三方 jar 文件。这就意味着:如果一个 Web 应用,你在 WEB-INF/lib 下只 需要放置一个 nutz.jar 就够了当然你要使用其它...

    nutz搭建的MVC框架

    return "Hello, Nutz MVC!"; } } ``` 5. **配置视图路径**:在应用配置中指定视图解析路径,例如: ```java @Configure public class AppConfig { @View("templates/**") public String viewPath() { ...

    nutz-1.r.61-发布包

    Nutz 是一个轻量级的Java框架,它集成了MVC、ORM、DAO、AOP、IOC等核心功能,适用于构建各种类型的Web应用。Nutz的设计理念是简洁实用,它提供了丰富的API和工具,让开发者能更高效地进行开发工作。 2. **Nutz-1.r...

    nutz-1.b.52.zip

    如果你觉得 Hibernate 控制比较繁琐,iBatis 编写SQL又比较麻烦,Nutz.Dao 专为你设计。 如果你觉得在多个服务器部署或者修改 Spring 配置文件很麻烦,Nutz.Ioc 专为你设计 如果你觉得直接写 XML 配置文件很麻烦,...

    nutz使用手册

    在“Hello world”部分,开发者需要确保有JDK1.5及以上版本,并根据需求选择JDK5或JDK6版本的Nutz.jar。Log4J日志库虽然不是必需的,但推荐使用。此外,还需要一个数据库(如MySQL、PostgreSQL等)以及对应的JDBC...

Global site tag (gtag.js) - Google Analytics