当前位置: 代码迷 >> Java相关 >> 解决下这个JDBC问题
  详细解决方案

解决下这个JDBC问题

热度:366   发布时间:2011-09-10 14:33:41.0
解决下这个JDBC问题
源代码“

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

public class BlobDemo1{
   private static  final String Driver="org.gjt.mm.mysql.Driver";
   private static  final String dburl="jdbc:mysql://localhost:3306/justhin";
   private static  final String user="root";
   private static  final String password="admin";
public static void main(String args[]) throws Exception{
     Connection con=null;
     PreparedStatement psmt=null;
    // ResultSet rs=null;
     
     String name="平南";
     String sql="insert into blob1(name,movies) values(?,?)";
     
     Class.forName(Driver);
     con=DriverManager.getConnection(dburl,user,password);
     psmt=con.prepareStatement(sql);
     File f=new File("F:"+File.separator+"20110821482.jpg");
     InputStream input=null;
     input=new FileInputStream(f);
     psmt.setString(1,name);
     psmt.setBinaryStream(2,input,(int)f.length());
     psmt.executeUpdate();
     input.close();
     psmt.close();
     con.close();
  }
}运行报错:
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExce
tion: You have an error in your SQL syntax; check the manual that corresponds t
your MySQL server version for the right syntax to use near 'd?e?\"#U?)laj°?
I%?è????íòJ?íe??L??9?\0??hkà@}?7/???\'     {??M?2LkO??÷?D?à??' at line 1
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source

        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown So
rce)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.Util.getInstance(Util.java:381)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.j
va:1734)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.jav
:2019)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.jav
:1937)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.jav
:1922)
        at BlobDemo1.main(BlobDemo1.java:30)
数据库:     
mysql> desc blob1;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| id     | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | NO   |     |         |                |
| movies | longblob    | YES  |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
搜索更多相关的解决方案: private  password  localhost  mysql  源代码  

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2011-09-10 07:47:12
付政委
该用户已被删除
  得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2011-09-10 07:48:01
w123012306

来 自:湖南
等 级:蜘蛛侠
帖 子:298
专家分:1154
注 册:2010-4-22
  得分:0 
回复 3楼 付政委
不是sql连接的问题

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2011-09-10 10:56:00
zwk199024

等 级:论坛游侠
帖 子:63
专家分:102
注 册:2010-9-15
  得分:7 
你是不是没导入MySql的jar包啊
----------------解决方案--------------------------------------------------------
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.PreparedStatement ;
import java.io.File ;
import java.io.FileInputStream ;
import java.io.InputStream ;
public class ClobDemo01{
    // 定义MySQL的数据库驱动程序
    public static final String DBDRIVER = "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 DBPASS = "admin" ;
    public static void main(String args[]) throws Exception{    // 所有异常抛出
        Connection conn = null ;        // 数据库连接
        PreparedStatement pstmt = null ;
        String name = "日记" ;   
        String sql = "INSERT INTO userclob(name,note) VALUES (?,?) " ;
        Class.forName(DBDRIVER) ;    // 加载驱动程序
        conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
        pstmt = conn.prepareStatement(sql) ;    // 创建PreapredStatement对象
        File f = new File("E:" + File.separator + "note.txt") ;
        InputStream input = null ;
        input = new FileInputStream(f) ;    // 通过输入流读取文件
        pstmt.setString(1,name) ;
        pstmt.setAsciiStream(2,input,(int)f.length()) ;
        pstmt.executeUpdate() ;
        conn.close() ;            // 数据库关闭
    }
};
----------------解决方案--------------------------------------------------------
回复 7楼 w123012306
这能运行

----------------解决方案--------------------------------------------------------
回复 5楼 付政委
clob类型的能存入sql里
但blob类型的就出这样的问题了

----------------解决方案--------------------------------------------------------
回复 6楼 zwk199024
其他sql表操作都可以!
----------------解决方案--------------------------------------------------------
  相关解决方案