首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于数据库查询值的调用有关问题

2013-06-25 
关于数据库查询值的调用问题本帖最后由 ty4z2008 于 2013-06-09 00:45:47 编辑package jwimport java.sql

关于数据库查询值的调用问题
本帖最后由 ty4z2008 于 2013-06-09 00:45:47 编辑


package jw;
import java.sql.*;


public class Jw {
    public static void main(String[] args) {

         String url = "jdbc:oracle:thin:@host:1521:test1";     //test为自己数据库的名字,1521为端口
   String username = "user";
   String password = "pass";

   String driver = "oracle.jdbc.driver.OracleDriver";

   try {
    Class.forName(driver);           //加载驱动

    Connection conn = DriverManager.getConnection(url, username,
      password);                         //连接数据库

    PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM JW.XJ_XJB"); // 预处理命令,比Statement 好一些
    ResultSet rs = pstmt.executeQuery();
    while(rs.next())
    {
        System.out.println(rs.getString(1));
    }
    pstmt.close();                   //关闭连接
    conn.close();

   } catch (ClassNotFoundException e) {
    e.printStackTrace();
   } catch (SQLException e) {
    e.printStackTrace();
   }
   
   
   System.out.println("-------- MySQL JDBC Connection Testing ------------");
 
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("Where is your MySQL JDBC Driver?");
e.printStackTrace();
return;
}
 
System.out.println("MySQL JDBC Driver Registered!");
String myurl = "jdbc:mysql://localhost:3306/test";
        String user = "user";
        String pwd = "pass";
        Connection connection = null;
        String sql = null;
        Statement stmt = null;
        //ResultSet rs = null;

 
try {
connection = DriverManager
.getConnection(myurl,user,pwd);
                stmt = connection.createStatement();
            //我要在这里获取上面ResultSet rs = pstmt.executeQuery(); 的rs.getString(1)数据应该如何获取?


                sql = "INSERT INTO XJ_XJB(XH,XM) VALUES($1,$2)";
               int rs = stmt.executeUpdate(sql);                


                  System.out.println("mysql ok");                  
 
} catch (SQLException e) {
System.out.println("Connection Failed! Check output console");
e.printStackTrace();
return;
}
 
if (connection != null) {
System.out.println("You made it, take control your database now!");
                
                 //System.out.println(tmp);
} else {
System.out.println("Failed to make connection!");
}
   
    }
}

MySQL JDBC Java
[解决办法]
rs.getString(1),是什么类型的数据就用什么函数。

有getInt()……
[解决办法]
获取不到,
1你之前开启的connect作用域在那个花括号中已经结束了
2里面的数据随着你的关闭也已经没有了
你要理解一个概念:当你关闭connect这个东西时候整此链接动作都已经结束就算你没有手动关闭,它的一切PreparedStatement和resultSet也自动关闭了,这也是为什么网上你看到的有些代码写的不严谨的只关闭connect其实只要不出意外这样也算的上是安全,如果想要用之前的查询数据就只能做记录。
此外给你几个建议:
1Class.forName(driver); 这种东西拿到外面的静态语句块里吧
2Connection  Statement ResultSet这些东西用完一定要记得关闭啊,你下面就没关闭,而且上面的关闭不严谨,比如最严谨的当然是从resultset到Statement最后到connection一层一层的关闭期间每次关闭都用try{}catch(Exception e){}finally{}来嵌套,关闭前判断一下是不是空什么的

热点排行