⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basedao.java

📁 该源码为java购物车项目源码
💻 JAVA
字号:
package www.mary.database;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


//
public class BaseDAO implements DBsource{

	
	//设置全局性变量,以便后面的程序好调用
	
	  static Connection conn=null;    //连接   
	  static Statement st=null;       //状态
	  static ResultSet rs=null;       //结果集合

	  static PreparedStatement ps=null;
	  static CallableStatement cs=null;
	
	  //对数据库操作:
	  //1,注入驱动,
	  //2,建立连接
	  //3,开辟状态通道
	  //4,得到结果集合
	  
	  public BaseDAO(){
		  
		  try {
			Class.forName(DriverName).newInstance();   //注入驱动
		} catch (InstantiationException e) { 
			
			e.printStackTrace();
		} catch (IllegalAccessException e) {
		
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
		
			e.printStackTrace();
		}
		  
	  }
	  
//-----------------------------------------------------------------------------

	  //2,建立数据库连接,
	  public static void getConn(){
		  try {
			conn=DriverManager.getConnection(url,username,password);
		    
		  } catch (SQLException e) {
		
			e.printStackTrace();
		}
		  
	  }

//-----------------------------------------------------------------------------

	  //3,建立状态通道。
	  public static void getStatment(){
	   try {
		st=conn.createStatement();
	   } catch (SQLException e) {
		e.printStackTrace();
	   }
		 
	  }
	  private static void GetStatement(){
		  try{
		  if(conn==null||conn.isClosed()){
			  getConn();
		  }
		  st=conn.createStatement();
		  }catch(Exception e){
			 e.printStackTrace();
		  }
	  }
	
//-----------------------------------------------------------------------------

	  //A:建立一个通用的查询方法
	  public static ResultSet executeQuery(String sql){
		  GetStatement();           //注意这里的建立状态通道不必再生成Basedao实例,因为他是static类型的方法,不依赖于实例就可以使用
		  try {
			rs=st.executeQuery(sql);//传递sql语句,得到查询的结果集合
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
       /**  ---这里犯了各错误,大家可以试验以下,结果集要是在这里关闭了,那么我们后续掉查询方法
        * 会出错
		finally{
			Close();                //关闭资源
			
	     }
	    * 
	    */	
		
		return rs;
		  
		  
	  }
	  
//	-----------------------------------------------------------------------------

	  //关闭使用的资源
	  public static void Close(){
		  try{
		  if(rs!=null)rs.close();     //如果结果集没关,就先关他
		  if(st!=null)st.close();     //再关闭状态通道
		  if(conn!=null)conn.close(); //再关闭连接
		 
		 
		  }catch(Exception e){
			  e.printStackTrace();
		  }
	  }
//-----------------------------------------------------------------------------
	  //Resultst里不单单方的是记录,而且还可以得到查询这个表字段的所有的详细信息:rmd=rs.getMatedata
	 //也就是rmd中得到了所查询字段的所有详细信息
//	  public static void query2()
//	   {
//	    TestDatabase testdatabase=new TestDatabase();
//	    String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=new";       //1,建立连接的路径
//	   try {
//	     Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();//2,注入sqlserver驱动,并生成一个实例
//	     Connection conn = DriverManager.getConnection(url, "sa", "");              //3,建立数据库连接
//	     Statement st=conn.createStatement();                                      //4,开辟连接通道
//	     ResultSet rs=st.executeQuery("select * from dept where 1=1");            //5,传递sql语句到状态通道,在数据库里查询,并返回结果集到ResultSet!
//
//	     ResultSetMetaData rmd=rs.getMetaData();          //得到所查询表里字段的所有详细信息
//	     int sumcount=rmd.getColumnCount();               //得到表里字段的个数
//	     for(int i=1;i<sumcount;i++)
//	     {
//	       String columnname=rmd.getColumnName(i);        //得到字段的名称
//	       String columntype=rmd.getColumnTypeName(i);     //得到字段的类型名称
//	       int columnscale=rmd.getScale(i);                //得到字段的精确度
//	       int columnlength=rmd.getColumnDisplaySize(i);   //得到长度
//	       System.out.println(columnname+"---"+columntype+"---"+columnscale+"---"+columnlength);
//	     }
//	     rs.close();                                      //关闭通道,节省资源
//	     st.close();
//	     conn.close();
//
//	   }
//	   catch (ClassNotFoundException ex) {
//	   }
//	   catch (IllegalAccessException ex) {
//	   }
//	   catch (InstantiationException ex) {
//	   }  catch (SQLException ex1) {
//	     }
//
//
//	   }

//	-----------------------------------------------------------------------------


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -