All pastes #617879 Raw Edit

MySQL connector/j charset test

public java v1 · immutable
·published 2007-07-13 15:41 UTC
rendered paste body
package de.brightbyte.wikiword;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class CharsetTest {	/**	 * Command line arguments:	 *     CharsetTest text [dbinfo] [charset] [collate] [setnames]   	 * try charset utf8, collate utf8_bin, setnames utf8 or nothing.	 * example: jdbc:mysql://localhost/TestDB?user=me&password=xxxx&characterEncoding=utf8 ÄxŁ utf8 utf8_bin	 */	public static void main(String[] args) throws IOException, SQLException, ClassNotFoundException {				//parse args ---------------------------------------		String txt = args[1];				String charset = "";		if (args.length>2) {			charset = "CHARSET "+args[2];		}				String collate = "";		if (args.length>3) {			collate = "COLLATE "+args[3];		}				String names = "";		if (args.length>4) {			names = args[4];		}						System.out.println(charset+" "+collate+"; "+names);				//connect ---------------------------------------		/*		File dbf = new File(args[0]);		DatabaseConnectionInfo db = new DatabaseConnectionInfo(dbf);		Connection conn = db.openConnection();		*/				Class.forName("com.mysql.jdbc.Driver");		String url = args[0];		Connection conn = DriverManager.getConnection(url);				Statement st = conn.createStatement();				if (names.length()>0) {			st.executeUpdate("SET NAMES "+names);		}				//create table ---------------------------------------		//st.executeUpdate("DROP TABLE IF EXISTS CharsetTest");		st.executeUpdate("CREATE TABLE CharsetTest ( id INT AUTO_INCREMENT, s VARCHAR(255) collate utf8_bin, t TEXT collate utf8_bin, x VARBINARY(255), PRIMARY KEY (id) ) "+charset+" "+collate);				//insert literal ---------------------------------------		st.executeUpdate("INSERT INTO CharsetTest SET s = '"+txt+"', t = '"+txt+"', x = '"+txt+"'");				//insert programmatically ---------------------------------------		PreparedStatement pst = conn.prepareStatement("INSERT INTO CharsetTest SET s = ?, t = ?, x = ?");				pst.setString(1, txt);		pst.setString(2, txt);		pst.setString(3, txt);		pst.execute();		pst.setBytes(1, txt.getBytes("UTF-8"));		pst.setBytes(2, txt.getBytes("UTF-8"));		pst.setBytes(3, txt.getBytes("UTF-8"));		pst.execute();				pst.close();				//show result ---------------------------------------		ResultSet r = st.executeQuery("SELECT id, s, t, x FROM CharsetTest");		while (r.next()) {			System.out.println(r.getString(1)+"\t\t"+r.getString(2)+"\t\t"+r.getString(3)+"\t\t"+r.getString(4));		}				//drop table ---------------------------------------		st.executeUpdate("DROP TABLE CharsetTest");				//cleanup ---------------------------------------		st.close();		conn.close();	}}