三层之D层数据库操作

前提:

三层中我们已经知道D层主要的作用是针对数据库,进行基本的操作(数据连接和增删该查功能)

1、基本的sql语句

查:SELECT 字段名列表 FROM 数据表名  where"条件"

增 INSERT INTO 表名(字段名1,字段名2..)VALUES("表达式1","表达式2")

该 UPDATE 表名 SET 字段名1 ="表达式1",字段名2 ="表达式2".... WHERE 字段名n ="表达式n"

删:DELETE FORM 表名 where "条件"

例子:

Select UserName ,Level from User_Table where UserID = "1"

Insert into User_Table(UserName,PassWord) values("liangliang","123abc")

Update User_Table set UserName= "liang",PassWord = "123" Where Level = "管理员" //如果没有where将对表中所有字段进行修改。

Delect from User_Table where UserName= "feng"

2 、基本的功能

<span style="font-size:18px;">Imports System.Data   '添加相关引用
Imports System.Data.SqlClient
Imports System.Reflection
Imports System.Configuration

Public Class SqlserverUser
      '查询    通过输入的用户名和密码作为参数查看User_Table表中是否存在该用户。
    Public Function SelectUserByUserName(ByVal user As Model.User) As Model.User 
        Dim cnStr As String = "server = liangliangPC;database=ComChargeSys;user id = sa;password=123456;"
        Dim cn As SqlConnection = New SqlConnection(cnStr)

        Dim sql As String = "select * from User_Table where [email protected] and Password = @Password"
        Dim cmd As SqlCommand = New SqlCommand(sql, cn)
        cmd.Parameters.Add(New SqlParameter("@UserName", user.UserName))
        cmd.Parameters.Add(New SqlParameter("@Password ", user.PassWord))

        cn.Open()
        Dim reader As SqlDataReader = cmd.ExecuteReader()
        Dim Duser As Model.User = New Model.User

        While reader.Read()        
            Duser.UserName = Trim(reader.GetString(reader.GetOrdinal("UserName")))
            Duser.PassWord = Trim(reader.GetString(reader.GetOrdinal("PassWord")))
            Duser.UserID = Trim(reader.GetString(reader.GetOrdinal("UserID")))
            Duser.Level = Trim(reader.GetString(reader.GetOrdinal("Level")))
            Duser.Head = Trim(reader.GetString(reader.GetOrdinal("Head")))
        End While
        Return Duser
    End Function
    
    '添加   新用户到数据库User_Table表中
    Public Sub AddUser(ByVal user As Model.User)
        Dim conn As String = ConfigurationManager.AppSettings("sqlconnect")   '从配置文件中获取连接字符串
        Dim cn As SqlConnection = New SqlConnection(conn)
        Dim sql As String = "insert into User_Table(UserName,PassWord,UserID,Level,Head)values(@UserName,@PassWord,@UserID,@Level,@Head)"
        Dim cmd As SqlCommand = New SqlCommand(sql, cn)

        cmd.Parameters.Add(New SqlParameter("@UserName", user.UserName))
        cmd.Parameters.Add(New SqlParameter("@PassWord", user.PassWord))
        cmd.Parameters.Add(New SqlParameter("@UserID", user.UserID))
        cmd.Parameters.Add(New SqlParameter("@Level", user.Level))
        cmd.Parameters.Add(New SqlParameter("@Head", user.Head))
        cn.Open()
        cmd.ExecuteNonQuery()
        MsgBox("用户注册成功!")

    End Sub   '也可以使用function过程返回一个boolean值,在B层根据boolean值的true orflase来做出相应的判断
  
    '修改   User_Table表中的用户
    Public Sub UpdateUser(ByVal user As Model.User)
         ... '内容与AddUser()中基本相同,只是更改下对应的sql语句,添加对应的参数,即可
    End Sub
    '删除   User_Table表中的用户
    Public Sub DeleteUser(ByVal user As Model.User)
         ... '内容与AddUser()中基本相同,只是更改下对应的sql语句,添加对应的参数,即可
    End Sub

End Class</span>

3总结:

SqlserverUser类中的四个方法实现对User_Table表的基本操作(增删改查)。最后的两个方法Update和Delect在形式上和Add的内容一样,只是修改下对应的sql语句和参数即可,其他的内容可以通过复制Add方法中的内容实现,

这只是对一个表的操作中就存在重复的现象,当我们要对别的表进行操作的时候重复的内容将会更多。

 编程的一个基本原则就是避免重复,我们要的不是复制而是复用,当采用复制的功能时候第一件要想到的就是代码的重构。

时间: 2024-10-24 18:27:46

三层之D层数据库操作的相关文章

DJango周总结二:模型层,单表,多表操作,连表操作,数据库操作,事务

