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

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如下

    <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">
    <display-name>nutz</display-name>
    <filter>
    <filter-name>nutz</filter-name>
    <filter-class>org.nutz.mvc.NutFilter</filter-class>
    <init-param>
    <param-name>modules</param-name>
    <param-value>demo.hello.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>

    第三步:创建所需的module,这个module的名字大家是随便写的,但一定要注意,web.xml中<param-value>demo.hello.MainModule</param-value>的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"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript" src="${base}/js/jquery-1.7.2.js"></script>
    <script type="text/javascript">
    var login = <%=session.getAttribute("me") != null %>;
    $(function () {
    if (login) {
    $("#login_status").html("已登陆");
    $("#login_form").hide();
    } else {
    $("#login_status").html("未登陆");
    $("#logout_link").hide();
    }
    $("#login_form").submit(function () {
    //alert($("#login_form").serialize());
    $.ajax({
    url : "${base}/usr/login",
    data : $("#login_form").serialize(),
    success : function (res) {
    if (res == "true") {
    alert("登陆成功!!");
    $("#logout_link").show();
    $("#login_form").hide();
    $("#login_status").html("已登陆");
    } else {
    alert("登陆失败!!");
    $("#logout_link").hide();
    $("#login_form").show();
    }
    return false;
    },
    fail : function(res) {
    alert("系统错误?!");
    }
    });
    return false;
    });
    });
    </script>
    <title>首页</title>
    </head>
    <body>
    <h1 id="login_status">未知</h1><p/>

    <form id="login_form" action="#">
    用户名:<input name="name"></input>
    密   码:<input name="passwd"></input>
    <input type="submit" value="提交"></input>
    </form>

    <a href="${base}/usr/logout" id="logout_link">登出</a>
    </body>
    </html>



  • 项目源码下载地址,点击下载
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值