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

📄 connectiondb.java

📁 这是一个网上卖衣服的网站项目
💻 JAVA
字号:

/************************************************************************
 *
 *ConnectionDB提供向数据库查询与插入删除功能(executeQuery()与executeUpdate())
 *用户使用这些方法时就像用PreparedStatement中的方法一样,不同的是我们不用考虑
 *被操作参数的值类型,使用的这两个方法会帮我们自动实现类型的自动识别和转换
 *
 *注意:查询与插入删除函数的参数中如果包含基本类型,则需要把它们包装成包装类
 **************************************************************************/





package mylib;

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

public class ConnectionDB {
	
	/****************************************
	 *executeQuery(String str,Object[] parameter)
	 *用法类似PreparedStatement,str为预编译的SQL语句,parameter[]为?占位符对应的值
	 ******************************************/
	public ResultSet executeQuery(String str,Object[] parameter) {
		
		try {
			con = DriverManager.getConnection(dataSource);
			ps = con.prepareStatement(str);
			for(int i=0;i<parameter.length;i++) {
				/*按照浮点型数据查找*/
				if(Double.class==parameter[i].getClass()) {
					Double temp = (Double)parameter[i];
					ps.setDouble(i+1,temp.doubleValue());
				}
				/*按照整形查找*/
				if(Integer.class==parameter[i].getClass()) {
					Integer temp = (Integer)parameter[i];
					ps.setInt(i+1,temp.intValue());
				}
				/*按照字符类型查找*/
				if(String.class==parameter[i].getClass()) {
					ps.setString(i+1,(String)parameter[i]);
				}
				/*按照日期查找*/
				if(java.sql.Date.class==parameter[i].getClass()) {
					ps.setDate(1,(java.sql.Date)parameter[i]);
				}
			}
			rs = ps.executeQuery();
		}
		catch(Exception ex) {
			System.out.println("***ConnectionDB.executeQuery(String str,Object[] parameter){}中异常***");
			System.out.println("*********************************");
			ex.printStackTrace();
			System.out.println("*********************************");
		}
		return rs;
	}
	 
	/*******************************
	 *executeQuery(String str,Object[] parameter,int TYPE1,int TYPE2)
	 *
	 *******************************/
	public ResultSet executeQuery(String str,Object[] parameter,int TYPE1,int TYPE2) {
		
		try {
			con = DriverManager.getConnection(dataSource);
			ps = con.prepareStatement(str,TYPE1,TYPE2);
			for(int i=0;i<parameter.length;i++) {
				/*按照浮点型数据查找*/
				if(Double.class==parameter[i].getClass()) {
					Double temp = (Double)parameter[i];
					ps.setDouble(i+1,temp.doubleValue());
				}
				/*按照整形查找*/
				if(Integer.class==parameter[i].getClass()) {
					Integer temp = (Integer)parameter[i];
					ps.setInt(i+1,temp.intValue());
				}
				/*按照字符类型查找*/
				if(String.class==parameter[i].getClass()) {
					ps.setString(i+1,(String)parameter[i]);
				}
				/*按照日期查找*/
				if(java.sql.Date.class==parameter[i].getClass()) {
					ps.setDate(1,(java.sql.Date)parameter[i]);
				}
			}
			rs = ps.executeQuery();
		}
		catch(Exception ex) {
			System.out.println("***ConnectionDB.executeQuery(String str,Object[] parameter,int TYPE1,int TYPE2){}中异常***");
			System.out.println("*********************************");
			ex.printStackTrace();
			System.out.println("*********************************");
		}
		return rs;
	}
	/*执行一条完整的查询语句*/
	public ResultSet executeQuery(String str) {
		
		try {
			con = DriverManager.getConnection(dataSource);
			ps = con.prepareStatement(str);
			rs = ps.executeQuery();
		}
		catch(Exception ex) {
			System.out.println("***ConnectionDB.executeQuery(String str){}中异常***");
			System.out.println("*********************************");
			ex.printStackTrace();
			System.out.println("*********************************");
		}
		return rs;
	}
	/*执行一条完整的查询语句,具有给定类型和并发性的 ResultSet 对象,int TYPE1,int TYPE2*/
	public ResultSet executeQuery(String str,int TYPE1,int TYPE2) {
		
		try {
			con = DriverManager.getConnection(dataSource);
			ps = con.prepareStatement(str,TYPE1,TYPE2);
			rs = ps.executeQuery();
		}
		catch(Exception ex) {
			System.out.println("***ConnectionDB.executeQuery(String str,int TYPE1,int TYPE2){}中异常***");
			System.out.println("*********************************");
			ex.printStackTrace();
			System.out.println("*********************************");
		}
		return rs;
	}