django周复习二 1,模型层:  1单表操作:   13个必会操作总结    返回QuerySet对象的方法有    all()    filter()    exclude()    order_by()    reverse()    distinct()    特殊的QuerySet    values()       返回一个可迭代的字典序列    values_list() 返回一个可迭代的元祖序列    返回具体对象的    get()    first()    last() 

ASP.NET三层架构介绍及数据库配置方法

一.三层架构(高内聚,低耦合) 1.Model层:中的实体类是与数据库表严格对应的,并定义的public成员属性. 2.DAL数据访问层:实现对数据库中数据的“增,删,改,查”操作. 4.Web表现层:Web页面功能3.BLL业务逻辑层:针对具体问题的操作,即对DAL层的操作 需要注意的是: DAL层只可以访问或调用Model层: BLL层只可以访问或调用Model和DAL层: Web层只可以访问或调用Model和BLL层. 二.数据库配置方法 改web.config中的连接字符串: (1) D

数据库——基础(数据库操作,表格操作)——增加高级查询

笔记 LAMP:Linx(操作系统) A(阿帕奇)——网页的应用程序 M(Mysql):体积小,应用简单 P(PHP) 第一步:搭建网页环境——A\M\P WAMP:用WAMP搭建环境 DW:更好的显示 数据库的基本操作: 数据库——表结构——字段(列) 每一行数据成为一条数据(记录) 特点:关系型数据库,有严格的规范 1.必须有主键:能够唯一标识一条数据的字段 2 T-SQL:通用的数据库操作语句 自增长列code(主键列) ;连接键表 最后一个字段不加 ,#注释 创建表:create tab

Java Web的数据库操作(一)

一.JDBC技术 1.JDBC简介 JDBC是Java程序与数据库系统通信的标准API,它定义在JDK的API中,通过JDBC技术,Java程序可以非常方便地与各种数据库交互,JDBC在Java程序与数据库系统之间假期了一座桥梁. JDBC由一组用Java语言编写的类和接口组成,它对数据库的操作提供了基本方法,但由于数据库种类跟多且多有不同,所以对数据库的细节操作由数据库厂商进行实现,且厂商需要提供数据库的驱动程序,下图为Java程序与数据库相交互的示意图: 2.JDBC连接数据库的过程 l 

SQLite数据库操作

安卓中创建数据库的步骤: 1.写一个类MyOpenHelper继承SQLiteOpenHelper类 2.覆写其中的OnCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 3.创建数据库: MyOpenHelper helper = new MyOpenHelper(this); //创建数据库 需要调用 getReadableDatabase 或 getWritableDa

Java+MyEclipse+Tomcat (四)Servlet提交表单和数据库操作

前面三篇文章讲述了如何配置MyEclipse和Tomcat开发JSP网站.如何配置Servlet简单实现表单提交.如何配置MySQL实现JSP数据库查询. 这篇文章主要讲述Servlet表单的提交.Java中实现数据库的查询操作和自己遇到的瓶颈及理解.Java Web基础性文章,希望对大家有所帮助~ Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门 Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交 Java+MyEclipse+

Django模型-数据库操作

前言 前边记录的URLconf和Django模板全都是介绍页面展示的东西,也就是表现层的内容.由于Python先天具备简单而强大的数据库查询执行方法,Django 非常适合开发数据库驱动网站. 这篇开始,进入到了Django模型,也就是数据库操作. 自带 Sqlite3 数据库查询方式 为了简单,使用Python自带的Sqlite3数据库进行实例说明. 先看一个传统的数据库操作示例: 1 from django.shortcuts import render 2 import sqlite3 3

跟我学Android之十三 SQLite数据库操作

本章内容 第1节  SQLite数据库概述 第2节  SQLite建库建表 第3节 管理数据库连接 第4节  操作数据库数据 第5节  数据绑定 本章目标 掌握SQLite数据的基本特点与工具使用. 熟练掌握SQLite建库建表的方法. 熟练掌握连接SQLite数据库的方法. 熟悉SQLite数据库的升级与建立方法. 掌握通过数据绑定完成数据显示的方法. SQLite数据库简介 SQLite是一种非常流行的嵌入式数据库,是由C语言编写而成,是一款轻型关系型数据库,支持SQL,支持多种操作系统,完

使用单态(Singleton)模式获取数据库操作对象

开始先介绍下单态模式,也就是单例模式,我们主要区别于Spring中的原型模式,单例模式就是保证一个类只存在一个实例,就是只初始化一次,第一次完成初始化以后,重复使用的时候,返回的都是这个实例,而且不是重新去new一个新的,这就在DAO层中比较常见,我们定义一个工厂类(seesionFactory),不用每次都去New个用,好处在于节省了内存和时间,但是如果你对象里面的属性值已经改变的话,就不适合使用单例了,只能重新New个,我们一般的用法Spring的Action层就是使用这个原型,可以创建多次