毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 企业开发 >> 正文

JAVA-JDBC向数据库插入文件错误java.sql.SQLException: Incorrect string value: '\xB4\

更新时间:2012-5-21:  来源:毕业论文

这是我的数据库建表代码:
CREATE TABLE userclob(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
note LONGTEXT
) ;

JAVA code :

import java.sql.Connection ;
import java.sql.DriverManager ;
import java.io.File ;
import java.io.FileInputStream ;
import java.io.InputStream ;
import java.sql.PreparedStatement ;

public class ClobDemo{
//MySQL-JDBC驱动
public static final String DBRIVER = "org.gjt.mm.mysql.Driver" ;
//MySQL数据库连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
//MySQL 用户名
public static final String DBUSER = "root" ;
//MySQL 密码
public static final String DBPASSWORD = "mysqladmin" ;
public static void main(String args[]) throws Exception{
Connection conn = null ;
PreparedStatement prs = null ;
String sql = "INSERT INTO userclob(name,note) VALUES (?,?) " ;
Class.forName(DBRIVER) ; //加载JDBC驱动
//实例化Connection对象获得与数据库连接
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
//实例化PreparedStatement对象
prs = conn.prepareStatement(sql) ; //使用预处理写入SQL语句
String name = "罗星笔记";
//用输入流读取文件
File f = new File("d:" + File.separator + "sql.txt") ;
InputStream input = null ;
input = new FileInputStream(f) ;
prs.setString(1,name) ;
prs.setAsciiStream(2,input) ;
prs.executeUpdate() ; //执行更新操作
input.close() ; //关闭输入流
conn.close() ; //关闭数据库
}
}

抛错:

D:\test\clobdemo>java ClobDemo
Exception in thread "main" java.sql.SQLException: Incorrect string value: '\xB4\
xB4\xBD\xA8\xBA\xCD...' for column 'note' at row 1
  at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
  at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
  at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
  at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
  at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.ja
va:2119)
  at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
:2415)
  at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
:2333)
  at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
:2318)
  at ClobDemo.main(ClobDemo.java:33)
 
检查下数据库表的字符格式
show full columns from userclob;
如果不是GBK,可用下面方法修改
alter table userclob modify note varchar(30) character set gbk;

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。