通过PreparedStatement往MySql数据库插入中文出现'?'乱码

在java中通过PreparedStatement向Mysql数据库中插入或修改中文字符时,

出现了“?”的乱码问题。经过查询资料,应该是数据库字符匹配的问题,
经过实践问题解决。共享出来希望能帮到更多的人,不足之处欢迎前来讨论。
环境:Mysql 8.5 64位
在DAO向Mysql数据库中传递数据时,出现?问题,要更改数据库最初连接时的参数。如

    private String dbUrl="jdbc:mysql://localhost:3306/db_name?**characterEncoding=utf-8";**
    private String dbUserName="root";
    private String dbPassword="123456";
    private String jdbcName="com.mysql.jdbc.Driver";

    public Connection getCon() throws Exception{
        Class.forName(jdbcName);
        Connection con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
        return con;
    }

在数据库名称后面加一个?characterEncoding=utf-8”;后面跟?characterEncoding=gbk也可以,根据使用的字符集而定。问题就可以解决。
另外,在JAVA 中使用SERVLET无法解析中文字符时,可以使用

request.setCharacterEncoding("utf-8");

指定字符集,问题就可以解决。

还有什么其他情况,欢迎来讨论!

你可能感兴趣的:(JAVA)