Layer:

UI层:  user interface 用户接口层

Biz层:   service business login layer 业务逻辑层

DAO层:   Date Access Object 数据访问层

1.建立三层架构

UI层(对应包ui):这里就是一个简单的测试类

Biz层(对应包service):包括实体类的service层接口IGradeService和其实现类(impl包下)GradeServiceimpl

DAO层(对应包dao):BaseDAO工具类和实体类的dao层接口IGradeDAO和其实现类(impl包下)GradeDAOimpl

BaseDAO代码:

 package cn.happy.dao;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet; /**
* database Data Access Object
* 数据库访问工具类
* Created by yanshaochen on 17-7-25.
*/
public class BaseDAO {
static final String URL="jdbc:mysql://127.0.0.1:3306/t14";
static final String DRIVER="com.mysql.jdbc.Driver";
static final String USR="root";
static final String PASSWORD="root";
private Connection con=null;
private PreparedStatement ps=null;
private ResultSet rs=null;
//getConnection
public Connection getConnection() throws Exception {
Class.forName(DRIVER);
if(con==null||con.isClosed()){
con= DriverManager.getConnection(URL,USR,PASSWORD);
}
return con;
}
//close rs,ps,con
public void closeResources() throws Exception {
if(rs!=null)
rs.close();
if(ps!=null)
ps.close();
if(con!=null)
con.close();
}
//executeUpdate
public int executeUpdate(String sql,Object... objs) throws Exception {
int count=;
getConnection();
ps=con.prepareStatement(sql);
if(objs!=null){
for (int i=;i<objs.length;i++){
ps.setObject(i+,objs[i]);
}
} count=ps.executeUpdate();
return count;
}
//executeQuery
public ResultSet executeQuery(String sql,Object... objs) throws Exception {
getConnection();
ps=con.prepareStatement(sql);
if(objs!=null){
for (int i=;i<objs.length;i++){
ps.setObject(i+,objs[i]);
}
} rs = ps.executeQuery();
return rs;
}
}

实体类代码:

 package cn.happy.entity;

 /**
* Created by yanshaochen on 17-7-25.
*/
public class Grade {
private String gradeName; public String getGrade() {
return gradeName;
} public void setGrade(String gradeName) {
this.gradeName = gradeName;
}
}

Biz层接口代码:

 package cn.happy.service;

 import cn.happy.entity.Grade;

 /**
* Created by yanshaochen on 17-7-25.
*/
public interface IGradeService {
boolean addGrade(Grade grade) throws Exception;
}

实现类代码(与dao层联系):

 package cn.happy.service.impl;

 import cn.happy.dao.IGradeDAO;
import cn.happy.dao.impl.GradeDAOImpl;
import cn.happy.entity.Grade;
import cn.happy.service.IGradeService; /**
* Created by yanshaochen on 17-7-25.
*/
public class GradeServiceImpl implements IGradeService {
IGradeDAO dao=new GradeDAOImpl();
@Override
public boolean addGrade(Grade grade) throws Exception {
return dao.addGrade(grade);
}
}

DAO层接口代码:

 package cn.happy.dao;

 import cn.happy.entity.Grade;

 /**
* Created by yanshaochen on 17-7-25.
*/
public interface IGradeDAO {
boolean addGrade(Grade grade) throws Exception;
}

实现类代码:

 package cn.happy.dao.impl;

 import cn.happy.dao.BaseDAO;
import cn.happy.dao.IGradeDAO;
import cn.happy.entity.Grade; /**
* Created by yanshaochen on 17-7-25.
*/
public class GradeDAOImpl extends BaseDAO implements IGradeDAO{
@Override
public boolean addGrade(Grade grade) throws Exception {
boolean flag=false;
String sql="insert into grade(gradeName)values(?);";
int count = executeUpdate(sql,grade.getGrade());
if(count>){
flag=true;
}
return flag;
}
}

