- 浏览: 163247 次
- 性别:
- 来自: 宁波
文章分类
最新评论
-
Yuanyuanasdf:
同样的,在AioAcceptHandler中调用了socket ...
java 之异步套接字编程实例(AIO) -
Yuanyuanasdf:
为什么在AioAcceptHandler compelted中 ...
java 之异步套接字编程实例(AIO) -
shijiandeheliu:
非常感谢,运行良好
nutz简单综合实例----通过html网页对数据库进行管理操作(MVC,Ioc,Dao) -
我是你们的爹:
文章中出现了大量错误,容易误导新手!!
nutz 过滤器使用例子 -
Garlic_90:
我打包水晶报表遇到些问题,我的安装项目Debug文件夹下已经有 ...
水晶报表在vs2010t中引用及打包
5. GRUD--- NUTZ之MVC综合实例(html,ajax)
功能:
(1) 加载网页时,从数据库中提取所有资料,显示在网页中
(2) 在表格第二行输入资料,按新增,加把所录入资料添加到数据库中
(3) 在其他行的“年龄”中输入资料,按更新,加用所录入资料列新数据库。
(4) 在其他行按删除,将从数所库中删除相应资料
说明:本人使用的是netbean6.9.1,tomcat6.0.26,nutz 1.a.31
下面是网页界面截图:
最后附完整源码下载。。
5.1. 准备工作
5.1.1. 安装好mysql,在mydb数据库中,创建一个表t_man
CREATE TABLE `t_man` (
`name` varchar(45) NOT NULL DEFAULT '',
`age` varchar(45) NOT NULL DEFAULT '""',
PRIMARY KEY (`name`)
)
5.1.2. 下载数据源所需要的包,并引用到工程中去
5.1.2.1 配置dbcp所用的包:commons pool、commons-collections.jar
http://commons.apache.org/dbcp/download_dbcp.cgi
http://commons.apache.org/pool/download_pool.cgi
http://commons.apache.org/collections/download_collections.cgi
注:有的需要mysql驱动
http://mysql.cs.pu.edu.tw/Downloads/Connector-J/mysql-connector-java-5.1.6.zip
nutz好像可以不要,但是在配spring security3时,却需要,郁闷
5.1.2.2 下载log4j----便于调试dao
下载地址http://logging.apache.org/log4j/1.2/download.html
log4j的配置文件log4j.properties
#
5.1.2.3 下载nutz
http://code.google.com/p/nutz/downloads/list
5.2. 配置web.xml
完整代码:
5.3. html网页---ajax通讯,据备显示、添加、删除、更新操作
newhtml3.html全部源代码
5.4. 主模块文件----MainModule.java
位于源代码 根目录中。MainModule.java完整代码
5.6. Pojo----Man.java
Man.java源代码,省略了getter and setter
5.7. 子模块类----接受网页的命令,并完成对数据库的操作
HelloWorld.java完整源代码
功能:
(1) 加载网页时,从数据库中提取所有资料,显示在网页中
(2) 在表格第二行输入资料,按新增,加把所录入资料添加到数据库中
(3) 在其他行的“年龄”中输入资料,按更新,加用所录入资料列新数据库。
(4) 在其他行按删除,将从数所库中删除相应资料
说明:本人使用的是netbean6.9.1,tomcat6.0.26,nutz 1.a.31
下面是网页界面截图:
最后附完整源码下载。。
5.1. 准备工作
5.1.1. 安装好mysql,在mydb数据库中,创建一个表t_man
CREATE TABLE `t_man` (
`name` varchar(45) NOT NULL DEFAULT '',
`age` varchar(45) NOT NULL DEFAULT '""',
PRIMARY KEY (`name`)
)
5.1.2. 下载数据源所需要的包,并引用到工程中去
5.1.2.1 配置dbcp所用的包:commons pool、commons-collections.jar
http://commons.apache.org/dbcp/download_dbcp.cgi
http://commons.apache.org/pool/download_pool.cgi
http://commons.apache.org/collections/download_collections.cgi
注:有的需要mysql驱动
http://mysql.cs.pu.edu.tw/Downloads/Connector-J/mysql-connector-java-5.1.6.zip
nutz好像可以不要,但是在配spring security3时,却需要,郁闷
5.1.2.2 下载log4j----便于调试dao
下载地址http://logging.apache.org/log4j/1.2/download.html
log4j的配置文件log4j.properties
#
可以设置级别:debug>info>error #debug:显示debug、info、error #info:显示info、error #error:只error log4j.rootLogger=debug,appender1 #log4j.rootLogger=info,appender1 #log4j.rootLogger=error,appender1 #输出到控制台 log4j.appender.appender1=org.apache.log4j.ConsoleAppender #样式为TTCCLayout log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
5.1.2.3 下载nutz
http://code.google.com/p/nutz/downloads/list
5.2. 配置web.xml
完整代码:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <session-config> <session-timeout> 30 </session-timeout> </session-config> <filter> <filter-name>nutz</filter-name> <filter-class>org.nutz.mvc.NutFilter</filter-class> <init-param> <param-name>modules</param-name> <param-value>MainModule</param-value> </init-param> </filter> <filter-mapping> <filter-name>nutz</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
5.3. html网页---ajax通讯,据备显示、添加、删除、更新操作
newhtml3.html全部源代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script language="JavaScript"> //ajax方式,与nutz通讯 var xmlHttp=false; try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xmlHttp=false; } } if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { xmlHttp=new XMLHttpRequest(); } function init() { var url="display"; xmlHttp.open("POST",url,true);//提交数据 xmlHttp.onreadystatechange=function(){//服务器返回状态 //服务成功接收并受回数据 if(xmlHttp.readyState==4){ eval("json=" + xmlHttp.responseText + ";"); eval("json=" + json + ";"); var len=json.length; //动态创建表 var strTbody = ["<table border='1'><tbody>"];//定义数组 strTbody.push("<tr>"); strTbody.push("<td>姓名</td>"); strTbody.push("<td>年龄</td>"); strTbody.push("<td> </td>"); strTbody.push("<td> </td>"); strTbody.push("</tr>"); strTbody.push("<tr>"); strTbody.push("<td><input name='bs1' type='text' ></td>"); strTbody.push("<td><input name='bs1' type='text' ></td>"); strTbody.push("<td><input name='add' type='button' id='add' value='增加' onClick='addLine(this)'></td>"); strTbody.push("<td> </td>"); strTbody.push("</tr>"); for (var i=0;i<json.length;i++){ strTbody.push("<tr>"); strTbody.push("<td><input name='bs1' type='text' value='"+json[i].name+"' ></td>"); strTbody.push("<td><input name='bs2' type='text' value='"+json[i].age+"' ></td>"); strTbody.push("<td>"); strTbody.push("<input name='add' type='button' id='add' value='更新' onClick='updata(this)'>"); strTbody.push("</td>"); strTbody.push("<td>"); strTbody.push("<input name='delete' type='button' id='delete' value='删除' onClick='deldata(this)'>"); strTbody.push("</td>"); strTbody.push("</tr>"); } strTbody.push("</tbody></table>"); var obj = document.getElementById("tableDiv"); obj.innerHTML = strTbody.join(""); } } xmlHttp.send(null); } function addLine(obj){ var objSourceRow=obj.parentNode.parentNode; var objTable=obj.parentNode.parentNode.parentNode.parentNode; var row_num=objTable.rows.length; var cell_num=objTable.rows[0].cells.length; var objRow=objTable.insertRow(row_num); var str="?name="+objSourceRow.cells[0].firstChild.value+""; str+="&age="+objSourceRow.cells[1].firstChild.value+""; var url="insert"+str; xmlHttp.open("POST",url,true);//提交数据 xmlHttp.onreadystatechange=function(){//服务器返回状态 //服务成功接收并返回数据 if(xmlHttp.readyState==4){ init(); alert(xmlHttp.responseText); } } xmlHttp.send(null); } function updata(obj){ var objSourceRow=obj.parentNode.parentNode; var objTable=obj.parentNode.parentNode.parentNode.parentNode; var row_num=objTable.rows.length; var cell_num=objTable.rows[0].cells.length; var str="?name="+objSourceRow.cells[0].firstChild.value+""; str+="&age="+objSourceRow.cells[1].firstChild.value+""; var url="update"+str; xmlHttp.open("POST",url,true);//提交数据 xmlHttp.onreadystatechange=function(){//服务器返回状态 //服务成功接收并返回数据 if(xmlHttp.readyState==4){ init(); alert(xmlHttp.responseText); } } xmlHttp.send(null); } function deldata(obj){ var objSourceRow=obj.parentNode.parentNode; var objTable=obj.parentNode.parentNode.parentNode.parentNode; var row_num=objTable.rows.length; var cell_num=objTable.rows[0].cells.length; var str="?name="+objSourceRow.cells[0].firstChild.value+""; str+="&age="+objSourceRow.cells[1].firstChild.value+""; var url="delete"+str; xmlHttp.open("POST",url,true);//提交数据 xmlHttp.onreadystatechange=function(){//服务器返回状态 //服务成功接收并返回数据 if(xmlHttp.readyState==4){ init(); alert(xmlHttp.responseText); } } xmlHttp.send(null); } //--> </script> </head> <body onload="init();"> <div id="tableDiv"></div> </body> </html>
5.4. 主模块文件----MainModule.java
位于源代码 根目录中。MainModule.java完整代码
import org.nutz.mvc.adaptor.PairAdaptor; import org.nutz.mvc.annotation.*; import org.nutz.mvc.ioc.provider.JsonIocProvider; @Modules({HelloWorld.class}) @Fail("json") @IocBy(type=JsonIocProvider.class, args={"dataSource.js"}) public class MainModule {} 5.5. 数据源配置文件(使用nutz的ioc)--- dataSource.js, 位于源代码根目录中,即与MainModule.java同一位置。在MainModule中调用, 在HelloWorld中通过Ioc按配置使用dataSource。 dataSource.js完整源代码 var ioc={ dataSource : { type :"org.apache.commons.dbcp.BasicDataSource", events:{ depose:'close' }, fields : { driverClassName:'com.mysql.jdbc.Driver', url:'jdbc:mysql://localhost:3306/mydb', username:'root', password:'123' } } }
5.6. Pojo----Man.java
Man.java源代码,省略了getter and setter
import org.nutz.dao.entity.annotation.Column; import org.nutz.dao.entity.annotation.Name; import org.nutz.dao.entity.annotation.Table; @Table("t_man") // 声明了Man对象的数据表 public class Man { public Man() {} @Column @Name // 表示该字段可以用来标识此对象,或者是字符型主键,或者是唯一性约束 private String name; @Column private String age; //省略了getter and setter }
5.7. 子模块类----接受网页的命令,并完成对数据库的操作
HelloWorld.java完整源代码
import java.sql.SQLException; import java.util.List; import org.apache.commons.dbcp.BasicDataSource; import org.apache.log4j.Logger; import org.nutz.dao.Dao; import org.nutz.dao.impl.NutDao; import org.nutz.ioc.Ioc; import org.nutz.json.Json; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; @Ok("json") public class HelloWorld { private static Logger logger = Logger.getLogger(HelloWorld.class); @At("/display") public String diplay( Ioc ioc) throws SQLException { BasicDataSource ds = ioc.get(BasicDataSource.class,"dataSource"); Dao dao = new NutDao(ds); Man p = new Man(); List<Man> list=dao.query(Man.class, null, null); String str=Json.toJson(list); return str; } @At("/insert") public String insert(@Param("name") String name, @Param("age") String age, Ioc ioc) throws SQLException { BasicDataSource ds = ioc.get(BasicDataSource.class,"dataSource"); Dao dao = new NutDao(ds); Man p =new Man(); p.setName(name); p.setAge(age); dao.insert(p); // logger.debug(dao.update(p)); String str="sucess:'ok'"; return str; } @At("/update") public String update(@Param("name") String name, @Param("age") String age, Ioc ioc) throws SQLException { BasicDataSource ds = ioc.get(BasicDataSource.class,"dataSource"); Dao dao = new NutDao(ds); Man p =new Man(); p.setName(name); p.setAge(age); // dao.update(p); logger.debug(dao.update(p)); String str="sucess:'ok'"; return str; } @At("/delete") public String delete(@Param("name") String name, @Param("age") String age, Ioc ioc) throws SQLException { BasicDataSource ds = ioc.get(BasicDataSource.class,"dataSource"); Dao dao = new NutDao(ds); Man p =new Man(); p.setName(name); p.setAge(age); dao.delete(p); // logger.debug(dao.update(p)); String str="sucess:'ok'"; return str; } }
评论
3 楼
shijiandeheliu
2016-05-09
非常感谢,运行良好
2 楼
465272694
2012-06-22
请问连接池是不是用nutz自身的?
1 楼
windFeng
2011-08-24
这个框架好小巧,准备用这个做项目。
你的这个demo,收藏
你的这个demo,收藏
发表评论
-
ztree与nutz简单使用
2011-05-12 15:40 41311. 说明 ztree是一个jquery ... -
nutz的json视图
2011-02-14 13:05 43592.3. json视图 返回json视图有两种方法: @Ok( ... -
nutz初使用之MVC HelloWorld (netbeans jsp版)
2010-08-25 14:59 45672.3. nutz初使用之MVC HelloWorld (ne ... -
nutz初使用之MVC HelloWorld (netbeans html,js版)
2010-08-25 12:47 2187HelloWorld之js,与HelloWorld之jquer ... -
nutz初使用之MVC HelloWorld (netbeans html,jquery版)
2010-08-20 16:02 69882.1. HelloWorld之jquery 说明: (1) ...
相关推荐
本教程将引导您了解如何在Nutz中利用Ioc-Annotation进行程序开发,以简化代码并提高可维护性。 ### 1. Nutz IoC 容器简介 Nutz的IoC容器是基于Spring的IoC思想设计的,但更为轻量级。它允许开发者声明、管理和注入...
`nutz-dao`包含的jar包如`jdbc-driver`,用于连接不同的数据库,而`nutz-runtimex`则提供了运行时环境的扩展功能,如异常处理和缓存管理。 另外,`nutz-mvc`是Nutz的模型视图控制器组件,它负责处理HTTP请求并将其...
- **Dao**:提供对 JDBC 的薄封装,简化数据库操作。支持事务管理,但不提供缓存机制。 - **Ioc**:提供基于 JSON 风格的配置文件,支持声明式的切片管理。 - **Mvc**:采用注解方式进行配置,内置多文件上传功能。 ...
这篇博客“Nutz 例子,从mvc ioc 到数据插入”深入探讨了如何使用Nutz进行MVC架构设计、依赖注入以及数据库操作。 首先,让我们了解一下MVC模式。MVC是一种软件设计模式,将应用程序分为三个主要部分:模型(Model...
Nutz是一个轻量级、高性能的Java开源框架,它提供了丰富的功能,包括MVC(Model-View-Controller)架构支持,使得开发者能够快速构建小型到中型的Web应用。本篇文章将详细介绍如何利用Nutz搭建MVC框架,并探讨其在...
- Model(模型):负责处理业务逻辑,与数据库交互,存储和管理数据。 - View(视图):展示数据,通常为HTML页面,负责用户界面的渲染。 - Controller(控制器):接收用户请求,处理后调用模型并更新视图,起到...
Nutz, 它是一组轻便小型的框架的集合。 -------------Nutz 可以做什么? Dao -- 针对 JDBC 的薄封装,事务模板,无缓存 Ioc -- JSON 风格的配置文件,声明时切片支持 Mvc -- 注解风格的配置,内置多文件上传功能 ...
7. **使用Nutz Redis API**:集成完成后,就可以在代码中使用Nutz Redis提供的API进行数据操作,例如: ```java import org.nutz.dao.Dao; import org.nutz.integration.jedis.JedisHolder; public class ...
数据库访问层 -- Nutz.Dao 反转注入支持 -- Nutz.Ioc Mvc 框架 -- Nutz.Mvc Json 解析器 -- Nutz.Json 更多的简化Java语法的函数和类 -- Nutz.Lang 以及 Nutz.Castors 不依赖任何第三方 Jar 包,从而便于程序员建立...
- 示例应用:可能会有一个简单的Web应用实例,展示NUTZ的MVC功能和数据库操作。 通过研究这些内容,你可以逐步了解NUTZ框架的工作原理,学习如何使用NUTZ创建自己的Java Web应用。NUTZ的文档和社区也非常活跃,遇到...
该项目为全栈Java开发,采用Nutz框架实现Mvc/Ioc/Aop/Dao/Json一体化设计,源码包含2307个文件,涵盖1742个Java源文件、208个man文档、143个png图片、47个jpg图片、22个js脚本、21个psd设计文件、16个xml文件、13个...
同传统的 SSH 相比,它具备如下特点:轻 -- 当前最新版,整个 jar 文件共 910kB -- 针对 JDBC 的薄封装,无缓存全 -- 提供了 Dao (ORM, SQL 管理), Ioc, Aop, Mvc, Json解析 等必要功能活 -- 各个部分可以独立使用,...
Nutz的设计目的之一是解决Java在Web开发领域相对于脚本语言而言显得开发效率较低的问题,通过提供一整套简洁、高效的组件和工具,如Dao、Ioc、Mvc、Json、Castors、Lang、Aop、Plugin和Resource,它们独立使用且功能...
Nutz的MVC模块提供了一种简单的方式来组织和管理Web应用的各个部分。 1. **创建新项目** - 在NetBeans中,选择“文件”->“新建项目”,然后在“Java Web”类别下选择“Web Application”。为项目命名,例如...
Nutz 是一个轻量级的Java框架,它集成了MVC、ORM、DAO、AOP、IOC等核心功能,适用于构建各种类型的Web应用。Nutz的设计理念是简洁实用,它提供了丰富的API和工具,让开发者能更高效地进行开发工作。 2. **Nutz-1.r...
在IT行业中,数据库管理是核心任务之一,而高效地对数据库表进行CRUD(Create、Read、Update、Delete)操作是开发过程中不可或缺的部分。Nutz是一个轻量级且功能强大的Java框架,它提供了全面的数据访问支持,包括对...
该框架是一个开源项目,可以免费下载, 集成的DAO,MVC,Spring 等框架的功能 不需要其他jar包 学习容易,好用
Web开发框架,java,提供Ioc,Aop,el等机制;
Nutz框架由一系列子项目组成,包括Nutz IOC(依赖注入)、Nutz DAO(数据访问对象)、Nutz MVC(模型视图控制器)等,涵盖了Web开发的多个层面,旨在简化开发流程,提高开发效率。 在"nutz框架使用手册.zip"中,...