面向对象的编程和数据库

时间:2014-11-19 20:37:27

标签: mysql vb.net oop

我正在学习面向对象的编程。我的应用程序基于两个MySQL数据库。所以我得到了一些记录,经常将一些数据插入我的数据库。

有一个名为MySQL的课程是否正确?这是一个非常简单的类,只有两种方法 - Connect()Disconnect()。该课程如下所示:

Imports MySql.Data.MySqlClient

Public Class MySQL 
    Private csJablotron As String = My.Settings.csJablotron
    Private csBCS As String = My.Settings.csBCS
    Private _connection As MySqlConnection

    Public ReadOnly Property Connection() As MySqlConnection
        Get
            Return _connection 
        End Get
    End Property


    Public Sub Connect(shop As String)

        Select Case shop
            Case "jablotron"
                _connection = New MySqlConnection(csJablotron)
            Case "bcs"
                _connection = New MySqlConnection(csBCS)
            Case Else
                MessageBox.Show("There is no shop with this name.")
                Exit Sub
        End Select

        Try
            _connection .Open()
        Catch ex As MySqlException
            MessageBox.Show(ex.Message)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub


    Public Sub Disconnect()
        Try
            _connection .Dispose()
        Catch ex As MySqlException
            MessageBox.Show(ex.Message)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
End Class

然后在我的主程序中,当我需要使用我的数据库时,我只是这样做:

Try
    mySql.Connect("bcs")    'mySql is an object of MySQL class
    ... 
    'here I select some records and do something with them...
Catch
    MessageBox.Show("Error")
Finally
    mySql.Disconnect()
End Try

面向对象编程是否正确?或者更好的是,当我需要数据库连接时,总是使用using语句,并在那里创建连接字符串,甚至不用这个班?我知道这是一个理论问题,但我很好奇什么是更好的。

1 个答案:

答案 0 :(得分:1)

抽象你的持久层(数据库)总是 一个好主意。所以,请保持你的课程!

我会推荐一些东西:

  • 如果您实施using,则仅使用IDisposable语句才有意义。除此以外;你的方法很好。
  • 不要在代码隐藏中执行直接的SELECT语句等。这些应该隐藏在持久化类中的方法后面。

否则;你走在正确的轨道上。