MySQLに入らない文字のテストコード
MYSQLに入らない文字がいくつかあります.
昔,それをチェックするために作ったソースコードです.
昔,それをチェックするために作ったソースコードです.
Class.forName("com.mysql.jdbc.Driver"); // データベースへの接続 Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/", "root","password"); // Statement生成 Statement stmt = con.createStatement(); String st = "drop database test;"; stmt.execute(st); st = "create database test;"; stmt.execute(st); st = "use test;"; stmt.execute(st); // テーブル作成SQL文 st = "CREATE table person(" + "id int UNSIGNED NOT NULL AUTO_INCREMENT," + "name varchar(100) ," + "tweet varchar(140),"+ "primary key(id));"; /* //1 //"screenName varchar(100)," +//2 "tweet varchar(140));";//35 */ // SQL実行 stmt.execute(st); stmt.execute("alter table person charset=utf8mb4"); stmt.close(); String str =new String("こa𠀋んにチ𠀋は、abc藍𠀋だよ。かか𠀋");//𠀋 int len = str.length(); //System.out.println("叱".getBytes().length); //System.out.println(len); EntityManager manager = new EntityManager( "jdbc:mysql://localhost:3306/test", "root","password"); Person person = manager.create(Person.class); person.setId(10); person.setName("名前"); person.setTweet(str); try{ /* System.out.println("str: " + str.getBytes().length + "\nstr1:" +str1.getBytes().length+ "\nstr2:" + str2.getBytes().length); */ person.save(); }catch (UndeclaredThrowableException e){ char ch[] = str.toCharArray(); for(int i=0; i < len-1; i++){ if(Character.isHighSurrogate(ch[i]) || Character.isLowSurrogate(ch[i])){ ch[i]=' '; } } str=String.valueOf(ch); System.out.println(str); System.out.println("こaんにチは、abc藍だよ。かか"); person.setTweet(str); person.save(); } } public interface Person extends Entity{ public int getId(); public void setId(long id); public String getName(); public void setName(String name); //public String getScreenName(); public String getTweet(); public void setTweet(String tweet); }