gpt4 book ai didi

mysql - 面向对象编程和数据库

转载 作者:可可西里 更新时间:2023-11-01 08:46:52 26 4
gpt4 key购买 nike

我正在学习面向对象编程。我的应用程序基于两个 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 语句,并在那里创建一个连接字符串,然后不要甚至使用这个类?我知道这是一个理论问题,但我很好奇什么更好。

最佳答案

抽象化持久层(数据库)总是是个好主意。所以,请继续上课!

我会推荐一些东西:

  • 只有在实现 IDisposable 时,使用 using 语句才有意义。否则;你的方法很好。
  • 不要在代码隐藏中执行直接的 SELECT 语句等。这些应该隐藏在持久性类的方法后面。

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

关于mysql - 面向对象编程和数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27026505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com