使用dbutils對mysql進行增加,查詢時出現亂碼問題,都是問號代替中文。
C3P0配置文件如下:
<c3p0-config>
<default-config>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/blog</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">1234</property>
<property name="acquireIncrement">3</property>
<property name="initialPoolSize">5</property>
<property name="minPoolSize">2</property>
<property name="maxPoolSize">8</property>
</default-config>
</c3p0-config>
代碼如下
//添加用戶
public void add(User u) {
try {
String sql ="insert into user values(?,?,?,?,?)";
Object[] params={u.getId(),u.getName(),u.getPass(),u.getAge(),u.getGender()};
qr.update(sql,params);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
//查詢所有用戶
public List<User> query() {
String sql="select * from user";
try {
return qr.query(sql,new BeanListHandler<User>(User.class));
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
頁面以及數據庫亂碼如下
控制檯輸出如下:
[User [id=08C3B1F6CEC642D89F0D84A8FC5948D8, name=??????, pass=das, age=12, gender=?]
[User [id=54333420A77B474C9FA3E905770737B9, name=qqq, pass=qqq, age=10, gender=?]
User [id=B60761EF78294F38BCC6F0FE5380718D, name=??, pass=dsad , age=15, gender=?]
發現這樣錯誤只需要在配置文件中jdbcUrl中加如下參數
<property name="jdbcUrl">jdbc:mysql://localhost:3306/blog?characterEncoding=utf8</property>