	/*******************************
	 *执行executeUpdate(String str,String[] parameter)
	 *用法类似PreparedStatement,str为预编译的SQL语句,parameter[]为?占位符对应的值
	 *******************************/
	public int executeUpdate(String str,Object[] parameter) {
		int rows = 0;
		try {
			con = DriverManager.getConnection(dataSource);
			ps = con.prepareStatement(str);
			//System.out.println(parameter.length);
			for(int i=0;i<parameter.length;i++) {
				/*如果parameter[i]为Double,则把它转换成基本类型存放到数据库*/
				if(Double.class==parameter[i].getClass()) {
					Double temp = (Double)parameter[i];
					ps.setDouble(i+1,temp.doubleValue());
				}
				/*如果parameter[i]为Integer,则把它转换成基本类型存放到数据库*/
				if(Integer.class==parameter[i].getClass()) {
					Integer temp = (Integer)parameter[i];
					ps.setInt(i+1,temp.intValue());
				}
				/*如果parameter[i]为String,则直接存进数据库*/
				if(String.class==parameter[i].getClass()) {
					ps.setString(i+1,(String)parameter[i]);
				}
				/*二进制数据*/
				if(java.io.File.class==parameter[i].getClass()) {
					System.out.println(parameter[i]);
					java.io.File temp = (java.io.File)parameter[i];
					ps.setBinaryStream(i+1,new java.io.FileInputStream(temp),(int)temp.length());
				}
				/*该语句有问题
				if(java.sql.Date.class==parameter[i].getClass()) {
					ps.setDate(i+1,(java.sql.Date)parameter[i]);
				}*/
			}
			rows = ps.executeUpdate();
		}
		catch(Exception ex) {
			System.out.println("***ConnectionDB.executeUpdate(String str,Object[] parameter){}中异常***");
			System.out.println("*********************************");
			ex.printStackTrace();
			System.out.println("*********************************");
		}
		return rows;
	}
	/*执行一条完整的插入删除语句*/
	public int executeUpdate(String str) {
		int rows = 0;
		try {
			con = DriverManager.getConnection(dataSource);
			ps = con.prepareStatement(str);
			rows = ps.executeUpdate();
		}
		catch(Exception ex) {
			System.out.println("***ConnectionDB.executeUpdate(String str){}中异常***");	
			System.out.println("*********************************");
			ex.printStackTrace();
			System.out.println("*********************************");
		}
		return rows;
	}
	
	
	/*************************************
	 *释放数据库连接资源
	 *************************************/
	public void close() {
		try {
			if(ps!=null) {
				ps.close();
			}
			if(con!=null) {
				con.close();
			}
		}
		catch(Exception ex) {
			System.out.println("***ConnectionDB.close(){}中异常***");
			System.out.println("*********************************");
			ex.printStackTrace();
			System.out.println("*********************************");
		}
	}
	
	
	
	private Connection con = null;
	private String dataSource = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ClothingShop;user=sa;password=loveying";
	private PreparedStatement ps = null;
	private ResultSet rs = null;
	
	/*类定义文件被装载时装载Jdbc-Odbc桥接驱动到JVM*/
	static {
		try {
			Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
		}
		catch(ClassNotFoundException cnex) {
			System.out.println("***装载数据库驱动\"sun.jdbc.odbc.JdbcOdbcDriver\"时异常***");
			System.out.println("*********************************");
			cnex.printStackTrace();
			System.out.println("*********************************");
		}
	}
	
	/***************************************
	 *测试用的main()
	 ******************************************/
	public static void main(String[] args) {

	}
	
}

⌨️ 快捷键说明

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