|
สำหรับบทความชุดนี้เป็นการเชื่อมต่อฐานข้อมูล MySQL ทั้งแบบ Local/Remote ผ่านทาง JDBC เป็นการติดต่อโดยตรงเข้าสู่ฐานข้อมูลครับผม ...
ดาวน์โหลด B4A เพื่อติดตั้งใช้งานฟรี ...
ดาวน์โหลดโค้ดต้นฉบับสำหรับบทความชุดนี้ ...
ไฟล์ Libraries จะอยู่ใน Zip File เมื่อแตกออกมาให้คัดลอกไฟล์ทั้งหมดไปเก็บไว้ที่ C:\Program Files (x86)\Anywhere Software\Basic4android\Libraries ...
ไฟล์ Libraries ที่จำเป็นต้องใช้งาน ...
ใน phpMyAdmin สำหรับการ Import ไฟล์ SQL ตัวอย่างเข้ามา ...
ตารางข้อมูลตัวอย่าง ...
มาดูโค้ดกันเถอะ ... Starter.bas
- #Region Service Attributes
- #StartAtBoot: False
- #ExcludeFromLibrary: True
- #End Region
- Sub Process_Globals
- 'These global variables will be declared once when the application starts.
- 'These variables can be accessed from all modules.
- '// Remote MySQL Server
- Public mysql As JdbcSQL
- Public driver As String = "com.mysql.jdbc.Driver"
- '// Link to Remote MySQL/Table Name
- Public jdbcUrl As String = "jdbc:mysql://www.remotemysql.com/PgseQEAkdl?useSSL=false"
- Public Username As String = "USERNAME"
- Public Password As String = "PASSWORD"
- '// Localhost
- 'Private jdbcUrl As String = "jdbc:mysql://192.168.1.11:3306/contact"
- 'Private Username As String = "USERNAME"
- 'Private Password As String = "PASSWORD"
- End Sub
- Sub Connect As ResumableSub
- mysql.InitializeAsync("mysql", driver, jdbcUrl, Username, Password)
- Wait For MySQL_Ready (Success As Boolean)
- If Success = False Then
- Log("Check unfiltered logs for JDBC errors.")
- End If
- Return Success
- End Sub
- Sub CloseConnection
- mysql.Close
- End Sub
- Sub DisableStrictMode
- Dim jo As JavaObject
- jo.InitializeStatic("android.os.Build.VERSION")
- If jo.GetField("SDK_INT") > 9 Then
- Dim policy As JavaObject
- policy = policy.InitializeNewInstance("android.os.StrictMode.ThreadPolicy.Builder", Null)
- policy = policy.RunMethodJO("permitAll", Null).RunMethodJO("build", Null)
- Dim sm As JavaObject
- sm.InitializeStatic("android.os.StrictMode").RunMethod("setThreadPolicy", Array(policy))
- End If
- End Sub
- Sub Service_Create
- 'This is the program entry point.
- 'This is a good place to load resources that are not specific to a single activity.
- 'need to disable it as reading from large JdbcResultSet will cause network requests to be sent on the main thread.
- DisableStrictMode
- End Sub
- Sub Service_Start (StartingIntent As Intent)
- Service.StopAutomaticForeground 'Starter service can start in the foreground state in some edge cases.
- End Sub
- Sub Service_TaskRemoved
- 'This event will be raised when the user removes the app from the recent apps list.
- End Sub
- 'Return true to allow the OS default exceptions handler to handle the uncaught exception.
- Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
- Return True
- End Sub
- Sub Service_Destroy
- End Sub
คัดลอกไปที่คลิปบอร์ด
โค้ดในส่วนของ Main ...
- #Region Project Attributes
- #ApplicationLabel: Connect Remote MySQL
- #VersionCode: 1
- #VersionName:
- 'SupportedOrientations possible values: unspecified, landscape or portrait.
- #SupportedOrientations: unspecified
- #CanInstallToExternalStorage: False
- #End Region
- #Region Activity Attributes
- #FullScreen: False
- #IncludeTitle: True
- 'MySQL Connector/J Driver
- #AdditionalJar: mysql-connector-java-5.1.47-bin.jar
- '#AdditionalJar: mysql-connector-java-5.1.34-bin
- '#AdditionalJar: mysql-connector-java-5.1.49-bin.jar
- #BridgeLogger: true
- #End Region
- '// https://www.b4x.com/android/help/jdbcsql.html
- Sub Process_Globals
- 'These global variables will be declared once when the application starts.
- 'These variables can be accessed from all modules.
- End Sub
- Sub Globals
- 'These global variables will be redeclared each time the activity is created.
- 'These variables can only be accessed from this module.
- Private Kanit As CustomFonts
- Private ListView1 As ListView
- Private ProgressBar1 As ProgressBar
- End Sub
- Sub Activity_Create(FirstTime As Boolean)
- Activity.LoadLayout("main")
- Activity.Title="Connect Remote MySQL [JDBC]"
- '// Set Own Font.
- Kanit.Initialize("Kanit-Regular.ttf")
- Kanit.SetCustomFontsToAllViews(Activity)
- '// Initialized.
- ProgressBar1.Visible = True
- Wait For (Starter.Connect) Complete (Success As Boolean)
- 'Log(Success)
- If Success Then
- Dim jsql As JdbcResultSet
- Starter.mysql.Initialize2(Starter.driver, Starter.jdbcUrl, Starter.Username, Starter.Password)
- '/ Localhost Query
- '/jsql=Starter.mysql.ExecQuery("SELECT ContactPK, ContactID, FullName FROM contact.tblcontact ")
- jsql = Starter.mysql.ExecQuery("SELECT ContactPK, ContactID, FullName FROM tblcontact ORDER BY ContactID")
- Do While jsql.NextRow
- 'Log(jsql.GetString("ContactID"))
- ListView1.AddTwoLines2(jsql.GetString("ContactID"), jsql.GetString("Fullname"), jsql.GetString("ContactPK"))
- Loop
- Starter.CloseConnection
- End If
- ProgressBar1.Visible = False
- End Sub
-
- Sub Activity_Resume
- End Sub
- Sub Activity_Pause (UserClosed As Boolean)
- End Sub
คัดลอกไปที่คลิปบอร์ด
|
|