package database_wenjian;import java.io.IOException;
import java.util.ArrayList;public class RWMain {
public static void main(String[] args) {
Read read = new Read(); try {
read.Read("E:\\shenjinwei.txt");
RW_Main rwread = new RW_Main(read.M, read.com);
System.out.print("it is work!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package database_wenjian;import java.sql.*;
import java.util.ArrayList;public class RW_Main {
public RW_Main(ArrayList M,Company com) {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://169.254.66.229:1433;databasename=task", "sa", "sa");
PreparedStatement ps = con.prepareStatement("insert into tb_company1(id,name,business,address) values(?,?,?,?)");
for(int i=1;i<=M.size();i++){
ps.setString(1, com.id);
ps.setString(2, com.n);
ps.setString(3, com.b);
ps.setString(4, com.a);
ps.addBatch();
}
ps.executeBatch();
ps.close();
con.close();
System.out.println("connect success!");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 通过驱动来获得一个连接
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}package database_wenjian;import java.io.*;
import java.util.ArrayList;public class Read {
public void Read(String url) throws IOException{
BufferedReader wj=new BufferedReader(new FileReader(url));
s=wj.readLine();
Company com=new Company();//查错原因是此处把所有行内容直接加到as上了,空格没用,赋值没用???????
while(s!=null){//但是M对象也有三个元素,就是全部为空??????
char[] t=s.toCharArray();//这个位置原本想用数组,判断空位来实现实际输入
for(int i=0;i<t.length;){
int j=1;//此处是为了实现轮流添加各项元素
if(equals(t[i] )){
i++;
}
else if(!equals(t[i] )){
as+=t[i];
i++;
}
addcom_ys(j,as);
}
M.add(com);//封装输入//此处能否动态添加?
s=wj.readLine();
}
}
public void addcom_ys(int j,String as){//封装赋值
switch(j){
case 1:
com.addid(as);
j++; break;
case 2:
com.addname(as);
j++; break;
case 3:
com.addbusiness(as);
j++; break;
case 4:
com.addadress(as);
j=1; break;
}
} ArrayList<Company> M=new ArrayList<Company>();Company com=new Company();String s;
String as="";
int j;
}
package database_wenjian;public class Company {
public void company(String id,String n,String b,String a){
id=id;
n=n;
b=b;
a=a;
}
public void addid(String id){
id=id;
}
public void addname(String n){
n=n;
}
public void addbusiness(String b){
b=b;
}
public void addadress(String a){
a= a;
}
public String getid(){
return id=this.id;
}
public String getname(){
return n=this.n;
}
public String getbusiness(){
return b=this.b;
}
public String getadress(){
return a=this.a;
}
String id;
String n;
String b;
String a;
}
运行的结果在数据库中值总是为空,对象个数倒是正确,debug 检查as中的内容是txt文档的读取内容,但是后面赋值给company时,company中id,name,business,address的值全部为空
我的txt文档内容:
10 sjw IT shanghai
11 wy xiaoshou beijing
12 lmx wuliu xian
读取时as内容:10 sjw IT shanghai11 wy xiaoshou beijing12 lmx wuliu xian
就是com中的id,name.....值全部是null
String[] tokens = "11 wy xiaoshou beijing".splite(" ");
你需要将你上面的大段程序改成这个。
要用this.a = a
a定义成private
但是问题就在这里,我debug检查,com里的属性值全部为空;我估计是ArrayList M,中我new com时,是不是局部变量,什吗问题的,值就没有传过去
import java.util.ArrayList;public class Read {
public void Read(String url) throws IOException{
BufferedReader wj=new BufferedReader(new FileReader(url));
s=wj.readLine();
Company com=new Company();
while(s!=null){
char[] t=s.toCharArray();
for(int i=0;i<t.length;){
int j=1; if(equals(t[i] )){
i++; }
else if(!equals(t[i] )){
as+=t[i];
i++;
}
addcom_ys(j,as);//as用过后没有置空(id="11" name=id+name....)
}
M.add(com);//list的所有项目对应同一个Company
s=wj.readLine(); }
}
public void addcom_ys(int j,String as){
switch(j){
case 1:
com.addid(as);
j++; break;
case 2:
com.addname(as);
j++; break;
case 3:
com.addbusiness(as);
j++; break;
case 4:
com.addadress(as);
j=1; break; }
}ArrayList<Company> M=new ArrayList<Company>();Company com=new Company();//从未改过
String s;
String as="";
int j;
}
我市新手,刚刚学java
public List Read(String url) throws IOException{
BufferedReader wj=new BufferedReader(new FileReader(url));
ArrayList<Company> M=new ArrayList<Company>();
String s;
while((s=wj.readLine())!=null){
Company com=new Company();
String[] fields = s.split(" ");
com.addid(fields[0]);
com.addname(fields[1]);
com.addbusiness(fields[2]);
com.addadress(fields[3]);
M.add(com);
}
return M;
}