测试类代码:

 package cn.happy.ui;

 import cn.happy.entity.Grade;
import cn.happy.service.IGradeService;
import cn.happy.service.impl.GradeServiceImpl; /**
* Created by yanshaochen on 17-7-25.
*/
public class MyMain {
public static void main(String[] args) throws Exception {
Grade grade = new Grade();
grade.setGrade("T21");
IGradeService igs=new GradeServiceImpl();
boolean isSuccess = igs.addGrade(grade);
if(isSuccess){
System.out.println("添加成功!");
}else {
System.out.println("添加失败!");
}
}
}

Java学习笔记——三层架构的更多相关文章

  1. C# 学习笔记 三层架构系列(控件一)

    下面是我两周的学习总结:这是我写给自己的,如果哪位朋友有幸看到这篇文章就是缘分.如果所说的内容不对,就请纠正.勿喷!!! 想要将两周的学习知识通过文字.通过代码.通过图片储备起来,以防自己那天思维短路 ...

  2. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  3. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  4. 20145330第六周《Java学习笔记》

    20145330第六周<Java学习笔记> . 这周算是很忙碌的一周.因为第六周陆续很多实验都开始进行,开始要准备和预习的科目日渐增多,对Java分配的时间不知不觉就减少了,然而第十和十一 ...

  5. 20145330第五周《Java学习笔记》

    20145330第五周<Java学习笔记> 这一周又是紧张的一周. 语法与继承架构 Java中所有错误都会打包为对象可以尝试try.catch代表错误的对象后做一些处理. 使用try.ca ...

  6. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  7. JavaWeb学习之三层架构实例(三)

    引言 通过上一篇博客JavaWeb学习之三层架构实例(二)我们基本上已经实现了对学生信息列表的增删改查操作(UI除外),但是不难看出,代码冗余度太高了,尤其是StudentDao这个类,其中的增删改查 ...

  8. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  9. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

随机推荐

  1. python3操作注册表设置/取消IE代理

    import io, sys, time, re, os import winreg def enableProxy(IP, Port): proxy = IP + ":" + s ...

  2. explanatory variable(independent vs dependent)、design matrix

    design matrix(设计矩阵) 是统计学上的概念,一般标记为 X,是由一组对象的解释变量(explanatory variables)构成的矩阵. 1. explanatory variabl ...

  3. Android面HTTP协议发送get要求

    /** * 采纳get办法要求 * * @param username * @param password * @return null表示求得的路径有问题,text返回请求得到的数据 */ publ ...

  4. SQL_DML简单的操作

    ***********************************************声明*************************************************** ...

  5. 实现js呼叫流行

    <span style="font-size:14px;">//Html代码:单击控制实现通话"收件人流行" <!DOCTYPE html&g ...

  6. JS正则--非负整数或小数[小数最多精确到小数点后两位]

    function ValidPrice(obj) { s = obj.value; //var reg = /^[0-9]*\.[0-9]{0,2}$/; var reg = /^[0-9]+([.] ...

  7. wpf采用Xps实现文档显示、套打功能

    原文:wpf采用Xps实现文档显示.套打功能 近期的一个项目需对数据进行套打,用户要求现场不允许安装office.页面预览显示必须要与文档完全一致,xps文档来对数据进行处理.Wpf的Document ...

  8. Template简介

    分类   ControlTemplate ItemsPanelTemplate DataTemplate 样式Style和模板Template对比 Style:样式,风格Template:模版,某种控 ...

  9. RelativeSource 简述

    原文:RelativeSource 简述 RelativeSource实现标记扩展,以描述绑定源相对于绑定目标的位置. <Binding> <Binding.RelativeSour ...

  10. C# 获得设备usb信息

    原文:C# 获得设备usb信息 本文告诉大家如何获得设备的usb来进行判断是否有哪些usb和找不到usb可能是什么. 需要在项目右击引用,点击程序集,搜索 System.Management 然后安装 ...