首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

java连oracle,可以连入,但插入数据无法成功解决方案

2013-01-25 
java连oracle,可以连入,但插入数据无法成功package Ceshiimport java.sql.Connectionimport java.sql.Dr

java连oracle,可以连入,但插入数据无法成功
package Ceshi;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Ceshi {


private static Statement dbstate; 
private Connection conn;
public Ceshi ()
{
dbstate=null;
 conn = null;
}
public Connection Conn1()
{
Connection conn = null;
try {
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();


String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID 

String user="system"; 

String password="orcl123"; 

conn= DriverManager.getConnection(url,user,password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}

return conn;
}

public boolean dbInsert(String name,String type,String data,String time,String intro1,String intro2)
{
  /**    
   ** 对数据库表进行插入操作       
   *  * @param hm   
   *  * @return bool值,成功返回true,失败返回false    
   *  */    
String CNAMEstr=name;
String CTYPEstr=type;
String CDATAstr=data;
String CTIMEstr=time;
String USER_INTRO1str=intro1;
String USER_INTRO2str=intro2;
Conn1();
String sql = "";    
boolean insertResult = false; 
sql += "insert into CHAT values" + "(" + "chat_seq.nextval"+",'"+ CNAMEstr+"','"+CTYPEstr+"','"+CDATAstr+"','"+CTIMEstr+"','"+USER_INTRO1str+"','"+USER_INTRO2str+"')";    
try    
{     
dbstate.executeUpdate(sql); 
System.out.println("Sql1 = " + sql);
insertResult = true;    
System.out.println("Sql2 = " + sql);
}
catch(Exception e)
{     
System.out.println("Sql3= " + sql);
}
if (insertResult) 
return true; 
else 
return false; 

}


public static void main(String[] args) {
// TODO Auto-generated method stub

Ceshi obj=new Ceshi();
Connection con=obj.Conn1();
if(con==null)
System.out.print("连接失败");
else
System.out.print("连接成功");

boolean in = obj.dbInsert("服务器","123","123","123",null,null); //—>>>插入 
   if (in) 
   System.out.println("insert OK" );
   else 
   System.out.println("insert error! ");

}

}

执行结果:


Sql3= insert into CHAT (CID,CNAME,CTYPE,CDATA,CTIME,USER_INTRO1,USER_INTRO2) values(chat_seq.nextval,'服务器','1001','uuu','2012-10-23 09:20:29:0187','null','null')
insert error! 

一直无法插入成功!

求原因?
[解决办法]
把异常打印出来啊,看看具体什么错误。
CTIME字段是timestamp类型?如果是CTIME字段的错误,
'2012-10-23 09:20:29:0187'
改成
to_timestamp('2012-10-23 09:20:29:0187','yyyy-mm-dd hh24:mi:ss:ff')
[解决办法]
把异常打出来看看,看看具体的异常就好分析了。估计是数据类型的问题
[解决办法]
你看看你有插入权限没有?
[解决办法]


private static Statement dbstate;  

public Ceshi ()
{
dbstate=null;
conn = null;
}

dbstate.executeUpdate(sql);  


如果你没漏掉代码,那你从头到尾都用一个null来执行SQL。

dbstate = con.createStatement(); 

热点排行