java中向sqlserver执行sql语句问题

程序如下//加载数据库的驱动packagemainmethod;importjava.io.IOException;importjava.sql.*;importjava... 程序如下
//加载数据库的驱动
package mainmethod;
import java.io.IOException;
import java.sql.*;
import java.io.*;
public class mainmethod{
private static Connection state;
static Connection conn=null;
static{
try{
Class.forName("net.sourceforge.jtds.jdbc.Driver");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
}
public static Connection getConn(){
String url="jdbc:jtds:sqlserver://127.0.0.1:1433/S_C";
String userName="sa";
String passWord="";
try{
conn=DriverManager.getConnection(url, userName, passWord);
if(conn!=null){
System.out.println("ok!!!!!!!");
}
}
catch(SQLException e){
e.printStackTrace();
}
System.out.println(conn);//苦思冥想没有结局的问题(不能执行sql语句)解决方法,原因是conn的值有没有赋值上去,或者被顶替掉。
return conn;
}
@SuppressWarnings("deprecation")
public static class input{
static int inputIntdate() throws IOException{ //这里之所以不使用public是因为在input类前的public对类里面的内容有影响
byte buf[]=new byte[5];
String str;
int num = 0;
try{
System.in.read(buf);
str=new String(buf,0);
num=Integer.parseInt(str.trim());

}catch(Exception e){
System.out.println(e);
}
return num;
}
}
//添加功能
static class Insert{
public static Insert insert() throws SQLException{

getConn();

String sql="";
Statement state=conn.createStatement();
sql="insert into Student values('2010109','李雷','男 ','计算机系','IT','本科',266)";
state.executeUpdate(sql);
System.out.println("insert is ok!");
state.close();
return null;
}
}
public static void delete() throws SQLException{
getConn();

}
public static void update() throws SQLException{
getConn();

}
public static void select() throws SQLException{
getConn();

}
public static void main(String[] args) throws SQLException, IOException{
System.out.println ("分别输入数字1,2,3,4选择增,删,改,查模块");
//需要在这里添加输入整数n的模块
int m;
m=input.inputIntdate();
switch(m){
case 1:
System.out.println("ok");
Insert in =null;
in=Insert.insert();
break;
case 2:System.out.println("ok");delete();break;
case 3:System.out.println("ok");update();break;
case 4:System.out.println("ok");select();break;
default:System.out.println("输入的整数有误");
}
//需要添加重新选侧模块
}
}

没有向Student表中插入任何数据
运行的结果是这样的

分别输入数字1,2,3,4选择增,删,改,查模块
1
ok
ok!!!!!!!
net.sourceforge.jtds.jdbc.JtdsConnection@188f506
Exception in thread "main" java.sql.DataTruncation: Data truncation
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:386)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2893)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2335)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:638)
at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:613)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:572)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeImpl(JtdsStatement.java:809)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeUpdate(JtdsStatement.java:1288)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeUpdate(JtdsStatement.java:1241)
展开
 我来答
吴宏伟C0901
2013-01-03 · TA获得超过470个赞
知道答主
回答量:51
采纳率:0%
帮助的人:15.3万
展开全部
你没有给m赋值啊
把m=input.inputIntdate()这句话换成m=1就可有啦
追问
m.input.inputIndate()就是给m赋值的
追答
你那个input方法赋值不成功
System.in.read方法读取字节,但是你从哪里输入呢
bd9006
2013-01-07 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
看看哗游报什么错误信息了

数据被截轿氏短。

定义的闭芦散长度,和DB里面实际长度不符合
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
476046707
2013-01-07 · 超过10用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:38.5万
展开全部
什么错误信息你倒是也打出来,才能帮你找唯禅啊
你检查你的添加的信息是不是跟你的数据库类型错指散尘误;肯定是你的SQL语句错了才会报这样的错;
在吧掘山你的表贴出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
brightsw
2013-01-04
知道答主
回答量:10
采纳率:0%
帮助的人:1.3万
展开全部
缺少commit
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式