使用JDBC的Gluon Sample Project在iOS设备上不起作用 [英] Gluon Sample Project with JDBC doesn't work on iOS Device
问题描述
我有使用Gluon + JDBC的简单代码。
我可以在Android设备上连接此代码,但不能在Ipad上连接。
i have simple code with Gluon + JDBC. I can connect this code on Android Device but not on Ipad.
my build.gradle;
my build.gradle;
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.0.6'
}
}
apply plugin: 'org.javafxports.jfxmobile'
repositories {
jcenter()
}
dependencies {
compile 'mysql:mysql-connector-java:5.0.2'
iosRuntime 'mysql:mysql-connector-java:5.0.2'
}
mainClassName = 'com.mtt8.version15'
jfxmobile {
android {
manifest = 'src/android/AndroidManifest.xml'
packagingOptions {
exclude 'META-INF/INDEX.LIST'
}
ios {
infoPList = file('src/ios/Default-Info.plist')
forceLinkClasses = ['com.mtt8.**.*', 'com.mysql.**.*']
}
}
}
这里是JavaCode:
and here is JavaCode:
private static final String serverIP="192.168.3.188";
private static final String DB_DRIVER = "com.mysql.jdbc.Driver";
private static final String DB_CONNECTION = "jdbc:mysql://192.168.3.188:3306/kasse_sql?useUnicode=true&characterEncoding=UTF-8";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "MYPASSWORD";
public static Connection connection = null;
public static Statement statement = null;
public static String SQL = null;
public static PreparedStatement pst = null;
public static Connection getDBConnection(){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
//connection = DriverManager.getConnection(DB_CONNECTION, DB_USER, DB_PASSWORD);
connection = DriverManager.getConnection("jdbc:mysql://192.168.3.188:3306/kasse_sql?user=root&password=MYPASSWORD&useUnicode=true&characterEncoding=UTF-8");
msg.setText("Connection is OK");
return connection;
} catch (SQLException e) {
e.printStackTrace();
msg.setText("Dont Connection");
}
return connection;
}
正如我所说,此代码与Android配合使用但不在我的Ipad上。
As i say, this code working with Android but not on my Ipad.
在 ./ gradlew launchIOSDevice
java.sql.SQLException: Unsupported character encoding 'Cp1252'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.Buffer.readString(Buffer.java:430)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2823)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3269)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1182)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2644)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:179)
at java.sql.DriverManager.getConnection(DriverManager.java:144)
at com.mtt8.version15.getDBConnection(version15.java:58)
at com.mtt8.version15.start(version15.java:32)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.LauncherImpl$$Lambda$9.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl$$Lambda$7.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at com.sun.javafx.application.PlatformImpl$$Lambda$19.run(Unknown Source)
at java.security.AccessController.doPrivileged(AccessController.java:52)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.javafx.application.PlatformImpl$$Lambda$6.run(Unknown Source)
at org.robovm.apple.uikit.UIApplication.main(Native Method)
at org.robovm.apple.uikit.UIApplication.main(UIApplication.java:384)
at org.javafxports.jfxmobile.ios.BasicLauncher.main(BasicLauncher.java:115)
IOSWindowSystemInterface : setSwapInterval unimp
setSwapInterval(1)
ES2ResourceFactory: Prism - createStockShader: FillPgram_Color.frag
ES2ResourceFactory: Prism - createStockShader: Texture_Color.frag
ES2ResourceFactory: Prism - createStockShader: Solid_TextureRGB.frag
IOSWindowSystemInterface : setSwapInterval unimp
setSwapInterval(0)
我尝试过使用不同的连接字符串,但结果是一样的。
i have tried with diffently connection strings but result is same.
任何人都可以说我为什么我的代码不在Ipad上工作?
Can anybody please say me why my code dont working on Ipad?
谢谢
erkan kaplan
thanks erkan kaplan
推荐答案
似乎连接器中使用的编码发生了变化。
It seems there's a change in the encoding used in the connector.
这是最新的版本在iOS上为我提供ks:
This is the latest version that works for me on iOS:
dependencies {
compile 'mysql:mysql-connector-java:3.1.12'
}
对于较新版本(3.1.13+),我发现同样的例外你请参阅:
For newer versions (3.1.13+), I find the same exception you see:
java.sql.SQLException: Unsupported character encoding 'Cp1252'.
at com.mysql.jdbc.StringUtils.getBytes(StringUtils.java)
最后,您的 build.gradle
文件中有拼写错误:
Finally, there is a typo on your build.gradle
file:
jfxmobile {
android {
manifest = 'src/android/AndroidManifest.xml'
packagingOptions {
exclude 'META-INF/INDEX.LIST'
}
// typo!! iOS should be outside android!
ios {
infoPList = file('src/ios/Default-Info.plist')
forceLinkClasses = ['com.mtt8.**.*', 'com.mysql.**.*']
}
}
}
确保这是您设置选项的方式:
Make sure this is how you set your options:
jfxmobile {
android {
manifest = 'src/android/AndroidManifest.xml'
packagingOptions {
exclude 'META-INF/INDEX.LIST'
}
}
ios {
forceLinkClasses = [ 'com.gluonhq.**.*', 'com.mysql.**.*']
infoPList = file('src/ios/Default-Info.plist')
}
}
这篇关于使用JDBC的Gluon Sample Project在iOS设备上不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!