【SpringMVC】使用三层架构实现登录,注册。(下篇)
上篇写了构思与界面层,本篇写一下业务逻辑层、数据访问层
目录

业务逻辑层
包:pojo
用户类(JavaBean):User
public class User {
private String userName;
private String userPwd;
public User(String userName, String userPwd) {
this.userName = userName;
this.userPwd = userPwd;
}
public User() {
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
}
包:service
接口:IUserService
public interface IUserService {
public boolean register(User user);
public boolean login(User user);
}
类:UserServiceImpl
public class UserServiceImpl implements IUserService {
@Override
public boolean register(User user) {
IUserDao dao=new UserDaoImpl();
User userByName = dao.findUserByName(user);
if(userByName==null){
//如果数据库里没有找到同名的,就注册
try {
int i = dao.addUser(user);
if(i>0){
System.out.println("注册成功");
}else {
return false;
}
return true;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return false;
}
@Override
public boolean login(User user) {
IUserDao dao=new UserDaoImpl();
User checkUser = dao.checkUser(user);
if(checkUser==null){
//如果数据库里没有找到同名、同密码的
System.out.println("登录失败");
return false;
}else {
System.out.println("欢迎登录");
return true;
}
}
}
数据访问层
包:dao
接口:IUserDao
public interface IUserDao {
public User findUserByName(User u);
public User checkUser(User u);//检查用户名密码是否与数据库中一致
public int addUser(User u);//向数据库中添加用户信息
}
实现接口的类:UserDaoImpl
public class UserDaoImpl implements IUserDao{
private JdbcTemplate jt=new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public User findUserByName(User user) {
User u=null;
try{
u=jt.queryForObject("select userName from userinfo where userName=?",
new BeanPropertyRowMapper<User>(User.class),user.getUserName());
}catch (Exception e){
}
return u;
}
@Override
public User checkUser(User user) {
User u=null;
try{
u=jt.queryForObject("select userName,userPwd from userinfo where userName=? and userPwd=?",
new BeanPropertyRowMapper<User>(User.class),user.getUserName(),user.getUserPwd());
}catch (Exception e){
}
return u;
}
@Override
public int addUser(User user) {
int c=0;
String status="正常";
try {//c为添加数据库影响的行数,添加成功则c=1,失败则c=0
c=jt.update("insert into userinfo(userName,userPwd,typeId,userStatus) values (?,?,?,?)",
user.getUserName(),user.getUserPwd(),3,status);
}catch (Exception e){
}
return c;
}
}
工具类:JDBCUtils (创建连接池)
public class JDBCUtils {
private static DataSource ds;
static {
Properties p=new Properties();
try {
p.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
ds= DruidDataSourceFactory.createDataSource(p);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static DataSource getDataSource(){
return ds;
}
}
到这里就结束了,可以正常运行了。
【SpringMVC】使用三层架构实现登录,注册。(下篇)的更多相关文章
- winform学习日志(十九)----------真正三层架构之登录
摘要:一:三层构架的基础知识在项目开发的过程中,有时把整个项目分为三层架构,其中包括:表示层(UI).业务逻辑层(BLL)和数据访问层(DAL).三层的作用分别如下: 表示层:为用户提供交互操作界面, ...
- 【SpringMVC】使用三层架构实现登录,注册。(上篇)
构思 界面层 1.jsp [见名知义] failed.jsp-->失败页面,登录.注册失败就跳转至失败页面 index.jsp-->默认生成的界面,没什么用 login.jsp--> ...
- Springmvc+Spring+Mybatis实现员工登录注册功能
ssm实现用户注册以及登录功能..转载请标明出处 http://www.cnblogs.com/smfx1314/p/smfx1314.html 前端bootstrap 所使用的IDE是eclips ...
- asp.net mvc 三层加EF 登录注册 增删改查
首先打开vs软件新建项目创建web中的mvc项目再右击解决方案创建类库项目分别创建DAL层和BLL层再把DAL层和BLL层的类重命名在mvc项目中的Models文件夹创建model类在DAL创建ADO ...
- C# 三层架构之系统的登录验证与添加数据的实现
利用三层架构体系,实现学生管理系统中用户的登录与添加班级信息的功能,一下代码为具体实现步骤的拆分过程: 一.用户登录界面功能的实现 1.在数据访问层(LoginDAL)进行对数据库中数据的访问操作 u ...
- 三层架构,Struts2,SpringMVC实现原理图
三层架构,Struts2,SpringMVC实现原理图 三层架构实现原理 Struts2实现原理 SpringMVC实现原理
- c#利用三层架构做一个简单的登录窗体
就个人而言,三层架构有点难理解,不知道该如何下手,各层与各层之间怎么调用 最近一直在研究三层架构,经过网上学习与多方打听写一下自己的心得.有不足之处,可以评论和私聊探讨 言归正传: 三层架构(3-ti ...
- C# 使用三层架构实例演示-winForm 窗体登录功能
---------------------------------------------------------------------------------------------------华 ...
- 三层架构(MVC)实现简单登陆注册验证(含验证码)
前言在我的上一篇微博里我已经提出了登陆的方法,当时我采取的是纯servlet方式,因为当时刚接触到servlet,正好网上没有这方面的全面讲解,所以我就发飙了.不过在现实生产中我们大多采用的三层架构. ...
随机推荐
- struts2初始化探索(一)
上篇文章已经介绍了struts2的简单使用,现在开始源码的学习. 本篇主要介绍struts2的初始化.对应的源码为StrutsPrepareAndExecuteFilter中的init方法. 先贴源码 ...
- 测试开发专题:spring-boot统一异常捕获
java异常介绍 异常时相对于return的一种退出机制,可以由系统触发,也可由程序通过throw语句触发,异常可以通过try/catch语句进行捕获并处理,如果没有捕获,则会导致程序退出并输出异常栈 ...
- SSM + MYSQL 酒店客房管理系统
酒店客房管理系统的设计与实现是采用JSP技术,MYSQL数据库进行开发的.系统具有灵活的一体化设计方式,圆满完成了整个系统的全面设计,系统主要采用JSP技术开发,提高系统的运行性能和安全性,并且易于维 ...
- NEON中的L可以避免溢出
在做加法时,比如两个255x255的数值相加,那么正确结果将是130050,对一个最大值为65565的unsigned short是会溢出的,但是如果使用L命令时,则不会产生溢出.这说明L命令,不是先 ...
- 基于SSM的健身房管理系统
基于SSM的健身房管理系统 The project was made in 2020-05-05~2020-05-10 谨以此片博文记录下我的第一个Java小Demo 项目展示 用户登录页 用户注册页 ...
- 流媒体与实时计算,Netflix公司Druid应用实践
Netflix(Nasdaq NFLX),也就是网飞公司,成立于1997年,是一家在线影片[租赁]提供商,主要提供Netflix超大数量的[DVD]并免费递送,总部位于美国加利福尼亚州洛斯盖图.199 ...
- C:简单实现BaseCode64编码
What is Base64? 前言 目前来看遇到过Base 16.Base 32.Base 64的编解码,这种编码格式是二进制和文本编码转化,是对称并且可逆的转化.Base 64总共有64个ASCI ...
- JDBC01 mysql和navicat的安装
navicat的安装 从网上下载的,详细过程,略 mysql8.0.11(win10,64)安装 1.下载 MySQL8.0 For Windows zip包下载地址:https://dev.mysq ...
- [hdu5215]无向图找奇偶环
题意:如标题 思路:对于奇环,一个二分图判定就ok了,有奇环<=>非二分图.对于偶环,考虑环必定出现在双联通分量里面,可以先求出图的双联通分量,对于一个双联通分量,对于双联通分量里面的每个 ...
- Springboot中修改.properties文件为.yml文件时项目不能运行问题
可能很多小伙伴会考虑环境配置的问题,maven版本.idea版本什么的,其实没有必要 只要你之前.ies时能运行,那么环境配置就没有问题 不能运行的原因,一定是你的.yml文件的格式问题 .yml文件 ...