java - 如何使用 utf8_general(文本类型)从 Java 向 MySQL 发送查询
问题描述
我正在用 Java 编写一个具有登录屏幕的新应用程序。它正在100%工作!
这是检查是否存在与 MySQL 的连接的类。
package Classes;
import java.awt.Font;
import java.sql.*;
import javax.swing.*;
public class DBConnect {
public Connection con;
public Statement st;
public ResultSet rs;
@SuppressWarnings("empty-statement")
public void DBConnect() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null, "Error :- " + ex + " , Please Connect Support Team For More Info !", "DataBase", 0);
System.exit(0);
}
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/flipsoftwere", "root", "");
st = con.createStatement();
} catch (SQLException ex2) {
UIManager.put("OptionPane.messageFont", new Font("Arial", Font.LAYOUT_RIGHT_TO_LEFT, 20));
JOptionPane.showMessageDialog(null, "فشل الاتصال بقاعدة البيانات" + "\n" + "تئكد من ان الشبكة تعمل بشكل جيد أو اتصل بفريق الدعم", "قاعدة البيانات", 0);
System.exit(0);
}
}
它是这样工作的,没关系:-听
这是我按下登录按钮时登录表单的代码:-
try {
String usernameGET , PasswordGET;
usernameGET=(String) userN.getSelectedItem();
PasswordGET=userP.getText();
String query = "SELECT * FROM users WHERE UserName = '" + usernameGET + "';";
db.rs = db.st.executeQuery(query);
db.rs.next();
String namec= db.rs.getString("UserName");
String Pass= db.rs.getString("Password");
if(usernameGET.equals(namec)){
if(PasswordGET.equals(Pass)){
UIManager.put("OptionPane.messageFont", new Font("Arial", Font.LAYOUT_RIGHT_TO_LEFT, 20));
JOptionPane.showMessageDialog(null, "اهلا بك " + usernameGET + " !","دخول مقبول",1);
DashBord das=new DashBord();
LogIn.statas.setText("Yes");
this.setVisible(false);
das.NameLogIn.setText(usernameGET);
das.setVisible(true);
}
else {
UIManager.put("OptionPane.messageFont", new Font("Arial", Font.LAYOUT_RIGHT_TO_LEFT, 20));
JOptionPane.showMessageDialog(null,"كلمة المرور خطأ","دخول مرفوض", 0);
}
}
else {
UIManager.put("OptionPane.messageFont", new Font("Arial", Font.LAYOUT_RIGHT_TO_LEFT, 20));
JOptionPane.showMessageDialog(null,"اسم المستخدم خطأ","دخول مرفوض", 0);
}
}catch(Exception ex3){
UIManager.put("OptionPane.messageFont", new Font("Arial", Font.LAYOUT_RIGHT_TO_LEFT, 20));
JOptionPane.showMessageDialog(rootPane, ex3);
}
如果我选择(Adeeb)它没有问题,就像这样
但是,如果我使用这样的文本类型(“اديب”),它会给我一个像这张图片这样的查询错误!
那么如何发送非英文文本的查询呢?
解决方案
推荐阅读
- javascript - 如何扩展已经在使用的 React 组件?
- microsoft-graph-api - Access to Microsoft eDiscovery with Microsoft Graph API
- java - 忽略正则表达式的字符串过滤器
- python - QSplitter、QWidget 调整大小、setSizes()、setStretchFactor() 和 sizeHint() - 如何让它们一起工作?
- python - OpenAI "gym" Library throws a NoneType error on env.render()
- python - Is there a way for pytest to check if a log entry was made at Error level or higher?
- python - 正则表达式替换元素,除非在同一行和匹配之前有另一个匹配
- python - genfromtext() numpy function for reading weight csv files doesn't work in Jupyter (Face Recognition DL assignment )
- optimization - 以快进方式播放模拟
- node.js - 如何让 AWS S3 存储桶中的 Angular 应用程序对 AWS Elastic Beanstalk 中的服务进行 API 调用