热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

一次数据访问层的改进之路-mysql教程

随着平民网络时代的到来,微型数据库必然发挥它独到的作用,Access就是一个不错的选择!今个,我也用了下Access数据库,麻雀虽小,名堂多啊!查询,永远是神一样的问题,不停的探索,无止境的接近极限,很明显,如何用最少的代码写出最好的查询?对,问题是:如何

随着平民网络时 代的到来,微型 数据 库必然发挥它独到的作用,Access就是一个不错的选择! 今个,我也用了下Access 数据 库,麻雀虽小,名堂多啊! 查询,永远是神一样的问题,不停的探索,无止境的接近极限,很明显,如何用最少的代码写出最好的查询? 对,问题是: 如何

  随着平民网络时 代的到来,微型数据库必然发挥它独到的作用,Access就是一个不错的选择!

  今个,我也用了下Access数据库,麻雀虽小,名堂多啊!

  查询,永远是神一样的问题,不停的探索,无止境的接近极限,很明显,如何用最少的代码写出最好的查询?

  对,问题是:

  如何用最少的代码写出最好的查询?

  我的"最好"的定义是:代码最美,效率最合适(能快就快,不能快够用就行),开发速度最快.

  这里,以用户登录为例子,先生成相应的实体类(UserLoginInfo.cs):

  UserLoginInfo.cs

  下面我们一起来玩数据查询的升级游戏:

  具体问题:查询出userPass为“123456”这种下三滥的密码的用户

  1.最原始查询

  GetList(string userPass)

  //中间掉了一句话

  foreach(OleDbParameter para in paras){

  cmd.Parameters.Add(para);

  }

  总结:在这个阶段,最恶心的就是

  1.一大堆Connection,Command的操作

  2.读取reader赋值给list的UserLoginInfo的过程,每个字段,索引的对起来,心烦!

  2.对Connection,Command的封装。

  就是SqlHelper那样的,自己随便搞了个。

  ACECommonHelper

  大概的思想,就是这样,调用代码,我想大家也能想象的到,代码参考下一个步骤,可重用性大了。

  3.改进reader填充到list,自动读取。

  根据反射,读取数据库中的字段,自动给UserLoginInfo相应的字段赋值。

  说明:由于是代码生成,数据库的字段基本上和生成类的属性一致。

  从网上下了个类:

  ACEReaderToMode.cs

  改进后的查询方法:

  GetList(string userPass)

  public List GetList(string userPass)

  {

  List list = null;

  List paras = new List();

  OleDbParameter para = new OleDbParameter("@userPass", OleDbType.LongVarWChar);

  para.Value = userPass;

  paras.Add(para);

  using (OleDbConnection cOnnection= new OleDbConnection(connectionString))

  {

  OleDbDataReader reader = AccessHelper.ACECommonHelper.ExcuteReader(

  "select * from User_login where ",

  conn,

  paras.ToArray());

  list = AccessHelper.ACEReaderToModel.ReaderToList(reader);

  reader.Close();

  conn.Close();

  }

  return list;

  }

[1] [2] 下一页

【责编:coco】

推荐阅读
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 如何在文本中运行Java程序
    本文介绍了在文本中运行Java程序的步骤,包括创建文本文档、修改后缀、打开DOS命令窗口、编译和运行程序。通过这些步骤,可以在文本中成功运行Java程序并输出结果。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • React项目中运用React技巧解决实际问题的总结
    本文总结了在React项目中如何运用React技巧解决一些实际问题,包括取消请求和页面卸载的关联,利用useEffect和AbortController等技术实现请求的取消。文章中的代码是简化后的例子,但思想是相通的。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • 本文介绍了使用SSH免密登录的步骤,包括生成公私钥、传递公钥给被登录机、修改文件权限的操作。同时提醒用户注意私钥的传递方式,建议使用U盘等离线方式传递。 ... [详细]
  • 原理:dismiss再弹出,把dialog设为全局对象。if(dialog!null&&dialog.isShowing()&&!(Activity.)isFinishing()) ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文详细介绍了在Centos7上部署安装zabbix5.0的步骤和注意事项,包括准备工作、获取所需的yum源、关闭防火墙和SELINUX等。提供了一步一步的操作指南,帮助读者顺利完成安装过程。 ... [详细]
  • GSIOpenSSH PAM_USER 安全绕过漏洞
    漏洞名称:GSI-OpenSSHPAM_USER安全绕过漏洞CNNVD编号:CNNVD-201304-097发布时间:2013-04-09 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
author-avatar
Ai剧_本
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有