try{
currentRow.addElement(new String(rs.getString( i ).getBytes("ISO8859_1"),"GBK"));
}catch (UnsupportedEncodingException e) {
System.out.println("Error: Method: dbconn.iso2gb :"+e.getMessage());
}
currentRow.addElement(new String(rs.getString( i ).getBytes("ISO8859_1"),"GBK"));
}catch (UnsupportedEncodingException e) {
System.out.println("Error: Method: dbconn.iso2gb :"+e.getMessage());
}
解决方案 »
- 用httpclient实现一个代理器可行吗?
- 求助BUG
- apache转发到网站,刷新网站后很慢
- spring+hibernate
- openfire如何向用户发送消息?
- Hibernate的版本问题!
- 谈谈Spring配置中<bean>的id和name属性的花拳秀腿
- 请问当前有什么流行的用于WEB 界面的 JSP 标签库,请推荐几个
- JBOSS如何追踪错误信息
- tomcat中有个名为world的网站,当用apache域名解析后,发现只能通过域名+/world来访问,不能直接用域名访问
- 我的记录ID号是自增的,但是如何得到我刚刚insert的一条记录的ID号?
- 我的jbuilder 6 有问题,你们有没有啊?
java.lang.NullPointerException at gjers.JavaOracle.getNextRow(JavaOracle.java:148) at gjers.JavaOracle.displayResultSet(JavaOracle.java:120) at gjers.JavaOracle.getTable(JavaOracle.java:92) at gjers.JavaOracle.<init>(JavaOracle.java:78) at gjers.JavaOracle.main(JavaOracle.java:172)
package gjers;import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.UnsupportedEncodingException;public class JavaOracle extends JFrame { //数据库变量定义
private Connection connection;
private Statement statement;
private ResultSet resultSet;
private ResultSetMetaData rsMetaData; //GUI变量定义
private JTable table;
private JTextArea inputQuery;
private JButton submitQuery; public JavaOracle()
{
//Form的标题
super( "输入SQL语句,按提交按钮查看结果。" );
//url中指定ODBC中设置的DSN名称
String url = "jdbc:oracle:thin:@192.168.1.1:1521:aaa";
String username = "aaa";
String password = "aaa";
//加载驱动程序以连接数据库
try {
Class.forName( "oracle.jdbc.driver.OracleDriver" );
connection = DriverManager.getConnection(
url, username, password );
}
//捕获加载驱动程序异常
catch ( ClassNotFoundException cnfex ) {
System.err.println(
"装载 JDBC/ODBC 驱动程序失败。" );
cnfex.printStackTrace();
System.exit( 1 ); // terminate program
}
//捕获连接数据库异常
catch ( SQLException sqlex ) {
System.err.println( "无法连接数据库" );
sqlex.printStackTrace();
System.exit( 1 ); // terminate program
}
//如果数据库连接成功,则建立GUI
//SQL语句
String test="select * from card_main where rownum<10";
inputQuery = new JTextArea( test, 4, 30 );
submitQuery = new JButton( "查询" );
//Button事件
submitQuery.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e )
{
getTable();
}
}
); JPanel topPanel = new JPanel();
topPanel.setLayout( new BorderLayout() );
//将"输入查询"编辑框布置到 "CENTER"
topPanel.add( new JScrollPane( inputQuery), BorderLayout.CENTER );
//将"提交查询"按钮布置到 "SOUTH"
topPanel.add( submitQuery, BorderLayout.SOUTH );
table = new JTable();
Container c = getContentPane();
c.setLayout( new BorderLayout() );
//将"topPanel"编辑框布置到 "NORTH"
c.add( topPanel, BorderLayout.NORTH );
//将"table"编辑框布置到 "CENTER"
c.add( table, BorderLayout.CENTER );
getTable();
setSize( 800, 600 );
//显示Form
show();
} private void getTable()
{
try {
//执行SQL语句
String query = inputQuery.getText();
statement = connection.createStatement();
resultSet = statement.executeQuery( query );
//在表格中显示查询结果
displayResultSet( resultSet );
}
catch ( SQLException sqlex ) {
sqlex.printStackTrace();
}
} private void displayResultSet( ResultSet rs )
throws SQLException
{
//定位到达第一条记录
boolean moreRecords = rs.next();
//如果没有记录,则提示一条消息
if ( ! moreRecords ) {
JOptionPane.showMessageDialog( this,
"结果集中无记录" );
setTitle( "无记录显示" );
return;
}
Vector columnHeads = new Vector();
Vector rows = new Vector();
try {
//获取字段的名称
ResultSetMetaData rsmd = rs.getMetaData();
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
columnHeads.addElement( rsmd.getColumnName( i ) );
//获取记录集
do {
rows.addElement( getNextRow( rs, rsmd ) );
} while ( rs.next() );
//在表格中显示查询结果
table = new JTable( rows, columnHeads );
JScrollPane scroller = new JScrollPane( table );
Container c = getContentPane();
c.remove(1);
c.add( scroller, BorderLayout.CENTER );
//刷新Table
c.validate();
}
catch ( SQLException sqlex ) {
sqlex.printStackTrace();
}
}
private Vector getNextRow( ResultSet rs,
ResultSetMetaData rsmd )
throws SQLException
{
Vector currentRow = new Vector();
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
/***********************************/
//原语名--> currentRow.addElement( rs.getString( i ) ); //新语名但报错,如下
try{
currentRow.addElement(new String(rs.getString( i ).getBytes("ISO8859_1"),"GBK"));
}catch (UnsupportedEncodingException e) {
System.out.println("Error: Method: dbconn.iso2gb :"+e.getMessage());
}
//返回一条记录
return currentRow;
} public void shutDown()
{
try {
//断开数据库连接
connection.close();
}
catch ( SQLException sqlex ) {
System.err.println( "Unable to disconnect" );
sqlex.printStackTrace();
}
} public static void main( String args[] )
{
final JavaOracle app =
new JavaOracle();
app.addWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e )
{
app.shutDown();
System.exit( 0 );
}
}
);
}
}
private void getTable()
{
try {
//执行SQL语句
String query = inputQuery.getText();
statement = connection.createStatement();
resultSet = statement.executeQuery( query );
//在表格中显示查询结果
displayResultSet( resultSet );
}
catch ( SQLException sqlex ) {
sqlex.printStackTrace();
}
}
currentRow.addElement("");
currentRow.addElement("");
}else{
currentRow.addElement(new String(rs.getString( i ).getBytes("ISO8859_1"),"GBK"));
}