如果数据库是utf-8编码,用下面的初始化数据库任务会出错:
<target name="initdb" >
<sql driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/learndiarydb"
userid="dbuser"
password="1234"
classpath="lib/mysql-connector-java-3.1.12-bin.jar"
autocommit="true"
rdbms="mysql"
print="true"
src="database/testdata_mysql.sql" />
</target>
错误报告为:
Buildfile: build.xml
initdb:
[sql] Executing file: F:\learndiary\learndiary\old\database\testdata_mysql.sql
[sql] 0 rows affected
[sql] Failed to execute: INSERT INTO article VALUES (1,1,0,'鍏憡鐗?,'鍏憡鐗?,'2004-09-28 08:38:54','',1,'2005-11-10 08:27:50',6,1,'admin',1)
BUILD FAILED
F:\learndiary\learndiary\old\build.xml:124: java.sql.SQLException: Syntax error or access violation, message from server: "You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '閸忣剙鎲¢悧锟?,'2004-09-28 08:38:54','',1,'2005-11-10 08:27:50"
Total time: 12 seconds
而这个初始化通过mysql的source learndiarydb yourpath\testdata_mysql.sql的命令来进行则不会出错。
不知是什么原因?