当前位置:编程学习 > JAVA >>

查询方法

package com.lz.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.lz.model.Tboperater;
import com.lz.model.Tbso;

public class Dao {

 protected static String dbClassName = "net.sourceforge.jtds.jdbc.Driver";
 protected static String dbUrl = "jdbc:jtds:sqlserver://localhost:1433;"
   + "DatabaseName=db_003;SelectMethod=Cursor";
 protected static String dbUser = "sa";
 protected static String dbPwd = "";
 protected static String second = null;
 public static Connection conn = null;
 static {
  try {
   if (conn == null) {
    Class.forName(dbClassName).newInstance();
    conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
   }
  } catch (Exception ee) {
   ee.printStackTrace();
  }
 }
 private Dao() {
 }
 //新增方法
 private static boolean insert(String sql){
  boolean result = false;
  try{
   if(conn == null) new Dao();
   Statement stmt = conn.createStatement();
   result = stmt.execute(sql);
  }catch(Exception e){
   e.printStackTrace();
  }
  return result;
 }
 //修改方法
 private static int update(String sql){
  int result = 0;
  try{
   if(conn == null) new Dao();
   Statement stmt = conn.createStatement();
   result = stmt.executeUpdate(sql);
  }catch(Exception e){
   e.printStackTrace();
  }
  return result;
 }
 //删除方法
 private static int delete(String sql){
  return update(sql);
 }
 //查询方法
 
 private static ResultSet query(String sql) {  //查询方法
  if (conn == null)
   return null;
  ResultSet rs = null;
  try {
   Statement stmt = null;
   stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
     ResultSet.CONCUR_READ_ONLY);
   rs = stmt.executeQuery(sql);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return rs;
 }
 
 //关闭方法
 private static void close(){
  try{
   conn.close();
  }catch(Exception e){
   e.printStackTrace();
  }
 }
 //读取用户方法
 public static Tboperater selectUser(String nameno,String password){
  Tboperater tboperater = new Tboperater();
  String sql = "select * from tb_operater where nameno='" + nameno + "' and password='" 
   + password + "'";
  ResultSet rs = Dao.query(sql);
  try{
   if(rs.next()){
    tboperater.setNameno(rs.getString("nameno"));
    tboperater.setPassword(rs.getString("password"));
    
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
  Dao.close();
  return tboperater;
 }
 
 public  static List selecttbso(){
  List list = new ArrayList();
  String sql = "select * from hyso11";
  ResultSet rs = Dao.query(sql);
  try{
   if(rs.next()){
    Tbso tbso = new Tbso();
    tbso.setOs_dd(rs.getDate("os_dd"));
    tbso.setOs_no(rs.getString("os_no"));   
    tbso.setName(rs.getString("name"));
    tbso.setPrd_no(rs.getString("prd_no"));
    tbso.setPrd_name(rs.getString("prd_name"));
    tbso.setSpc(rs.getString("spc"));
    tbso.setQty(rs.getDouble("qty"));
    tbso.setQty_ps(rs.getDouble("qty_ps"));
    tbso.setUp(rs.getDouble("up"));
    tbso.setCus_os_no(rs.getString("cus_os_no"));
    tbso.setEst_dd(rs.getDate("est_dd"));
    tbso.setChk_man(rs.getString("chk_man"));
    tbso.setCls_id(rs.getString("cls_id"));
    list.add(tbso);
   }
  }catch(Exception ee){
   ee.printStackTrace();
  }
  return list;
 }
 
}




提示:  就是对应上面红色部分

java.sql.SQLException: Invalid state, the Connection object is closed.
 at net.sourceforge.jtds.jdbc.ConnectionJDBC2.checkOpen(ConnectionJDBC2.java:1634)
 at net.sourceforge.jtds.jdbc.ConnectionJDBC2.createStatement(ConnectionJDBC2.java:2250)
 at com.lz.dao.Dao.query(Dao.java:71)
 at com.lz.dao.Dao.selecttbso(Dao.java:110)
 at com.lzw.pos.JXCFrame.<init>(JXCFrame.java:99)
 at com.lzw.login.Login$buttonEnterListener.actionPerformed(Login.java:70)
 at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
 at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
 at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
 at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
 at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
 at java.awt.Component.processMouseEvent(Component.java:6263)
 at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
 at java.awt.Component.processEvent(Component.java:6028)
 at java.awt.Container.processEvent(Container.java:2041)
 at java.awt.Component.dispatchEventImpl(Component.java:4630)
 at java.awt.Container.dispatchEventImpl(Container.java:2099)
 at java.awt.Component.dispatchEvent(Component.java:4460)
 at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
 at java.awt.Container.dispatchEventImpl(Container.java:2085)
 at java.awt.Window.dispatchEventImpl(Window.java:2475)
 at java.awt.Component.dispatchEvent(Component.java:4460)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
 at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
 at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
java.lang.NullPointerException
 at com.lz.dao.Dao.selecttbso(Dao.java:112)
 at com.lzw.pos.JXCFrame.<init>(JXCFrame.java:99)
 at com.lzw.login.Login$buttonEnterListener.actionPerformed(Login.java:70)
 at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
 at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
 at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
 at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
 at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
 at java.awt.Component.processMouseEvent(Component.java:6263)
 at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
 at java.awt.Component.processEvent(Component.java:6028)
 at java.awt.Container.processEvent(Container.java:2041)
 at java.awt.Component.dispatchEventImpl(Component.java:4630)
 at java.awt.Container.dispatchEventImpl(Container.java:2099)
 at java.awt.Component.dispatchEvent(Component.java:4460)
 at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
 at java.awt.Container.dispatchEventImpl(Container.java:2085)
 at java.awt.Window.dispatchEventImpl(Window.java:2475)
 at java.awt.Component.dispatchEvent(Component.java:4460)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
 at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
 at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

--------------------编程问答-------------------- if (conn == null) 你只判断他是否为空 但是连接已经关掉了
但是内存并没释放掉 所以出了你这个错
你还是在网上搜下别人整理的额 JDBC连接工具类吧
你的写的比较零散 从始至终没见一个finally --------------------编程问答-------------------- 楼上说的基本正确,静态连接对象关闭之后内存并没有释放掉。如果一定要加判断可以这样:
if(conn == null || conn.isClosed()) new Dao();
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,