我再把我的全部代码发过来,大家看下哈
package familyaccounts;
import java.sql.*;
import java.util.*;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import familyaccounts.Tally;public class DBConnection { /**表示与数据库的连接*/
private Connection conn; /**表示SQLServer的路径*/
private String url; /**表示机器的名称*/
private String serverName; /**存储端口号*/
private String portNumber; /**存储数据库名称*/
private String databaseName; /**存储用户名*/
private String userName; /**存储密码*/
private String password; /**构造方法*/
public DBConnection() {
url="jdbc:microsoft:sqlserver://";
serverName="localhost";
portNumber="1433";
databaseName="FamilyAccounts";
userName="sa";
password="";
} /**return Url,服务器名称,端口号和数据库名称*/
private String getConUrl()
{
return url+serverName+";"+portNumber+";databaseName="+databaseName+";";
} //定义返回连接的方法
public Connection getConnection()
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//建立连接
conn=DriverManager.getConnection(getConUrl(),userName,password);
if(conn!=null)
{
System.out.println("连接成功!");
}
}
catch(Exception ex)
{
ex.printStackTrace();
System.out.println("getConnection()内得跟踪错误:"+ex.getMessage());
}
return conn;
} /**用add方法向数据库中增加记录*/
public void add(String type,String price)
{
/**用format方法将当前时间进行截取*/
Date date=new Date();
String shijian;
SimpleDateFormat formater=new SimpleDateFormat();
formater.applyPattern("yyyy-MM-dd");
shijian=formater.format(date); /**定义插入的SQL语句*/
String insert="insert into tally(type,price,payDate) values(?,?,?)";
try
{
conn=getConnection();
PreparedStatement pstmt=conn.prepareStatement(insert);
pstmt.setString(1,type);
pstmt.setString(2,price);
pstmt.setString(3,shijian); pstmt.executeUpdate();
System.out.println("数据已插入!"); pstmt.close();
conn.close();
}
catch(SQLException se)
{
System.out.println(se);
}
} public ArrayList<Tally> getAll()
{
Tally t=new Tally();
ArrayList<Tally> arraylist=new ArrayList<Tally>();
try
{
conn=getConnection();
Statement smt=conn.createStatement();
ResultSet rs=smt.executeQuery("select * from tally order by payDate desc");
int i=0;
while(rs.next())
{
//为什么这里加载不上数据?
t.setTallyID(rs.getInt(1));
t.setType(rs.getString(2));
t.setPrice(rs.getString(3));
t.setPayDate(rs.getString(4));
//下面这些代码能够正常的输出,但是就是无法正确赋值给t
System.out.println(" ");
System.out.print(rs.getInt(1)+" ");
System.out.print(rs.getString(2)+" ");
System.out.print(rs.getString(3)+" ");
System.out.println(rs.getString(4));
arraylist.add(i,t);
} rs.close();
smt.close();
conn.close();
}
catch(SQLException se)
{
System.out.println(se); }
return arraylist;
} /**
* 这是main方法。
* 它演示SQL中JDBC连接数据库的方法
*/
public static void main(String[] args)
{
Tally ta=new Tally();
ArrayList<Tally> al=new ArrayList<Tally>();
DBConnection db=new DBConnection();
db.getConnection();
al=db.getAll();
for(int i=0;i<al.size();i++)
{
System.out.print(ta.getTallyID()+" ");
System.out.print(ta.getType()+" ");
System.out.print(ta.getPrice()+" ");
System.out.print(ta.getPayDate());
System.out.println("");
}
}
}
package familyaccounts;
import java.sql.*;
import java.util.*;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import familyaccounts.Tally;public class DBConnection { /**表示与数据库的连接*/
private Connection conn; /**表示SQLServer的路径*/
private String url; /**表示机器的名称*/
private String serverName; /**存储端口号*/
private String portNumber; /**存储数据库名称*/
private String databaseName; /**存储用户名*/
private String userName; /**存储密码*/
private String password; /**构造方法*/
public DBConnection() {
url="jdbc:microsoft:sqlserver://";
serverName="localhost";
portNumber="1433";
databaseName="FamilyAccounts";
userName="sa";
password="";
} /**return Url,服务器名称,端口号和数据库名称*/
private String getConUrl()
{
return url+serverName+";"+portNumber+";databaseName="+databaseName+";";
} //定义返回连接的方法
public Connection getConnection()
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//建立连接
conn=DriverManager.getConnection(getConUrl(),userName,password);
if(conn!=null)
{
System.out.println("连接成功!");
}
}
catch(Exception ex)
{
ex.printStackTrace();
System.out.println("getConnection()内得跟踪错误:"+ex.getMessage());
}
return conn;
} /**用add方法向数据库中增加记录*/
public void add(String type,String price)
{
/**用format方法将当前时间进行截取*/
Date date=new Date();
String shijian;
SimpleDateFormat formater=new SimpleDateFormat();
formater.applyPattern("yyyy-MM-dd");
shijian=formater.format(date); /**定义插入的SQL语句*/
String insert="insert into tally(type,price,payDate) values(?,?,?)";
try
{
conn=getConnection();
PreparedStatement pstmt=conn.prepareStatement(insert);
pstmt.setString(1,type);
pstmt.setString(2,price);
pstmt.setString(3,shijian); pstmt.executeUpdate();
System.out.println("数据已插入!"); pstmt.close();
conn.close();
}
catch(SQLException se)
{
System.out.println(se);
}
} public ArrayList<Tally> getAll()
{
Tally t=new Tally();
ArrayList<Tally> arraylist=new ArrayList<Tally>();
try
{
conn=getConnection();
Statement smt=conn.createStatement();
ResultSet rs=smt.executeQuery("select * from tally order by payDate desc");
int i=0;
while(rs.next())
{
//为什么这里加载不上数据?
t.setTallyID(rs.getInt(1));
t.setType(rs.getString(2));
t.setPrice(rs.getString(3));
t.setPayDate(rs.getString(4));
//下面这些代码能够正常的输出,但是就是无法正确赋值给t
System.out.println(" ");
System.out.print(rs.getInt(1)+" ");
System.out.print(rs.getString(2)+" ");
System.out.print(rs.getString(3)+" ");
System.out.println(rs.getString(4));
arraylist.add(i,t);
} rs.close();
smt.close();
conn.close();
}
catch(SQLException se)
{
System.out.println(se); }
return arraylist;
} /**
* 这是main方法。
* 它演示SQL中JDBC连接数据库的方法
*/
public static void main(String[] args)
{
Tally ta=new Tally();
ArrayList<Tally> al=new ArrayList<Tally>();
DBConnection db=new DBConnection();
db.getConnection();
al=db.getAll();
for(int i=0;i<al.size();i++)
{
System.out.print(ta.getTallyID()+" ");
System.out.print(ta.getType()+" ");
System.out.print(ta.getPrice()+" ");
System.out.print(ta.getPayDate());
System.out.println("");
}
}
}
解决方案 »
- jboss5.1下面部署war包 为啥不能自动解压呢!
- hibernate one-to-one 映射 getId() == 0 的问题
- 【急】循环里的Update操作死锁问题
- Tomcat6.0.13的虚拟目录设置问题。
- 各位高手给小弟推荐一下有关JAVA的比较好的参考书吧,不胜感激~~~!
- servlet传数据到数据库错误
- [这几天快疯掉了]读数据问题,EJB+ORACLE中,做项目中遇到的几怪问题,请高手解答,灌水请回避
- 注册码???(急!!) 谢谢!
- 我有java基础,准备学习j2ee,该怎么学起啊?
- XML schema 小问题。.....
- JNDI连接Oracle数据库遇到问题
- J2EE平台使用什么方式与外界进行通讯??
{
ArrayList <Tally> arraylist=new ArrayList <Tally>();
try
{
conn=getConnection();
Statement smt=conn.createStatement();
ResultSet rs=smt.executeQuery("select * from tally order by payDate desc");
int i=0;
while(rs.next())
{
//为什么这里加载不上数据?
Tally t=new Tally();
t.setTallyID(rs.getInt(1));
t.setType(rs.getString(2));
t.setPrice(rs.getString(3));
t.setPayDate(rs.getString(4));
System.out.println(" ");
System.out.print(rs.getInt(1)+" ");
System.out.print(rs.getString(2)+" ");
System.out.print(rs.getString(3)+" ");
System.out.println(rs.getString(4));
arraylist.add(i,t);
} rs.close();
smt.close();
conn.close();
}
catch(SQLException se)
{
System.out.println(se); }
return arraylist;
}
0 null null null
0 null null null
0 null null null
0 null null null
我试了还是不行啊,还是这样的运行结果,那几个System.out.println()方法能够正常的输出,就是我调试的时候发现t.setTallyID(rs.getInt(1));
t.setType(rs.getString(2)); t.setPrice(rs.getString(3)); t.setPayDate(rs.getString(4)); 这几个方法似乎不能给JavaBean里边的属性赋值!郁闷
{
ArrayList<Tally> arraylist=new ArrayList<Tally>();
try
{
conn=getConnection();
Statement smt=conn.createStatement();
ResultSet rs=smt.executeQuery("select * from tally order by payDate desc");
if(rs.next())
{
for(int i=0;i<rs.getRow();i++,rs.next())
{
Tally t=new Tally();
//为什么这里加载不上数据?
t.setTallyID(rs.getInt(1));
t.setType(rs.getString(2));
t.setPrice(rs.getString(3));
t.setPayDate(rs.getString(4));
System.out.println(" ");
System.out.print(rs.getInt(1) + " ");
System.out.print(rs.getString(2) + " ");
System.out.print(rs.getString(3) + " ");
System.out.println(rs.getString(4));
arraylist.add(i, t);
} rs.close();
smt.close();
conn.close();
} }
catch(SQLException se)
{
System.out.println(se); }
return arraylist;
}
能print出来值?那检查下你的BEAN里方法有没问题哪.