java分层开发
既然是分层开发,首先我们需要知道的是分为那几个层,并且是干什么的?
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分层开发的更多相关文章
- java的分层开发
既然是分层开发,首先我们需要知道的是分为那几个层,并且是干什么的? 1.实体层(entity) 对应数据库中的一张表,有了它可以降低耦合性,同时也是数据的载体. 2.数据访问对象(data acces ...
- 【原创】三分钟教你学会MVC框架——基于java web开发(2)
没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...
- Java Web开发之详解JSP
JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面.Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用, ...
- Java分层概念(转)
Java分层概念(转) 对于分层的概念,似乎之间简单的三层,多了,就有点难以区分了,所以收藏了这个. ervice是业务层 action层即作为控制器 DAO (Data Access Object) ...
- java web 开发三剑客 -------电子书
Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知In ...
- 规范——Java后端开发规范
Java后端开发规范 一.技术栈规约 二.命名规范 三.Java代码规范(注释规范.异常与日志.代码逻辑规范) 四.Mybatis与SQL规范 五.结果检查(单元测试及代码扫描) 六.安全规范 一.技 ...
- Java分层思想
从最常规的分层结构来说,系统层次从上到下依次为: 表现层/UI层/界面层:主要是客户端的展示. 服务层/业务层:直接为客户端提供的服务或功能.也是系统所能对外提供的功能. 领域层:系统内的领域活动. ...
- 5款强大的Java Web开发工具
1.WebBuilder这是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...
- Mac OS X上IntelliJ IDEA 13与Tomcat 8的Java Web开发环境搭建
这标题实在有点拗口,不知道怎么写好,但看了标题也就明白文本的内容.最近几天在折腾这些玩意儿,所以写写总结.除了环境搭建,本文还是一篇入门级的上手教程. 去下载一些东西 JDK安装 Tomcat安装 T ...
随机推荐
- 【zepto学习笔记01】核心方法$()(补)
前言 昨天学习了核心$(),有几个遗留问题,我们今天来看看吧 $.each 遍历数组/对象,将每条数据作为callback的上下文,并传入数据以及数据的索引进行处理,如果其中一条数据的处理结果明确返回 ...
- go语言编辑器:liteide
LiteIDE is a simple, open source, cross-platform Go IDE. LiteIDE是一款开源.跨平台的轻量级Go语言集成开发环境(IDE). 项目地址:h ...
- LigerUI一个前台框架增、删、改asp.net代码的实现
先上代码:前台代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...
- servle
基于HTTP协议下的,http请求和http响应. http请求------请求的是服务器中的地方. 1.servlet就是解析http请求和发送http响应. 2.servlet是是一个 ...
- SharePoint 2010 文档管理系列之文档搜索
前言:如果一个文档库里面有很多文档,成千上万,对我们来说查找就是个麻烦事儿,所以搜索的必要性就体现出来了.下面,我们简单的介绍下,sharepoint搜索配置,并创建一个简单的搜索页面. 一. 配置S ...
- Android 图片的平移和镜面和倒影效果
在前面的文章中陆续介绍了图片的旋转与缩放,本文继续介绍关于图片的操作 图片的平移 使用下面的代码将图水平竖直方向平移10个像素 matrix.setTranslate(10, 10); 可以看到图片不 ...
- iOS中UINavigationController控制器使用详解
一.概述 UINavigationController用来管理视图控制器,在多视图控制器中常用.它以栈的形式管理视图控制器,管理视图控制器个数理论上不受限制(实际受内存限制),push和pop方法来弹 ...
- 1.2 基础知识——关于猪皮(GP,Generic Practice)
摘要: 这是<CMMI快乐之旅>系列文章之一.说起猪皮(GP,Generic Practice),真的让人又爱又恨,中文翻译叫通用实践.CMMI标准中每个级别包含几个PA,每个PA又包含几 ...
- JAVA 8 Optional类介绍及其源码
什么是Optional对象 Java 8中所谓的Optional对象,即一个容器对象,该对象可以包含一个null或非null值.如果该值不为null,则调用isPresent()方法将返回true,且 ...
- 由一个订单推送想到了ObservableCollection的神奇用法
最近在做taobao的一个卖家应用,需要订阅taobao的订单推送,示例代码如下: 看到上面的OnMessage场景之后,我突然就鬼使神差的在想最近写的一个服务,其中的一个功能是需要定时的轮询一个集合 ...