梦想只在梦中了
2018-05-28 14:33
采纳率: 33.3%
浏览 1.4k

java使用纯jdbc连接mysql中文数据库乱码,请教。。。。。。

使用纯jdbc创建一个中文数据库,创建成功后连接到该中文数据库并建立中文表、中文字段 。提示Unknown database 。求教:::::::::::
错误:图片说明

代码:
package com.tq.platform.test;

import java.sql.*;

public class Test {
// JDBC驱动 和 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/";

// 数据库连接认证
static final String USER = "root";
static final String PASS = "123456";

@SuppressWarnings("resource")
public static void main(String[] args) {
    Connection conn = null;
    Statement stmt = null;
    String sql = "";
    try {

        Class.forName(JDBC_DRIVER);
        System.out.println("Connecting to database...");
        conn = DriverManager.getConnection(DB_URL, USER, PASS);
        System.out.println("Creating database...");
        stmt = conn.createStatement();
        sql = "CREATE DATABASE `测试数据库`  character set utf8";
        stmt.executeUpdate(sql);
        System.out.println("Database created successfully...");
        String test_URL = "jdbc:mysql://localhost:3306/`测试数据库`?useUnicode=true&characterEncoding=utf-8";
        conn = DriverManager.getConnection(test_URL, USER, PASS);
        sql = "CREATE table `表1`(`字段1` varchar(20),`字段2` int)";
        stmt.executeUpdate(sql);
        sql = "select * from `表1`";
        stmt.executeQuery(sql);


    } catch (SQLException se) {
        se.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if (stmt != null)
                stmt.close();
        } catch (SQLException se2) {
        }
        try {
            if (conn != null)
                conn.close();
        } catch (SQLException se) {
            se.printStackTrace();
        } 
    } 
    System.out.println("Goodbye!");
}

}

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

17条回答 默认 最新

  • yh1124390430 2018-05-29 01:55
    已采纳

    我试了下 ,String test_URL = "jdbc:mysql://localhost:3306/测试数据库?useUnicode=true&characterEncoding=utf-8"; 会报如下错误:java.sql.SQLSyntaxErrorException: Unknown database '???è????°?????“',
    改成 测试数据库 后错误消失了图片说明

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • kebolxf 2018-05-28 14:45

    Java:jdbc连接数据库插入中文数据乱码问题

    评论
    解决 无用
    打赏 举报
  • jay_c01 2018-05-28 15:10
    String test_URL = "jdbc:mysql://localhost:3306/`测试数据库`?useUnicode=true&characterEncoding=utf-8";
     ---->改为
    

    String test_URL = "jdbc:mysql://localhost:3306/测试数据库?useUnicode=true&characterEncoding=utf-8";

    试试看

    评论
    解决 无用
    打赏 举报
  • qq_39916083 2018-05-28 15:20

    右键项目 最后一个 改改编码格式 ,,,。。如果可以的话 可以配置一个过滤器

    评论
    解决 无用
    打赏 举报
  • qq_39916083 2018-05-28 15:21

    你的数据库名为什么是中文啊

    评论
    解决 无用
    打赏 举报
  • liaowencong 2018-05-28 15:21

    数据库名改成用英文来命名试下

    评论
    解决 无用
    打赏 举报
  • 钱叁壹 2018-05-28 16:49

    在url后面添加参数useUnicode=true&characterEncoding=utf-8确定使用什么编码就能搞定了

    评论
    解决 无用
    打赏 举报
  • String test_URL = "jdbc:mysql://localhost:3306/测试数据库?useUnicode=true&characterEncoding=utf-8";

    评论
    解决 无用
    打赏 举报
  • VIVIAN_WO 2018-05-29 00:47

    这应该是创建数据库时候有问题,你看下数据库名字改成英文,在试试看

    评论
    解决 无用
    打赏 举报
  • qq_34950246 2018-05-29 01:17

    数据库和jdbc连接的字符集不一样,识别不了,乱码了

    评论
    解决 无用
    打赏 举报
  • xcgh 2018-05-29 01:24

    mysql的字符集设置utf8,在my.ini,改一下试试

    评论
    解决 无用
    打赏 举报
  • wuyilin8500708 2018-05-29 01:41

    "jdbc:mysql://localhost:3306/测试数据库?useUnicode=true&characterEncoding=utf-8"; 这样就可以了的,实在不行就修改mysql的字符集

    评论
    解决 无用
    打赏 举报
  • linchang159357 2018-05-29 03:01

    两个都设置为UTF-8。就行了

    评论
    解决 无用
    打赏 举报
  • Lei_Da_Gou 2018-05-29 06:10

    1.将数据库连接配置改成这段:jdbc.url=jdbc:log4jdbc:mysql://127.0.0.1:3306/database?characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false
    2.数据库建议不要使用中文

    评论
    解决 无用
    打赏 举报
  • qq_38879734 2018-05-29 06:26

    链接数据库后加转化码

    评论
    解决 无用
    打赏 举报
  • JaydenL 2018-05-29 10:06

    需要更改mysql的字符集为utf-8

    评论
    解决 无用
    打赏 举报
  • shanhanyu 2018-05-31 02:11
    1. 找到mysql安装目录 查看my.ini文件,确认 [mysql] default-character-set=utf8 是否是utf8,修改后重启mysql服务
    2. show variables like '%char%'; 查看相关编码是否统一,如果不是统一设置
    3. 设置方式,继续my.ini [mysqld]     character-set-server=utf8     [client]     default-character-set=utf8     [mysql]     default-character-set=utf8
    4. 重启mysql服务
    5. 如果是linux服务器 my.ini --> my.cnf

    linux下mysql安装目录查看方式

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题