最开始是,插入数据库,中文自动变成了"????"
于是,按网上的方法,将msql数据库中的my.ini,将character-set-server=UTF-8,然后连接字符串jdbc.url=jdbc:mysql://localhost:3306/yiyi?useUnicode=true&characterEncoding=UTF-8
然后却发现只要插入中文就会报错,然后插入英文是没问题的import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.yiyi.shop.DAO.UserDao;
import com.yiyi.shop.domain.User;
public class UnitTest {
public static void main(String[] args){
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userdao = (UserDao)ctx.getBean("userdao");
User user = new User();
user.setUsername("fin");
user.setPassword("789");
user.setTelephone("12131241");
user.setEmail("[email protected]");
user.setAddress("中国");
userdao.saveUser(user);
}}
错误是:
2011-11-13 21:12:55,813 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 1366, SQLState: HY000
2011-11-13 21:12:55,813 ERROR [org.hibernate.util.JDBCExceptionReporter] - Incorrect string value: '\xE6\x88\x91\xE7\x88\xB1...' for column 'address' at row 1
于是,按网上的方法,将msql数据库中的my.ini,将character-set-server=UTF-8,然后连接字符串jdbc.url=jdbc:mysql://localhost:3306/yiyi?useUnicode=true&characterEncoding=UTF-8
然后却发现只要插入中文就会报错,然后插入英文是没问题的import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.yiyi.shop.DAO.UserDao;
import com.yiyi.shop.domain.User;
public class UnitTest {
public static void main(String[] args){
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userdao = (UserDao)ctx.getBean("userdao");
User user = new User();
user.setUsername("fin");
user.setPassword("789");
user.setTelephone("12131241");
user.setEmail("[email protected]");
user.setAddress("中国");
userdao.saveUser(user);
}}
错误是:
2011-11-13 21:12:55,813 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 1366, SQLState: HY000
2011-11-13 21:12:55,813 ERROR [org.hibernate.util.JDBCExceptionReporter] - Incorrect string value: '\xE6\x88\x91\xE7\x88\xB1...' for column 'address' at row 1
username varchar(20) not null,
password varchar(20) not null,
--add your SQL statement here
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
default-character-set=UTF-8且改完启动后数据库是需要重新建的。
default-character-set=utf
port=3306[mysql]default-character-set=gbk