xiaoduc 2015-04-18 12:38 采纳率: 50%
浏览 1624
已采纳

将student.txt文件写入sqlserver数据库,学号写不进去,后面就错位了,求大神

package sqlConn;
import java.io.*;
import java.sql.*;
import java.util.*;
public class Test {
public static void main(String[] args) throws Exception{
List students=new LinkedList();
FileReader fin=new FileReader("res/students.txt");
BufferedReader in=new BufferedReader(fin);
String line=in.readLine();
while(line != null)
{
line = line.trim(); //去除字符串中前后空格
if( line.length() > 0 ) //检查是否是空行
{
Student student = new Student();
student.parseStudent(line);
students.add(student);
}
line = in.readLine();
}
in.close();
fin.close();
String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=student";
String userName="sa"; //默认用户名
String userPwd="12345"; //密码
Class.forName(driverName).newInstance();
Connection dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
//System.out.println("连接成功!"); //如果连接成功,控制台输出“连接成功!”
Statement stat = dbConn.createStatement();
Iterator iter = students.iterator();
while(iter.hasNext())
{
Student stu = (Student)(iter.next());
String command = "INSERT INTO stu VALUES('";
command += stu.getID()+"','";
command += stu.getName()+"','";
command += stu.getDepartment()+"')";
System.out.println(command);
stat.executeUpdate(command);
}
}
}
class Student implements Serializable
{
private String sno;
private String sn;
private String dept;
public void parseStudent(String str)
{
int tokenCount;
StringTokenizer t = new StringTokenizer(str);
tokenCount = t.countTokens();
t.nextToken(); //序号
sno = t.nextToken(); //学号
sn = t.nextToken(); //姓名
if( tokenCount > 7 )
dept = t.nextToken();
}
public String toString()
{
String s = sno + " " + sn;
for(int l = s.length();l<21; l++) s +=" "; //对齐
return s + dept;
}
public String getID(){return sno;}
public String getName(){return sn;}
public String getDepartment(){return dept;}
}

  • 写回答

3条回答 默认 最新

  • save4me 2015-04-18 14:07
    关注

    你的代码里面t.nextToken(); //序号这个去掉。students.txt里面只有三列,学号,姓名和课程,但是你在解析的时候却解析成4列,所以错了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据