热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nutz框架学习之一连接sqlserver数据库进行登录操作

Nutz是SSH的替代方案,简单介绍一下Nutz的特点:轻--当前最新版,整个jar文件共641k薄--针对JDBC的薄封装,无缓存全--提供了

Nutz是SSH的替代方案,简单介绍一下Nutz的特点:

 -- 当前最新版,整个 jar 文件共 641k  -- 针对  JDBC 的薄封装,无缓存  -- 提供了  Dao (ORM, SQL 管理), Ioc, Mvc, Json解析 等必要功能  -- 各个部分可以独立使用,比如在  Spring 里采用  Nutz.Dao ,又比如在  Nutz.Ioc 里使用  Hibernate 等  -- 它所有功能均不依赖第三方 jar 文件。

第一步:下载Nutz.jar

目前最新版的jar包可以在http://code.google.com/p/nutz/downloads/list下载,也可以通过SVN访问https://nutz.googlecode.com/svn/trunk/ 下载最新的代码,然后自己build一个jar包。


第二步:创建Web Project

我用的是MyEclipse,新建一个Web Project,我使用的是sqlserver 2005数据库, dbcp的连接池,所需要的包如下:

大家可以自己下载。

配置拦截,web.xml如下

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">
nutz

nutz
org.nutz.mvc.NutFilter

modules
demo.hello.MainModule



nutz
/*

 
    index.jsp
 


第三步:创建所需的module,这个module的名字大家是随便写的,但一定要注意,web.xml中demo.hello.MainModule的MainModule必须是你所起的名字,demo.hello是package

第四步:创建数据库,数据库的名字自己随便写一个就行

第五步:创建pojo,代码如下:

package demo.hello.bean;
import org.nutz.dao.entity.annotation.Id;
import org.nutz.dao.entity.annotation.Table;
@Table("tb_user")
public class User {
@Id
private long id;
private String name;
private transient String passwd;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
}

第六步:创建ioc,连接数据库,如下:

var ioc={
dataSource:{
type:"org.apache.commons.dbcp.BasicDataSource",
fields : {
driverClassName : 'com.microsoft.sqlserver.jdbc.SQLServerDriver',
url : 'jdbc:sqlserver://localhost:1433;databaseName=admin',
username : 'sa',
password : '123'
},
events:{
depose:"close"
}
},
dao:{
type:"org.nutz.dao.impl.NutDao",
args:[{refer:"dataSource"}]
}
}

第七步:创建一个接口,这个接口是对数据库以及表的操作,比如创建表、对表插入数据,代码如下:

package demo.hello;
import org.nutz.dao.Dao;
import org.nutz.dao.entity.annotation.Table;
import org.nutz.log.Logs;
import org.nutz.mvc.NutConfig;
import org.nutz.mvc.Setup;
import org.nutz.resource.Scans;
import demo.hello.bean.User;
/**
 * 
 * 接口,
 * @author Administrator
 *
 */
public class WendalSetup implements Setup{
private static final org.nutz.log.Log log= Logs.get();
public void destroy(NutConfig config) {
// TODO Auto-generated method stub
}
public void init(NutConfig config) {
// TODO Auto-generated method stub
log.debug("config ioc="+config.getIoc());
Dao dao=config.getIoc().get(Dao.class);
//对数据库进行插入表的操作
// for (Class klass:Scans.me().scanPackage("demo.hello")) {
// if(null!=klass.getAnnotation(Table.class))
// dao.create(klass, false);
// }
//对表就行插入数据的操作
// User user=new User();
// user.setName("admin");
// user.setPasswd("admin");
// dao.insert(user);
}
}

第八步:创建一个对用户登录验证的类,如下:

package demo.hello.module;


import java.util.Date;


import javax.jms.Session;
import javax.servlet.http.HttpSession;


import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Strings;
import org.nutz.log.Logs;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Attr;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;


import demo.hello.bean.User;




@IocBean
@At("/usr")
public class UserModule {
private static final org.nutz.log.Log log= Logs.get();
@Inject
private Dao dao;
@At//登录验证
public boolean login(@Param("name")String name,@Param("passwd")String passwd,HttpSession session){

if(Strings.isBlank(name) || Strings.isBlank(passwd))
return false;
name=name.trim().intern();
passwd=passwd.trim().intern();
User user=dao.fetch(User.class,Cnd.where("name","=",name).and("passwd","=",passwd));
if(user==null)
return false;
session.setAttribute("me", user);
return true;
}
@At
@Ok(">>:/")//返回登录页
public void logout(HttpSession session){
session.invalidate();

}
@At//输出用户
public User me(@Attr("me")User user){
return user;
}
@At("/ping")
public Object ping(){
log.debug("Dao=="+dao);
return new Date();
}
}

最后是jsp的操作<%@ page language="java" cOntentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>









未知




用户名:
密   码:



登出




项目源码下载地址, 点击下载


推荐阅读
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 本指南详细介绍了如何在同一台计算机上配置多个GitHub账户,并使用不同的SSH密钥进行身份验证,确保每个账户的安全性和独立性。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • Django xAdmin 使用指南(第一部分)
    本文介绍如何在Django项目中集成和使用xAdmin,这是一个增强版的管理界面,提供了比Django默认admin更多的功能。文中详细描述了集成步骤及配置方法。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 本文详细介绍如何在Linux系统中配置SSH密钥对,以实现从一台主机到另一台主机的无密码登录。内容涵盖密钥对生成、公钥分发及权限设置等关键步骤。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
  • 本文详细介绍如何通过设置SSH密钥来获取连接GitHub远程仓库的权限,包括生成密钥、添加到GitHub账户以及验证连接等步骤。 ... [详细]
author-avatar
問露旧
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有