springMVC+hibernate+oracle10g实现用户登陆

5 篇文章 0 订阅
4 篇文章 0 订阅

首先要搭建好springMVC框架 ,连接好数据库。


目录层级如下:


DAO :数据层  BIZ:业务层 Controller:控制层

个人习惯按照DAO-->BIZ-->Controller的顺序编写。

首先新建一个接口(interface)AdminDao ,代码如下:

package com.howin.dao;
public interface AdminDao {
	//管理员登陆
	public boolean login(String username,String password);
}
编写AdminDao的实现类,AdminDaoImpl,代码如下:

package com.howin.daoImpl;
import java.util.List;

import javax.annotation.Resource;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate4.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.howin.dao.AdminDao;
import com.howin.pojo.Admin;
@Repository("adminDao")//(仓库)让spring扫描添加进bean
public class AdminDaoImpl extends HibernateDaoSupport implements AdminDao {
	
	@Resource
	private SessionFactory sessionFactory;
	@Autowired
	public void setMySessionFactory(SessionFactory sessionFactory){  
		super.setSessionFactory(sessionFactory);
	}
	@SuppressWarnings("unchecked")
	@Override
	 @Transactional
	 //管理员登陆
	    public boolean login(String username, String password) {
		
		List<Admin> usersList = sessionFactory.getCurrentSession().createQuery("from Admin a where a.username=:i and a.password=:p")
				.setParameter("i", username).setParameter("p", password).list();
		if(usersList.size()==1){
			return true;
		}else{
			return false;
		}
		
	}
	
}

(pojo是实体类,hibernate同样也是面向对象的,它并不直接操作数据库,from Admin ...这里的Admin是类名,并不是表名!!!需要用hibernate逆向工程生成pojo类)

创建接口AdminBiz,代码如下:

package com.howin.biz;
public interface AdminBiz {
	//管理员登陆
	public  boolean login(String username,String password);
}
创建AdminBiz的实现类:AdminBizImpl,代码如下:

package com.howin.bizImpl;

import java.util.List;

import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.howin.biz.AdminBiz;
import com.howin.dao.AdminDao;
import com.howin.pojo.Admin;
@Service("adminBiz")
public class AdminBizImpl implements AdminBiz {
	@Resource(name="adminDao")
	AdminDao adminDao;
	 
	
	public void setAdminDao(AdminDao adminDao) {
		this.adminDao = adminDao;
	}
 //管理员登陆
	@Override

    public boolean login(String username, String password) {
        // TODO Auto-generated method stub
        boolean login = adminDao.login(username, password);
        if(login){
            return true;
        }else{
            return false;
        }
    }
	}




最后是控制层,创建AdminController ,代码如下:

package com.howin.controller;

import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.howin.biz.AdminBiz;

@Controller("adminContr")
@RequestMapping("/admin")
public class AdminController {
	@Resource
	AdminBiz adminBiz;
	
    @RequestMapping("/login")
    public String login(String username , String password){
        System.out.println(username);
        if(adminBiz.login(username, password)){
            return "/success";//返回success.jsp
        }else{
            return "/error";//返回error.jsp
        }
    }
   
}


创建userLogin.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">
<title>管理员登陆</title>
</head>
<body>
<form action="admin/login" method="post">
用户名:<input type="text" name="username"><br/>
<br/>
密  码:  <input type="password" name="password"><br/>
<input type="submit" value="提交">
<input type="reset" value="    重 置 ">
</form>
</body>
</html>

创建success.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">
<title>提示页面</title>
</head>
<body>
登陆成功!
</body>
</html>
------------------------------------------------------------------------------------------------------------------------------------------------------------------

运行项目,打开浏览器输入地址:http://localhost:8080/Car/userLogin.jsp

输入用户名和密码点击登陆。

登陆成功,控制台打印hibernate语句:

Hibernate: 
    /* 
from
    Admin a 
where
    a.username=:i 
    and a.password=:p */ select
        admin0_.ID as ID1_0_,
        admin0_.USERNAME as USERNAME2_0_,
        admin0_.PASSWORD as PASSWORD3_0_ 
    from
        OAUSER.ADMIN admin0_ 
    where
        admin0_.USERNAME=? 
        and admin0_.PASSWORD=?
9527
Hibernate: 
    /* 
from
    Admin a 
where
    a.username=:i 
    and a.password=:p */ select
        admin0_.ID as ID1_0_,
        admin0_.USERNAME as USERNAME2_0_,
        admin0_.PASSWORD as PASSWORD3_0_ 
    from
        OAUSER.ADMIN admin0_ 
    where
        admin0_.USERNAME=? 
        and admin0_.PASSWORD=?
test
Hibernate: 
    /* 
from
    Admin a 
where
    a.username=:i 
    and a.password=:p */ select
        admin0_.ID as ID1_0_,
        admin0_.USERNAME as USERNAME2_0_,
        admin0_.PASSWORD as PASSWORD3_0_ 
    from
        OAUSER.ADMIN admin0_ 
    where
        admin0_.USERNAME=? 
        and admin0_.PASSWORD=?


博客源码下载地址






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值