分层:开发模式
    数据访问层

业务逻辑层:调用数据访问层

视图层:调用业务逻辑层

数据库表

1、创建项目
2、创建包:
    com.zking.util    
    com.zking.entity
    com.zking.dao(放dao接口)
    com.zking.dao.imp    (放dao接口实现类)
    com.zking.biz
    com.zking.biz.imp

这里是链接oracle数据库的,下面会我给大家演示用户是如何分层的,如果想学习的你可以直接复制到你的项目中 理解我们的分层:数据访问层、业务逻辑层、视图层

DBHelper.java类

package com.zking.util;import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;public class DBHelper {private static String user = "scott";private static String upwd = "tiger";private static String cname = "oracle.jdbc.driver.OracleDriver";private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";//注册驱动类static {try {Class.forName(cname);} catch (ClassNotFoundException e) {e.printStackTrace();}}//连接数据库/*** 连接数据库* @return*/public static Connection getCon() {Connection con = null;try {con = DriverManager.getConnection(url, user, upwd);} catch (Exception e) {e.printStackTrace();}return con;}/*** 关闭连接* @param con* @param ps* @param rs*/public static void closeDb(Connection con,PreparedStatement ps,ResultSet rs) {try {if(con!=null) {con.close();}if(ps!=null) {ps.close();}if(rs!=null) {rs.close();}} catch (Exception e) {e.printStackTrace();}}/*** 下一个获取下一个编号的方法* @return 下一个编号*/public static int getNextId(String tableName,String col) {int id = 1;Connection con = null;PreparedStatement ps = null;ResultSet rs = null;try {con = DBHelper.getCon();ps = con.prepareStatement("select max("+col+") from "+tableName);rs = ps.executeQuery();if(rs.next()) {id = rs.getInt(1)+1;}} catch (Exception e) {e.printStackTrace();}finally {DBHelper.closeDb(con, ps, rs);}return id;}//关闭连接}

User.java  实体类

package com.zking.entity;public class User {private int uuid;private String uname;private String uwpd;private String uinfo;public int getUuid() {return uuid;}public void setUuid(int uuid) {this.uuid = uuid;}public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public String getUwpd() {return uwpd;}public void setUwpd(String uwpd) {this.uwpd = uwpd;}public String getUinfo() {return uinfo;}public void setUinfo(String uinfo) {this.uinfo = uinfo;}public User() {super();}public User(String uname, String uwpd, String uinfo) {super();this.uname = uname;this.uwpd = uwpd;this.uinfo = uinfo;}public User(int uuid, String uname, String uwpd, String uinfo) {super();this.uuid = uuid;this.uname = uname;this.uwpd = uwpd;this.uinfo = uinfo;}@Overridepublic String toString() {return "User [uuid=" + uuid + ", uname=" + uname + ", uwpd=" + uwpd + ", uinfo=" + uinfo + "]";}}

IUserDao.java  用户的数据访问层接口

package com.zking.dao;import com.zking.entity.User;/*** 用户的数据访问层接口* @author d**/
public interface IUserDao {/*** 用户登录方法* @param uname 用户名* @param upwd 用户密码* @return 登录成功返回用户对象,否则返回null*/public User login(String uname,String upwd);/*** 用户注册方法* @param user 要注册的用户* @return 成功返回1,失败返回0*/public int register(User user);}

Imp_UserDao 用户的数据访问层实现类

package com.zking.dao.imp;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;import com.zking.dao.IUserDao;
import com.zking.entity.User;
import com.zking.util.DBHelper;/***     用户的数据访问层实现类* @author d**/
public class Imp_UserDao implements IUserDao {public User login(String uname, String upwd) {Connection con = null;PreparedStatement ps = null;ResultSet rs = null;User user = null;try {con = DBHelper.getCon();ps = con.prepareStatement("select * from T277 where uname=? and upwd=?");ps.setString(1, uname);ps.setString(2, upwd);rs = ps.executeQuery();if(rs.next()) {user = new User(rs.getInt(1), uname, upwd, rs.getString(4));}} catch (Exception e) {e.printStackTrace();}finally {DBHelper.closeDb(con, ps, rs);}return user;}public int register(User user) {return 0;}}

IUserBiz  用户的业务逻辑层接口

package com.zking.biz;import com.zking.entity.User;/*** 用户的业务逻辑层接口* @author d**/
public interface IUserBiz {/*** 用户登录方法* @param uname 用户名* @param upwd 用户密码* @return 登录成功返回用户对象,否则返回null*/public User login(String uname,String upwd);/*** 用户注册方法* @param user 要注册的用户* @return 成功返回true,失败返回false*/public boolean register(User user);}

 Imp_UserBiz   用户的业务逻辑层实现类

package com.zking.biz.imp;import com.zking.biz.IUserBiz;
import com.zking.dao.IUserDao;
import com.zking.dao.imp.Imp_UserDao;
import com.zking.entity.User;/*** 用户的业务逻辑层实现类* @author  T277**/
public class Imp_UserBiz implements IUserBiz {//多态IUserDao iud = new  Imp_UserDao();public User login(String uname, String upwd) {return iud.login(uname, upwd);}public boolean register(User user) {return iud.register(user)==1?true:false;}}

我们的登录页面就是直接调用了 dologin.jsp

<%//接收数据//调用登录方法-实例化业务逻辑层对象IUserBiz iub = new Imp_UserBiz();User us = iub.login("", "");%>

我们的login.jsp页面是不会用到我们的java代码的了

在接下来 我也会跟大家一起学习,初来驾到有很多不懂得东西希望大伙多多指教(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤

后面我会给大家出个使用分层实现购物车2.0版

分层:数据访问层、业务逻辑层、视图层相关推荐

  1. java中表示层 控制层 业务逻辑层 数据访问层

    控制层(controller):的职能是负责读取视图表现层的数据,控制用户的输入,并调用业务层的方法: 业务层(service):需要根据系统的实际业务需求进行逻辑代码的编写,有些业务逻辑需要通过与数 ...

  2. ASP.NET三层架构——BLL层(业务逻辑层)

    今天,我们来学习一下BLL层的框架搭建: 在创建BLL层之后,我们要搭建BLL层中的Manage类,具体样式参照下图: 注意:我们要遵循一个原则:要根据DAL层中的Service类来创建BLL层的Ma ...

  3. android ui层 交互层 业务逻辑层 服务层,表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)...

    三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了"高内聚,低耦 ...

  4. java三层架构(表示层,业务逻辑层,数据访问层,与两层的区别,三层架构的优缺点)

    目录 1 什么是三层 2 为什么使用三层 3 与两层的区别 1 什么是三层 UI(表现层): 主要是指与用户交互的界面.用于接收用户输入的数据和显示处理后用户需要的数据. BLL:(业务逻辑层): U ...

  5. 细说业务逻辑 -- 丢失的业务逻辑层

    前言 记得几个月前,在一次北京博客园俱乐部的活动上,最后一个环节是话题自由讨论.就是提几个话题,然后大家各自加入感兴趣的话题小组,进行自由讨论.当时金色海洋同学提出了一个话题--"什么是业务 ...

  6. MyBatis知多少(6)表现层与业务逻辑层

    表现层 表现层负责向最终用户展示应用程序的控制方式以及数据.它还要负责所有信息的布局和格式.今天,商业应用程序最流行的表现方式应该算是Web前端了,它使用HTML和JavaScript并通 过Web浏 ...

  7. java业务逻辑层文档,java业务逻辑层类图

    Java 面向对象 16 种设计原则一 类的设计原则 1 ...假如已有的系统中存在以下既有的业务逻辑代码: void...下面的类图将它的 2 个不同职责分成 2 个不同的...... java大作 ...

  8. 表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)

    三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了"高内聚,低耦 ...

  9. 三层架构:表示层——业务逻辑层——数据访问层

    三层架构:表示层--业务逻辑层--数据访问层 1.什么是三层架构 所谓的三层开发就是将系统的整个业务应用划分为表示层--业务逻辑层--数据访问层,这样有利于系统的开发.维护.部署和扩展. 分层是为了实 ...

最新文章

  1. 清华大学公管学院、数据科学研究院共同助力国家数据治理,国家数据与治理联盟在京成立
  2. [Python]一行代码判断请求参数是否正确
  3. pythonunicode和str_python的str,unicode对象的encode和decode方法
  4. Java基础篇:抽象类与接口
  5. You can't specify target table 'myusertable' for ......in FROM clause
  6. MVC学习九:MVC 特性本质
  7. uboot移植——使用三星官方的uboot进行移植
  8. 再续前缘 阿里云基础设施网络团队ACM SIGCOMM 2021续创佳绩
  9. 锐捷S12010交换机配置端口镜像
  10. Android sn 号修改
  11. linux中syscmd用法,M4 宏处理器
  12. 随手写一篇关于rabbitMQ的安装教程
  13. win7计算机如何进入管理员权限,win7电脑怎样获得管理员权限
  14. 详解Guitar Pro 7小节的组织定义
  15. Java从入门到高级(第三天)
  16. 用JS实现贪吃蛇小游戏
  17. LinkedBlockingQueue 实现生产者消费者模型
  18. suse11 安装 apache 记录
  19. Adobe Illustrator CC 制作排版
  20. 洛谷P4961 小埋与扫雷

热门文章

  1. 英文文献阅读器Paper Digest使用指南
  2. 云原生中间件——Redis Operator 篇
  3. 2017年计算机a级模拟试题,2017年计算机国考(二级Access)全真模拟试题及答案【手机题库】...
  4. Express全系列教程之(四):获取Post参数的两种方式
  5. Blender:制作匕首
  6. 研究人员发现某中国厂商生产的手机固件回传个人信息
  7. 云原生之kubectl命令详解
  8. 用友oa协同办公软件无限期试用
  9. 苹果手机备忘提醒软件哪个好?
  10. Volcano社区v1.6.0版本正式发布