数据库访问层一

entity(实体类):

/**

*seralizable序列化

*

/

public class Mas implements Serializable{
 /**
  * 私有化属性
  */
 private static final long serialVersionUID = 1L;
 private int id;
 private String loginid;
 private String password;
 public Mas(){
  
 }
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 
 public String getLoginid() {
  return loginid;
 }
 public void setLoginid(String loginid) {
  this.loginid = loginid;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 
}

utils(帮助类)

public class BaseDao {
 public Connection getConnection(){
  ResultSet rs=null;
  PreparedStatement pst=null;
  Connection conn=null;
  try {
   Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
   String url = "jdbc:sqlserver://localhost:1433;databasename=epet";
   String uname = "sa";
   String pwd = "123456";
   conn = DriverManager.getConnection(url,uname,pwd);
  } catch (ClassNotFoundException ee) {
   ee.printStackTrace();
  }catch (SQLException e) {
   e.printStackTrace();
  }
  return conn;
 }

/*   * 修改,删除,增加   */

public void exectue(String sql,Object [] param){

ResultSet rs=null;

PreparedStatement pst=null;

Connection conn=null;

try {

conn=getConnection();

pst=conn.prepareStatement(sql);

for(int i=0;i<param.length;i++){

pst.setObject(i+1, param[i]);

}

int num=pst.executeUpdate();

} catch (Exception ee) {

ee.printStackTrace();

}

}

/*
  * 关闭数据库连接
  * param conn 数据库连接
  * param stmt Statement 对象
  * param rs 结果集
  *
  */
 public void close(ResultSet rs, PreparedStatement pst, Connection conn) {
  try{
   if(rs!=null){
    rs.close();
   }
   if(pst!=null){
    pst.close();
   }
   if(conn!=null){
    conn.close();
   }
  }catch(SQLException eee){
   eee.printStackTrace();
  }
 }

}

Dao层

/*
 * 接口
 */

public interface MasDao {
 /*
  * 登录
  * @param m 注入对象 :主要是id和密码
  * @return 主人对象
  */
 public Mas login(Mas m);
}

/*
 * 继承帮助类实现接口
 */
public class MasDaoImpl extends BaseDao implements MasDao { 
 public Mas login(Mas m) {
  PreparedStatement pst =null;
  ResultSet rs=null;
  Connection conn=getConnection();
  Mas ms=null;
  String sql="select * from mas where loginid=? and password=?";
  try{
   pst=conn.prepareStatement(sql);
   pst.setString(1, m.getLoginid());
   pst.setString(2, m.getPassword());
   rs=pst.executeQuery();
   while(rs.next()){
    ms=new Mas();
    ms.setId(rs.getInt("id"));
    ms.setLoginid(rs.getString("loginid"));
    ms.setPassword(rs.getString("password"));
   }
  }catch(SQLException e){
   e.printStackTrace();
  }finally{
   close(rs,pst,conn);
   
  }
  return m;
 }
  
}

biz层

/*
 * 接口
 */

public interface MasBiz {
 /*
  * 登陆
  */
 public Mas login(Mas m);
}

/*
 * 实现接口
 */

public class MasBizlmpl implements MasBiz{
 MasDao dao=new MasDaoImpl();
 //业务层:简单业务,一个sql
 public Mas login(Mas m){
  //访问层
  Mas mm=dao.login(m);
  return mm;
 }
}

Controller(控制层)<web>

public class MasController {
 //页面跳转,数据封装
 public Mas login(String  loginId ,String password){
  MasBiz mb = new MasBizlmpl();
  Mas m=new Mas();
  m.setLoginid(loginId);
  m.setPassword(password);
  Mas mm=mb.login(m);
  return mm;
 }

时间: 2024-10-09 19:54:02

数据库访问层一的相关文章

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1)框架搭建 前言:这篇博客我们继续来实现我的权限系列,这个博客一段时间也没有写了,重点是我在想还写不写,最终我决定还是写下去,因为我们是为了学习,当别人提出意见的时候,我们可以参考和采纳,但是我们不一定非要采纳,上几篇博客大家都说用CodeFirst来实现,是啊,现在基本很少有人用我的这种方法来实现了,都是用CodeF

