既然是分层开发,首先我们需要知道的是分为那几个层,并且是干什么的?

1.实体层(entity) 对应数据库中的一张表,有了它可以降低耦合性,同时也是数据的载体.

2.数据访问对象(data access object)主要包含两个java源文件,一个是BaseBao,还有一个是所需要查询表的接口

package cn.news.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import org.junit.Test; /**
* 数据访问工具类
* @version 1.1
* @author happy
*
*/
public class BaseDao {
private static final String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String url="jdbc:sqlserver://localhost:1433;DataBaseName=s2223";
private static final String username="sa";
private static final String pwd="6375196"; Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
//01.写一个用户获取到一个连接对象的方法,方法的返回值是Connection类型
/**
* 01.写一个用户获取到一个连接对象的方法,方法的返回值是Connection类型
* @return 连接对象
* @throws Exception
*/
public Connection getConnection() throws Exception{
Class.forName(driver);
//什么条件下,构建connection对象
if (con==null||con.isClosed()) {
con=DriverManager.getConnection(url, username, pwd);
}
//同志们碰到一个
return con;
} //单元测试
//java junit
@Test
public void testQuery() throws Exception{
ResultSet rs = executeQuery("select * from student");
if(rs!=null){
while (rs.next()) {
String name = rs.getString("sname");
System.out.println(name);
}
}
}
//测试添加
@Test
public void testUpdate() throws Exception{
int count= executeUpdate("update student set sname='大强' where sname='黄强'");
System.out.println(count);
} //执行查询操作 目的:返回一个读取器
/**
* 执行查询操作 目的:返回一个读取器
* @param sql sql语句
* @param objs 参数列表
* @return 读取器对象
* @throws Exception
*/
public ResultSet executeQuery(String sql,Object... objs) throws Exception{
con=getConnection();
ps = con.prepareStatement(sql);
for (int i = 0; i < objs.length; i++) {
ps.setObject(i+1, objs[i]);
}
rs= ps.executeQuery();
return rs;
} //执行增删该操作
/**
* 执行增删该操作
* @param sql sql语句
* @param objs 参数列表
* @return 受影响行数
* @throws Exception
*/
public int executeUpdate(String sql,Object... objs) throws Exception{
con=getConnection();
ps = con.prepareStatement(sql);
for (int i = 0; i < objs.length; i++) {
ps.setObject(i+1, objs[i]);
}
int count = ps.executeUpdate();
return count;
} //2.回收连接资源
/**
* 回收连接资源
* @throws Exception
*/
public void closeAll() throws Exception{
if(rs!=null){
rs.close();
}
if (ps!=null) {
ps.close();
}
if(con!=null){
con.close();
} } }

3.数据访问层的

java分层开发的更多相关文章

  1. java的分层开发

    既然是分层开发,首先我们需要知道的是分为那几个层,并且是干什么的? 1.实体层(entity) 对应数据库中的一张表,有了它可以降低耦合性,同时也是数据的载体. 2.数据访问对象(data acces ...

  2. 【原创】三分钟教你学会MVC框架——基于java web开发(2)

    没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...

  3. Java Web开发之详解JSP

    JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面.Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用, ...

  4. Java分层概念(转)

    Java分层概念(转) 对于分层的概念,似乎之间简单的三层,多了,就有点难以区分了,所以收藏了这个. ervice是业务层 action层即作为控制器 DAO (Data Access Object) ...

  5. java web 开发三剑客 -------电子书

    Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知In ...

  6. 规范——Java后端开发规范

    Java后端开发规范 一.技术栈规约 二.命名规范 三.Java代码规范(注释规范.异常与日志.代码逻辑规范) 四.Mybatis与SQL规范 五.结果检查(单元测试及代码扫描) 六.安全规范 一.技 ...

  7. Java分层思想

    从最常规的分层结构来说,系统层次从上到下依次为: 表现层/UI层/界面层:主要是客户端的展示. 服务层/业务层:直接为客户端提供的服务或功能.也是系统所能对外提供的功能. 领域层:系统内的领域活动. ...

  8. 5款强大的Java Web开发工具

    1.WebBuilder这是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...

  9. Mac OS X上IntelliJ IDEA 13与Tomcat 8的Java Web开发环境搭建

    这标题实在有点拗口,不知道怎么写好,但看了标题也就明白文本的内容.最近几天在折腾这些玩意儿,所以写写总结.除了环境搭建,本文还是一篇入门级的上手教程. 去下载一些东西 JDK安装 Tomcat安装 T ...

随机推荐

  1. git怎么创建本地版本仓库

    git怎么创建本地版本仓库 安装git我就不用说了吧!下载地址:https://github.com/msysgit/msysgit/releases/download/Git-1.9.4-previ ...

  2. 每日一博 | 用 Ionic2 创建 App 启动页滑动欢迎界面

    原文  https://my.oschina.net/qinphil/blog/777787 效果如下,图片来自网络 本文例子和上图稍有不同,主要功能如下: 每滑动一下展示一张全屏图片: 滑动到最后一 ...

  3. 30分钟手把手教你学webpack实战

    30分钟手把手教你学webpack实战 阅读目录 一:什么是webpack? 他有什么优点? 二:如何安装和配置 三:理解webpack加载器 四:理解less-loader加载器的使用 五:理解ba ...

  4. ST05 跟踪SQL

          SAP R/3 提供标准ABAP SQL 跟踪工具.使用T-Code:ST05 可以进入追踪设定画面:          在Trace Modes 区域中选择需要在SAP R/3 Serv ...

  5. C/C++ 一些常用的运算符

    算数运算符 语法 解释说明举例 a + b 加法(求和)1+1..2+2..   2.5+2.5..等等 a - b 减法(求差)5 - 2.. a * b 乘法(求积)2 * 5 a / b 除法( ...

  6. OC字符串NSString

    ========================== 面向对象编程进阶和字符串 ========================== Δ一.类的设计模式—单例 [单例]程序允许过程中,有且仅有一块内存 ...

  7. Android 中MyApplication

    package liu.basedemo; import android.app.Activity; import android.app.Application; import java.lang. ...

  8. mac PHP配置

    apache默认路径配置方法 apache的配置   apache已经自带了,只需如下三个命令就可以了. 开启apache服务 sudo apachectl start 停止apache服务 sudo ...

  9. 关于input全选反选恶心的异常情况

    上一篇讲到:第一次点击全选按钮input显示对勾,第二次则不显示,需要用prop来添加checked属性. 但是用prop会出现一个问题,对勾显示,而checked属性不会被添加(比如:$(" ...

  10. JavaWeb 的学习一

    JavaWeb学习总结(一)——JavaWeb开发入门 一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Inte ...