前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >B4A 使用JDBC连接MySQL数据库

B4A 使用JDBC连接MySQL数据库

作者头像
一线编程
发布2023-03-02 13:17:06
1.4K0
发布2023-03-02 13:17:06
举报
文章被收录于专栏:办公魔盒办公魔盒

类库引用

  • • jdbcSQL.jar
  • • jdbcSQL.xml
  • • mysql-connector-java-5.1.49-bin.jar

关键点注意

需要把 mysql-connector-java-5.1.49-bin.jar 驱动文件,放到 B4A 安装目录下的 Libraries 内部类库文件夹下

码代码

代码语言:javascript
复制
#Region  Project Attributes 
  #ApplicationLabel: JDBC连接mysql
  #VersionCode: 1
  #VersionName: 
  #SupportedOrientations: portrait
  #CanInstallToExternalStorage: False

#End Region

#Region  Activity Attributes 
  #FullScreen: False
  #IncludeTitle: True
  
#End Region

#AdditionalJar: mysql-connector-java-5.1.49-bin

Sub Process_Globals
  Private MysqlJdbc As JdbcSQL
End Sub

Sub Globals
  Private tf As Boolean=False
  

  Private WebView1 As WebView
  Private Button1 As Button
  Private Button2 As Button

End Sub

Sub Activity_Create(FirstTime As Boolean)
  Activity.LoadLayout("Layout")
  'DisableStrictMode
  ''-------
  
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub Button1_Click
  Dim driver As String = "com.mysql.jdbc.Driver"
  Dim jdbcUrl As String = "jdbc:mysql://42.193.251.120:3306/db_student"
  Dim Username As String = "student"
  Dim Password As String = "student"
  MysqlJdbc.InitializeAsync("EventMysql", driver, jdbcUrl, Username, Password)
  Wait For EventMysql_Ready (Success As Boolean)
  If Success = False Then
    ToastMessageShow("数据库连接失败",False)
    Button1.TextColor=Colors.Red
  Else
    ToastMessageShow("数据库连接成功",False)
    tf=True
    Button1.TextColor=Colors.Green
  End If
End Sub


Private Sub Button2_Click
  If tf Then
    Dim SenderFilter As Object = MysqlJdbc.ExecQueryAsync("SQL", "SELECT `学生ID`,`姓名`,`语文`,`数学`,`英语`,`总成绩` FROM v_allscore;", Null)
    Wait For (SenderFilter) SQL_QueryComplete (Success As Boolean, rs As JdbcResultSet)
    If Success Then
      
      Dim htmltd As StringBuilder
      htmltd.Initialize
      
      Do While rs.NextRow
        htmltd.Append($"<tr>"$)
        htmltd.Append($"<td>${rs.GetString("学生ID")}</td>"$)
        htmltd.Append($"<td>${rs.GetString("姓名")}</td>"$)
        htmltd.Append($"<td>${rs.GetString("语文")}</td>"$)
        htmltd.Append($"<td>${rs.GetString("数学")}</td>"$)
        htmltd.Append($"<td>${rs.GetString("英语")}</td>"$)
        htmltd.Append($"<td>${rs.GetString("总成绩")}</td>"$)
        htmltd.Append($"<td><a href="${rs.GetString("学生ID")}">明细</a></td>"$)
        htmltd.Append($"</tr>"$)
      Loop
      
      WebView1.LoadHtml(htmls(htmltd.ToString))
      
      rs.Close
    Else
      Log(LastException)
    End If
  Else
    ToastMessageShow("未连接数据库",False)
  End If
  
End Sub


Private Sub htmls(td As String) As String
  Dim html As String=$"
  <html>
    <head>
      <style>
        table{
            font-size:0.8rem;
            width:100%;
            text-align:center;
            border-collapse:collapse;
            border-spacing:0;
            border-left:1px solid #888;
            border-top:1px solid #888;
            background:#efefef;
          }
        th,td{
            border-right:1px solid #888;
            border-bottom:1px solid #888;
          }
        th{
            font-weight:bold;
            background:#ccc;
          }
        a{
            text-decoration: none;
            color: green;
          }
      </style>
    </head>
    <body>
      <table>
        <tr>
          <th>学生ID</th>
          <th>姓名</th>
        <th>语文</th>
        <th>数学</th>
        <th>英语</th>
        <th>总成绩</th>
        <th>明细</th>
        </tr>
       ${td}
      </table>
    </body>
  </html>
"$
Return html
End Sub

Private Sub WebView1_OverrideUrl (Url As String) As Boolean
  Dim res As String=Url.Replace("file:///","")
  'ToastMessageShow(res,False)
  Seltss(res)
  Return True
End Sub



Private Sub Seltss(sid As Int)
  If tf Then
    Dim SenderFilter As Object = MysqlJdbc.ExecQueryAsync("SQL", $"SELECT `学生ID`,`学生名`,`生日`,`性别`,`任课教师`,`科目`,`成绩` FROM v_tsscore WHERE `学生ID` = ${sid} GROUP BY `科目`;"$, Null)
    Wait For (SenderFilter) SQL_QueryComplete (Success As Boolean, rs As JdbcResultSet)
    If Success Then
      
      Dim ressb As StringBuilder
      ressb.Initialize
      
      Dim i As Int=1,sumcj As Double
      Do While rs.NextRow
        If i=1 Then
          ressb.Append($"ID:${rs.GetString("学生ID")}${CRLF}"$)
          ressb.Append($"姓名:${rs.GetString("学生名")}${CRLF}"$)
          ressb.Append($"生日:${rs.GetString("生日")}${CRLF}"$)
          ressb.Append($"性别:${rs.GetString("性别")}${CRLF}"$)
        End If
        
        If rs.GetString("科目")="语文" Then  
          ressb.Append($"语文:${rs.GetString("成绩")}${CRLF}"$)
          sumcj=sumcj+rs.GetString("成绩")
        End If
        
        If rs.GetString("科目")="数学" Then
          ressb.Append($"数学:${rs.GetString("成绩")}${CRLF}"$)
          sumcj=sumcj+rs.GetString("成绩")
        End If

        If rs.GetString("科目")="英语" Then
          ressb.Append($"英语:${rs.GetString("成绩")}${CRLF}"$)
          sumcj=sumcj+rs.GetString("成绩")
        End If
        
        
        i=i+1
      Loop
      
      ressb.Append($"总成绩:${sumcj}"$)
      
      rs.Close
      
      MsgboxAsync(ressb.ToString,"明细")
    Else
      Log(LastException)
    End If
  Else
    ToastMessageShow("未连接数据库",False)
  End If
  
End Sub

源码下载

代码语言:javascript
复制
链接:https://pan.baidu.com/s/1dSACc_F7nVbZK8H1cUgtfg?pwd=goh3 
提取码:goh3 
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 办公魔盒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关键点注意
  • 码代码
  • 源码下载
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档