前言
遇到问题别着急问别人,除非着急,自己去分析和解决问题出现的原因,是对我们的能力的一个直观体现,百度不行你就用google。
正文
使用jdbc连接数据库,驱动加载,url,用户名和密码,全都正确,但是无论如何连接不上数据库,慢慢儿查看错误信息说是字符集的问题。
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Unknown initial character set index ‘255’ received from server. Initial client character set can be forced via the ‘characterEncoding’ property.
eclipse给的错误信息已经相当明显,然后就要改正的是url,需要在url前面添加上字符集的编码格式。
原来的:
dataSource.setUrl(“jdbc:mysql://xxx.xxx.xxx.xxx:3306/student”);
修改之后的:
dataSource.setUrl(“jdbc:mysql://xxx.xxx.xxx.xxx:3306/student?useUnicode=true&characterEncoding=utf8”);
package com.banana.jdbc.demo1;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
public class JdbcDemo1 {
@Test
public void demo1() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
// xxx.xxx.xxx.xxx 是 MySQL所在的服务器IP
dataSource.setUrl("jdbc:mysql://xxx.xx.xxx.xxx:3306/student?useUnicode=true&characterEncoding=utf8");
dataSource.setUsername("root");
dataSource.setPassword("12345678");
// 创建jdbc模板
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.update("insert into t_stu(name,age) values(?,?)", "lalala", 10);
}
}