2017-04-15 40 views
1

我試圖插入和檢索泰米爾(語言)values.But我越來越像??????JDBC - 如何在MySQL數據庫中插入和檢索泰米爾值

插入查詢一樣,

"INSERT INTO category VALUES (19, 'இந்தியா நாட்டின்','A');" 

我的代碼一樣,

public static void main(String[] args) { 

     System.out.println(""); 

     System.out.println("MySQL Connect Example."); 
      Connection conn = null; 
      String url = "jdbc:mysql://localhost:3306/"; 
      String dbName = "test"; 
      String driver = "com.mysql.jdbc.Driver"; 
      String userName = "root"; 
      String password = "root"; 
      try { 
      Class.forName(driver).newInstance(); 
      conn = (Connection) DriverManager.getConnection(url+dbName,userName,password); 
      System.out.println("Connected to the database"); 
      try{ 
       Statement st = (Statement) conn.createStatement(); 
       st.executeQuery("select categoryname from category"); 
       ResultSet rs = st.getResultSet(); 
       int count = 0 ; 
       while(rs.next()){ 
        String name = rs.getString("categoryname"); 
        System.out.println("Vlalue "+ name); 
        ++count; 
       } 
      } 
       catch (SQLException s){ 
       System.out.println("SQL statement is not executed!"); 
       } 
      conn.close(); 
      System.out.println("Disconnected from database"); 
      } catch (Exception e) { 
      e.printStackTrace(); 
      } 

    } 

注:

我的配置,

OS : windows 7 (32 bit), 
DataBase : MySQL 5.1, 
JAVA : 1.7 
+0

您的連接看起來怎麼樣,你可以分享你的代碼嗎? –

+0

@YCF_L,我加了我的基本示例代碼.. –

回答

2

您的連接使用useUnicode=true&characterEncoding=utf-8

Connection connection = DriverManager.getConnection(
"jdbc:mysql://db_name?useUnicode=true&characterEncoding=utf-8", "root", "pass"); 

我認爲你的數據庫是這樣創建的:

CREATE TABLE table_name 
(
    ...  
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=6 ; 

這裏有一個例子我的結果看起來怎麼樣:

enter image description here

編輯

代碼

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 

public class ConnectionJSon { 

    static String driver = "com.mysql.jdbc.Driver"; 
    static String DB_username = "root"; 
    static String DB_password = "admin"; 
    static String DB_URL = 
      "jdbc:mysql://localhost:3306/d3?useUnicode=true&characterEncoding=utf-8"; 

    public static void main(String[] args) throws Exception { 
     try { 

      Connection connection = DriverManager.getConnection(DB_URL, 
        DB_username, DB_password); 
      String q = "INSERT INTO table1 VALUES (?)"; 
      PreparedStatement preparedStatement = connection.prepareStatement(q); 
      preparedStatement.setString(1, "இந்தியா நாட்டின்"); 
      int exc = preparedStatement.executeUpdate(); 
      System.out.println(exc); 
      q = "SELECT * FROM table1"; 
      preparedStatement = connection.prepareStatement(q); 
      ResultSet rs = preparedStatement.executeQuery(); 
      while (rs.next()) { 
       System.out.println(rs.getString(1)); 
      } 
      System.out.println("Success"); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

SQL

create table table1(
    col varchar(30) 
)ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=6 ; 
+0

感謝您的努力。但它不會工作。我有同樣的價值,像?????? –

+0

@sathishanish它對我很好,檢查我的結果在截圖 –

+0

請顯示您的導入語句..因爲我的導入語句是混合sql和mySql .. –

0

的字符集/歸類,你的表/數據庫是我們的ing不支持泰米爾語字符。最有可能的是,你想讓你的整個數據庫支持泰米爾語。這樣,無論何時您創建一個新表格,它都將支持泰米爾語。

CREATE DATABASE yourDatabase 
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 

如果這行不通,那麼也許你的MySQL版本不支持utf8mb4字符集。在這種情況下,請嘗試僅使用utf8

+0

感謝您的努力。我得到了這個例外。未知字符集:'utf8mb4'。現在我做了什麼? –

+0

您使用的是哪個版本的MySQL? –

+0

MySQL版本是5.1 –

相關問題