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

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

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

  1. package cn.news.dao;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8.  
  9. import org.junit.Test;
  10.  
  11. /**
  12. * 数据访问工具类
  13. * @version 1.1
  14. * @author happy
  15. *
  16. */
  17. public class BaseDao {
  18. private static final String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
  19. private static final String url="jdbc:sqlserver://localhost:1433;DataBaseName=s2223";
  20. private static final String username="sa";
  21. private static final String pwd="6375196";
  22.  
  23. Connection con=null;
  24. PreparedStatement ps=null;
  25. ResultSet rs=null;
  26. //01.写一个用户获取到一个连接对象的方法,方法的返回值是Connection类型
  27. /**
  28. * 01.写一个用户获取到一个连接对象的方法,方法的返回值是Connection类型
  29. * @return 连接对象
  30. * @throws Exception
  31. */
  32. public Connection getConnection() throws Exception{
  33. Class.forName(driver);
  34. //什么条件下,构建connection对象
  35. if (con==null||con.isClosed()) {
  36. con=DriverManager.getConnection(url, username, pwd);
  37. }
  38. //同志们碰到一个
  39. return con;
  40. }
  41.  
  42. //单元测试
  43. //java junit
  44. @Test
  45. public void testQuery() throws Exception{
  46. ResultSet rs = executeQuery("select * from student");
  47. if(rs!=null){
  48. while (rs.next()) {
  49. String name = rs.getString("sname");
  50. System.out.println(name);
  51. }
  52. }
  53. }
  54. //测试添加
  55. @Test
  56. public void testUpdate() throws Exception{
  57. int count= executeUpdate("update student set sname='大强' where sname='黄强'");
  58. System.out.println(count);
  59. }
  60.  
  61. //执行查询操作 目的:返回一个读取器
  62. /**
  63. * 执行查询操作 目的:返回一个读取器
  64. * @param sql sql语句
  65. * @param objs 参数列表
  66. * @return 读取器对象
  67. * @throws Exception
  68. */
  69. public ResultSet executeQuery(String sql,Object... objs) throws Exception{
  70. con=getConnection();
  71. ps = con.prepareStatement(sql);
  72. for (int i = 0; i < objs.length; i++) {
  73. ps.setObject(i+1, objs[i]);
  74. }
  75. rs= ps.executeQuery();
  76. return rs;
  77. }
  78.  
  79. //执行增删该操作
  80. /**
  81. * 执行增删该操作
  82. * @param sql sql语句
  83. * @param objs 参数列表
  84. * @return 受影响行数
  85. * @throws Exception
  86. */
  87. public int executeUpdate(String sql,Object... objs) throws Exception{
  88. con=getConnection();
  89. ps = con.prepareStatement(sql);
  90. for (int i = 0; i < objs.length; i++) {
  91. ps.setObject(i+1, objs[i]);
  92. }
  93. int count = ps.executeUpdate();
  94. return count;
  95. }
  96.  
  97. //2.回收连接资源
  98. /**
  99. * 回收连接资源
  100. * @throws Exception
  101. */
  102. public void closeAll() throws Exception{
  103. if(rs!=null){
  104. rs.close();
  105. }
  106. if (ps!=null) {
  107. ps.close();
  108. }
  109. if(con!=null){
  110. con.close();
  111. }
  112.  
  113. }
  114.  
  115. }

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

  1. java分层开发

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

  2. java web 整合开发王者归来学习总结

    第一章java web开发概述 胖客户端CS,瘦客户端BS(Browser) 网址请求---服务器处理响应-----返回结果-----浏览器显示 CGI可以动态生成页面,但是每个进程都要启动一个CGI ...

  3. 【JAVA EE企业级开发四步走完全攻略】

    本文是J2EE企业级开发四步走完全攻略索引,因内容比较广泛,涉及整个JAVA EE开发相关知识,这是一个长期的计划,单个发blog比较零散,所以整理此索引,决定以后每发一季JAVA EE blog后会 ...

  4. 第一章 Java Web应用开发技术

    Java Web应用开发是基于JavaEE(JavaEnterprise Edition)框架的,而JavaEE是建立在Java平台上的企业级应用解决方案.JavaEES框架提供的Web开发技术主要支 ...

  5. 在做java 的web开发,为什么要使用框架

    现在做项目都会使用框架,现在很常见的框架就是SSH(Struts+SpringMVC+spring+hibernate),SSM(Struts/springMVC+Spring+Hibernate), ...

  6. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Java Spring的特点和优点

    Spring 是另一个主流的 Java Web 开发框架,该框架是一个轻量级的应用框架,具有很高的凝聚力和吸引力. Spring 是分层的 Java SE/EE full-stack 轻量级开源框架, ...

  7. 俯瞰 Java 服务端开发

    原文首发于 github ,欢迎 star . Java 服务端开发是一个非常宽广的领域,要概括其全貌,即使是几本书也讲不完,该文将会提到许多的技术及工具,但不会深入去讲解,旨在以一个俯瞰的视角去探寻 ...

  8. 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...

  9. Java和WebSocket开发网页聊天室

    小编心语:咳咳咳,今天又是聊天室,到现在为止小编已经分享了不下两个了,这一次跟之前的又不大相同,这一次是网页聊天室,具体怎么着,还请各位看官往下看~ Java和WebSocket开发网页聊天室 一.项 ...

随机推荐

  1. C#导入Exel

    ; try { ]; string[] NoExPrentFile = new string[] { "xls", "xlsx" }; ] || fileTyp ...

  2. SolrCloud的官方配置方式

    前面写过生产过程中的SolrCloud集群配置,实际上官方给出的是免安装配置,启动时采用命令行参数的方式启动,这样相对简单,并且官方文档也给出了外部Zookeeper的配置,和前面说的基本一致,这个不 ...

  3. 6.nodejs权威指南--进程

    1. 进程 var net = require('net'); var cluster = require('cluster'); cluster.setupMaster({ exec:'child. ...

  4. App主界面Tab实现方法

    ViewPager + FragmentPagerAdapter 这里模仿下微信APP界面的实现 国际惯例,先看下效果图:   activity_main.xml 布局文件: <?xml ver ...

  5. Gson解析复杂的json数据

    最近在给公司做一个直播APK的项目,主要就是通过解析网络服务器上的json数据,然后将频道地址下载下来再调用Android的播放器进行播放,原先本来打算使用普通的json解析方法即JsonObject ...

  6. 在Win7下使用sphinx-build建立开源软件文档

    最近想看看odoo的使用文档,在线看不方便,而且还没有提供离线文档下载,由于是开源项目,此项目托管在Github上,于是就有了想通过Github把文档git下来,可是git下来的文档是.rst文件,无 ...

  7. 20145213 《Java程序设计》实验四 Android开发基础

    20145213 <Java程序设计>实验四 Android开发基础 说在前面的话 不同以往实验,对于这次实验具体内容我是比较茫然的.因为点我,打开实验四的链接居然能飘出一股熟悉的味道,这 ...

  8. [Android Pro] Android Fragment getActivity返回null解决

    overide FragmentActivity  onSaveInstanceState method like this. @Override public void onSaveInstance ...

  9. ubuntu下deb包的安装方法

    ubuntu下deb包的安装方法 简介 deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb dpkg 是Debian P ...

  10. python基础——访问限制

    python基础——访问限制 在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面Student类的定义来看,外部代码还 ...