当前位置: 首页 > news >正文

大兴安岭地网站seo什么网站有加工外发做的

大兴安岭地网站seo,什么网站有加工外发做的,怎么免费建立一个网站,网络设计专业究竟好不好就业目录 DAO设计模式 1.认识DAO 2.DAO各部分的详解 3.DAO设计模式流程 DAO设计模式 1.认识DAO DAO(Data Acess Object 数据库访问对象)的主要功能是操作数据库#xff0c;所以DAO在标准开发架构中数据数据层#xff0c;以下是标准开发的架构 客户层#xff1a;目前使用B/… 目录 DAO设计模式 1.认识DAO 2.DAO各部分的详解 3.DAO设计模式流程 DAO设计模式 1.认识DAO DAO(Data Acess Object 数据库访问对象)的主要功能是操作数据库所以DAO在标准开发架构中数据数据层以下是标准开发的架构 客户层目前使用B/S开发架构居多客户可以通过浏览器访问显示层使用Vue框架、 React框架、 JSP/Servlet等进行页面展示业务层负责将DAO层的操作进行组合形成一个完整的业务逻辑数据层提供原子性操作比如增删查改 2.DAO各部分的详解 DAO的设计流程包括六个部分如下 1.DataBaseConnection 设计一个专门负责打开连接数据库和关闭数据库操作的类 命名规则: xxx.dbc.DataBaseConnection 2.VO 设计VO(值对象),其主要由属性setter和getter组成与数据库中的字段进行对应。 命名规则xxx.vo.ttt ; 其中ttt要和数据库中的表的名字一致 3.DAO 定义一系列原子性操作比如增删查改和实现业务的接口 命名规则xxx.dao.I.xxx.DAO 4.Impl 设计DAO接口真正的实现类完成具体的操作但是不负责数据库的开关 命名规则xxx.dao.imp.xxxDAOImpI 5.Proxy Proxy代理类的实现主要将以上四个部分组合起来完成整个操作过程 命名规则xxx.dao.Proxy.xxx.Proxy 6.Factory Factory类主要用于获得DAO类的实例对象 命名规则xxx.factory.DAOFactory 3.DAO设计模式流程 通过一个案例讲解DAO设计模式的流程 现在需要实现一个能够注册和查询工作者的案例(JDBC与DAO结合) 1.首先需要实现数据库的创建与表单的创建 /* 删除数据库 */ DROP DATABASE IF EXISTS smile ; /* 创建数据库 */ CREATE DATABASE smile ; /* 使用数据库 */ USE smile ; /* 删除数据表 */ DROP TABLE IF EXISTS worker ; /* 创建数据表 */ CREATE TABLE worker(empno INT(4) PRIMARY KEY,ename VARCHAR(10),job VARCHAR(9),hiredate DATE,sal FLOAT(7,2) ) ; /* 插入测试数据 */ INSERT INTO worker(empno,ename,job,hiredate,sal) VALUES (7369,董鸣楠,销售,2003-10-09,1500.90) ; INSERT INTO worker(empno,ename,job,hiredate,sal) VALUES (8964,李祺,分析员,2003-10-01,3000) ; INSERT INTO worker(empno,ename,job,hiredate,sal) VALUES (7698,张惠,销售,2005-03-12,800) ; INSERT INTO worker(empno,ename,job,hiredate,sal) VALUES (7782,杨军,分析员,2005-01-12,2500) ; INSERT INTO worker(empno,ename,job,hiredate,sal) VALUES (7762,刘明,销售,2005-03-09,1000) ; INSERT INTO worker(empno,ename,job,hiredate,sal) VALUES (7839,王月,经理,2006-09-01,2500) ;2.定义VO类 package com.JavaWebDAO.vo; import java.util.Date ; //定义工人类 public class Worker { // 设置工人属性private int empno ;private String ename ;private String job ;private Date hiredate ;private float sal ; // 配置setter函数public void setEmpno(int empno){this.empno empno ;}public void setEname(String ename){this.ename ename ;}public void setJob(String job){this.job job ;}public void setHiredate(Date hiredate){this.hiredate hiredate ;}public void setSal(float sal){this.sal sal ;} // 配置getter函数public int getEmpno(){return this.empno ;}public String getEname(){return this.ename ;}public String getJob(){return this.job ;}public Date getHiredate(){return this.hiredate ;}public float getSal(){return this.sal ;} } 3.定义数据库连接类 package com.JavaWebDAO.db; import java.sql.Connection ; import java.sql.DriverManager ; public class DatabaseConnection { // 配置相关信息private static final String DBDRIVER com.mysql.jdbc.Driver ;private static final String DBURL jdbc:mysql://localhost:3306/smile ;private static final String DBUSER root ;private static final String DBPASSWORD 357703 ;private Connection conn ; // 连接函数public DatabaseConnection() throws Exception { // 加载类库Class.forName(DBDRIVER) ; // 建立连接this.conn DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;} // 返回连接对象public Connection getConnection(){return this.conn ;}// 断开连接函数public void close() throws Exception {if(this.conn ! null){try{this.conn.close() ;}catch(Exception e){throw e ;}}} } 4.新建DAO接口 package com.JavaWebDAO.dao; import java.util.* ; import com.JavaWebDAO.vo.Worker;public interface IWorkerDAO { // 业务需求--注册员工public boolean doCreate(Worker work) throws Exception ; // 业务需求--查询员工public ListWorker findAll(String keyWord) throws Exception ; // 业务需求--通过id查询员工public Worker findById(int empno) throws Exception ; }5.定义完DAO接口后就需要写好具体的实现类实现类分为两种。 一种是真实实现类一种是代理操作类。 真实实现类 package com.JavaWebDAO.dao.impI;import com.JavaWebDAO.dao.IWorkerDAO; import com.JavaWebDAO.vo.Worker; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List;//真实实现类实现IWorker中所有业务需求 public class WorkerDAOImpl implements IWorkerDAO {private Connection conn null ;private PreparedStatement pstmt null ; // 通过构造函数获取连接对象public WorkerDAOImpl(Connection conn){this.conn conn ;}// 实现注册员工功能public boolean doCreate(Worker work) throws Exception{boolean flag false ;String sql INSERT INTO worker(empno,ename,job,hiredate,sal) VALUES (?,?,?,?,?) ;this.pstmt this.conn.prepareStatement(sql) ;this.pstmt.setInt(1,work.getEmpno()) ;this.pstmt.setString(2,work.getEname()) ;this.pstmt.setString(3,work.getJob()) ;this.pstmt.setDate(4,new java.sql.Date(work.getHiredate().getTime())) ;this.pstmt.setFloat(5,work.getSal()) ;if(this.pstmt.executeUpdate() 0){flag true ;}this.pstmt.close() ;return flag ;} // 实现查询员工的功能public ListWorker findAll(String keyWord) throws Exception{ListWorker all new ArrayListWorker() ;String sql SELECT empno,ename,job,hiredate,sal FROM worker WHERE ename LIKE ? OR job LIKE ? ;this.pstmt this.conn.prepareStatement(sql) ;this.pstmt.setString(1,%keyWord%) ;this.pstmt.setString(2,%keyWord%) ;ResultSet rs this.pstmt.executeQuery() ;Worker work null ;while(rs.next()){work new Worker() ;work.setEmpno(rs.getInt(1)) ;work.setEname(((ResultSet) rs).getString(2)) ;work.setJob(rs.getString(3)) ;work.setHiredate(rs.getDate(4)) ;work.setSal(rs.getFloat(5)) ;all.add(work) ;}this.pstmt.close() ;return all ;} // 实现通过id查询员工的功能public Worker findById(int empno) throws Exception{Worker emp null ;String sql SELECT empno,ename,job,hiredate,sal FROM worker WHERE empno? ;this.pstmt this.conn.prepareStatement(sql) ;this.pstmt.setInt(1,empno) ;ResultSet rs this.pstmt.executeQuery() ;if(rs.next()){emp new Worker() ;emp.setEmpno(rs.getInt(1)) ;emp.setEname(rs.getString(2)) ;emp.setJob(rs.getString(3)) ;emp.setHiredate(rs.getDate(4)) ;emp.setSal(rs.getFloat(5)) ;}this.pstmt.close() ;return emp ;} }代理操作类 package com.JavaWebDAO.dao.proxy;import com.JavaWebDAO.dao.IWorkerDAO; import com.JavaWebDAO.dao.impI.WorkerDAOImpl; import com.JavaWebDAO.db.DatabaseConnection; import com.JavaWebDAO.vo.Worker;import java.util.List;//代理操作IWorkerDAo中的业务需求 public class WorkerDAOProxy implements IWorkerDAO {private DatabaseConnection db null ;private IWorkerDAO dao null ;// 代理建立连接数据库public WorkerDAOProxy() throws Exception {this.db new DatabaseConnection() ;this.dao new WorkerDAOImpl(this.db.getConnection()) ;} // 代理实现注册功能public boolean doCreate(Worker work) throws Exception{boolean flag false ;try{if(this.dao.findById(work.getEmpno()) null){flag this.dao.doCreate(work) ;}}catch(Exception e){throw e ;}finally{this.db.close() ;}return flag ;} // 代理实现查询用户功能public ListWorker findAll(String keyWord) throws Exception{ListWorker all null ;try{all this.dao.findAll(keyWord) ;}catch(Exception e){throw e ;}finally{this.db.close() ;}return all ;} // 代理通过id查询用户的功能public Worker findById(int empno) throws Exception {Worker emp null;try {emp this.dao.findById(empno);} catch (Exception e) {throw e;} finally {this.db.close();}return emp;} }代理类只是调用了真实类中的方法但是代理类可以让代码开发的结构更加清晰 6.定义工厂类 package com.JavaWebDAO.factory;import com.JavaWebDAO.dao.IWorkerDAO; import com.JavaWebDAO.dao.proxy.WorkerDAOProxy;public class DAOFactory { // 通过工厂获取代理类的实例public static IWorkerDAO getIWorkerDAOInstance() throws Exception{return new WorkerDAOProxy() ;} }设计完所有类和接口后为了保证定义后功能可用则需要做一个测试类来测试所有功能是否能够正常使用 package com.lzl.dao.test ; import com.lzl.factory.DAOFactory ; import com.lzl.vo.* ; public class TestdoCreate{public static void main(String args[]) throws Exception{Worker work null ;work new Worker() ;work.setEmpno(1000) ;work.setEname(SMILE) ;work.setJob(程序员 ) ;work.setHiredate(new java.util.Date()) ;work.setSal(10000) ;DAOFactory.getIWorkerDAOInstance().doCreate(work) ;}} package com.lzl.dao.test ; import java.util.* ; import com.lzl.factory.DAOFactory ; import com.lzl.vo.* ; public class TestfindAll{public static void main(String args[]) throws Exception{ListWorker all DAOFactory.getIWorkerDAOInstance().findAll() ;IteratorWorker iter all.iterator() ;while(iter.hasNext()){Worker work iter.next() ;System.out.println(work.getEmpno() 、 work.getEname() 、 work.getJob() 、work.getHiredate() 、 work.getSal()) ;}} } 整体项目结构 这样DAO层就开发完毕了
http://www.ho-use.cn/article/10813808.html