Java 数据库访问层

最近项目中需要对mysql进行操作,数据库的知识早在本科毕业那会就忘光了,这几年开发都没接触到数据库的操作. 借这个机会重新学习,数据库访问层是对数据库操作的一个封装,屏蔽底层的数据操作细节,通过使用DAO对数据库进行增删改查操作. 本文将以项目中的一小部分为例,介绍如何编写数据库访问层: 1. 实体类对象 1 public class CheckInfo { 2 private Integer id; 3 private String userName; 4 private Timestamp

Zebra 教程:数据库访问层中间件

Zebra是点评内部使用的数据库访问层中间件,它具有以下的功能点: 配置集中管理,动态刷新支持读写分离.分库分表丰富的监控信息在CAT上展现其中的三个组件的功能分别是(腾云科技ty300.com): zebra-api : 最主要的访问层中间件(勤快学qkxue.net)zebra-ds-monitor-client:基于CAT的监控(可选)zebra-dao:基于MyBatis的异步化的DAO组件(可选)编译1. git clone https://github.com/dianping/ze

一个基于EntityFramework Core的简单数据库访问层,适用于轻量级数据库业务

这个访问层的代码实际上是园子里某个前辈的,本人只是觉得好使,记录了下来. 本访问层需要通过Nuget安装EntityFramework Core,不过个人认为EF 6同样可以使用. 搭配数据库,最好是Sql Server(微软支持,你懂的) 下面贴代码 先是IRepository.cs public interface IRepository:IDisposable { //获取一个表的IQuerable接口查询 IQueryable<T> All<T>() where T : c

数据库访问层

简易型: C# DBHelper Code using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace ADODoNETDemo { /// <summary> /// 针对SQL Server数据库操作的通用类 /// 作者:周公 /// 日期:20

ASP.NET MVC EF 02 数据库访问层的设计

1.接口(IBaseRepository(仓储))操作数据库(增删改查),代码如下: /// <summary> /// 基仓储实现的方法 /// </summary> /// <typeparam name="T"></typeparam> public interface IBaseRepository<T> where T : class,new() { //添加 T AddEntities(T entity); //修

打造独立数据库访问的中间服务

随着公司业务的不断变化,几年前的 A 项目和底层 DB_A 数据库华丽转身为核心业务服务和核心数据库. 想从  DB_A  数据库获取数据的 web 服务越来越多,项目之间的关系逐渐演变为下面这样: 很容易看出来按上图这样的发展趋势会存在很多问题(项目关系为个人抽象出来的简化版,实际情况比这要复杂的多). a. 当 webappA 运行过程中出现异常无法访问,webappB/ webappC .... 还能正常获取  DB_A 数据吗? b. 各种各样的提供给 webappB/webappC .

系统架构师-基础到企业应用架构-数据访问层

一.上章回顾 上篇我们简单讲述了服务层架构模式中的几种,并且讲解了服务层的作用及相关的设计规范,其实我们应该知道,在业务逻辑层中使用领域模型中使用服务层才 能发挥出最大的优势,如果说我们在业务逻辑层还是使用非领域模型的模式话,服务层的作用仅体现在解耦作用.其实在业务逻辑层采用领域模型时,我们前面说的持 久化透明的技术,其实我们可以通过服务层来做,我们在服务层中处理领域对象信息的持久化操作.当然本篇可能不会深入讨论持久化透明的具体实现,后面会单独开 篇来讲述,我们先来回顾下上篇讲解的内容:  上图

step by step 之餐饮管理系统六(数据库访问模块)

距上次写的博客已经好几个月,一方面公司里面有很多的东西要学,平时的时候又要写代码,所以没有及时更新,不过现在还好,已经成型了,现在把之前的东西贴出来,先看一下现在做的几个界面吧.第一个界面是用颜色用区分台状态的,后来感觉这样没有图片好,于是用第二个界面 改进后的界面 系统登录界面. 上面的截图主要是前一段时间写的台桌界面,回到数据库访问模块吧. 数据库访问模块在网上的资源也非常的多,所以我也不想讲太多. 首先定义DataAccess层的结构,用不同的文件夹区分它们,核心的类放在DBCore文件夹