相关文章:

  • 浦江做网站怎么做虚拟币网站
  • 天河营销型网站建设有哪些做品牌特卖的网站
  • 网站建设公司的未来网站策划书预期风险
  • 网站优化具体做哪些事情优设网官网教程
  • 推荐系统网站开发建e网站
  • 广州市网站建设 骏域动力服装设计学校排名国内
  • 网站建设数据库系统北京seo
  • 建设网站详细流程图简单的wordpress主题
  • 怎么样搭建qq号网站织梦做的网站打开空白
  • 专门做酒店的网站昆明网站建设介绍
  • 自己做网站的优势国家建筑网站
  • 南京定制网站建设公司江西建设银行招聘网站
  • sql server网站建设好的深圳网站页面设计
  • 杭州哪些做网站公司好wordpress is tag
  • 网站开发一般用什么语言宜春网站建设哪家专业
  • 推广 高端网站建设layui 网站建设模板
  • ps做的网站怎么到网站上预览做网站一定要代码吗
  • 嵩县网站建设什么样的口罩才具有防疫功能
  • 百度站长网站规则改版房子信息查询网站入口
  • wordpress改地址错误广州市 优化推广
  • 微信公众号网站自己做导航条二级单位网站建设
  • 网站策划和网站制作自己做一个简介的网页
  • 温州哪里做网站比较好建设网上银行怎么开通
  • 手机自适应网站简述软件开发的一般流程
  • 多语言网站建设幻境新人做外贸哪个平台好做
  • 请人做网站合同服装外贸erp
  • 服务周到的微网站建设wordpress怎么修改语言
  • wordpress做采集站家庭办厂3一8万项目
  • 开发一套网站多少钱免费做网站的优缺点
  • 济南自助建站微信小程序商城开源源码