博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
execute executeQuery executeUpdate三种的分别封装使用
阅读量:5739 次
发布时间:2019-06-18

本文共 5192 字,大约阅读时间需要 17 分钟。

hot3.png

package com.zhao.practice727_1;import java.util.Iterator;import java.util.List;import java.util.Map;/** * 测试类 *   Administrator * */public class TestDBPreStat {	/**	 * @param args	 */	public static void main(String[] args) {		new TestDBPreStat().testExecute();	}		/**	 * 测试通过execute来查询数据	 */	public void testExecute(){		DBPreparedStatement db = new DBPreparedStatement();		String sql = "select name ,score from test2 where id = ?";		Object[] arrays = {10};		Object object =  db.getDataByExecute(sql, arrays);						if(object instanceof List){			List list = (List)object;						for (Object obj : list) {				Map map = (Map)obj;				Iterator it = map.keySet().iterator();				while(it.hasNext()){					String key =  (String) it.next();					String value = (String) map.get(key);					System.out.println(key +"    "+value);				}							}		}				db.close();	}			//	/**//	 * 测试通过executeQuery或executeUpdate来查询数据//	 *///	public void method1(){//		DBPreparedStatement db = new DBPreparedStatement();//		String sql = "select name ,score from test2 where id = ?";//		Object[] arrays = {10};//		List list = db.getDataBySQL(sql, arrays);//		//		//		for (Object object : list) {//			Map map = (Map)object;//			Iterator it = map.keySet().iterator();//			while(it.hasNext()){//				String key =  (String) it.next();//				String value = (String) map.get(key);//				System.out.println(key +"    "+value);//			}//			//		}//		db.close();//	}	}

package com.zhao.practice727_1;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List;import java.util.Map;/** * PreparedStatement工具类 *   Administrator * */public class DBPreparedStatement {	/**	 * 驱动字符串	 */	private static final String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动	/**	 * 连接数据库的URL	 */	private static final String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=Zhao722"; // 连接服务器和数据库Zhao722	/**	 * 用户名字符串	 */	private static final String USER= "sa";	/**	 * 密码字符串	 */	private static final String PASSWORD = "zhao";	/**	 * 数据库连接	 */	Connection conn = null;	/**	 * PreparedStatement	 */	PreparedStatement pstat = null;	/**	 * 结果集ResultSet	 */	ResultSet rs = null;		static {		try {			Class.forName(driverName);		} catch (ClassNotFoundException e) {			e.printStackTrace();		}	}	/**	 * 获取数据库连接	 *  	 */	private Connection getConnection(){		try {						conn = DriverManager.getConnection(dbURL, USER, PASSWORD);//			System.out.println(conn);			return conn;		} catch (SQLException e) {						e.printStackTrace();		}		return null;	}	/**	 * 获得PreparedStatement对象	 * @param sql sql语句	 *   PreparedStatement	 */	private PreparedStatement getPreparedStatement(String sql){		try {			pstat = getConnection().prepareStatement(sql);			System.out.println(sql);			return pstat;		} catch (SQLException e) {						e.printStackTrace();		}		return null;	}	/**	 * 获得结果集	 * @param arrays 传入的参数数组	 * @param sql sql语句	 *   ResultSet	 */	private ResultSet getResultSet(String sql , Object[] arrays){		pstat = getPreparedStatement(sql);				try {			//设置参数			for (int i = 0; i < arrays.length; i++) {				pstat.setObject(i+1, arrays[i]);			}			//开始查询			rs = pstat.executeQuery();			return rs;		} catch (SQLException e) {						e.printStackTrace();		}		return null;	} 	/**	 * 增删改查的操作	 * @param sql sql语句	 * @param arrays 传入的参数数组	 *   int	 */	private int getDataByUpdate(String sql , Object[] arrays){		pstat = getPreparedStatement(sql);				try {			//设置参数			for (int i = 0; i < arrays.length; i++) {				pstat.setObject(i+1, arrays[i]);			}			//开始增删改查操作			int i = pstat.executeUpdate();			return i;		} catch (SQLException e) {						e.printStackTrace();		}		return 0;	}		/**	 * 对结果集进行处理	 * @param sql sql语句	 * @param arrays 传入的参数数组	 *   List	 */	private List getDataBySQL(String sql , Object[] arrays){		List list = new ArrayList();		try{						rs = getResultSet(sql, arrays);			//对结果集进行处理			while(rs.next()){				//定义Map来保存每行对应的每列的值				Map map = new HashMap();								//结果集元数据				ResultSetMetaData rsmd = rs.getMetaData();				for(int i= 1;i <= rsmd.getColumnCount();i++){					map.put(rsmd.getColumnName(i), rs.getObject(i));				}				//添加map到集合中				list.add(map);			}			return list;					}catch(SQLException e){			e.printStackTrace();		}		return null;	}		/**	 *执行execute语句 	 */	public Object getDataByExecute(String sql , Object[] arrays){		int line = 0;		boolean hasResultSet = false;		pstat = getPreparedStatement(sql);		try {			//设置参数			for (int i = 0; i < arrays.length; i++) {				pstat.setObject(i+1, arrays[i]);			}			//开始查询			hasResultSet = pstat.execute();						if(hasResultSet){				return getDataBySQL(sql, arrays);			}else{					line = pstat.getUpdateCount();					return line;			}											} catch (SQLException e) {						e.printStackTrace();		}				return null;	}		/**	 * 关闭所有打开的数据库连接	 */	public void close(){		try{			if(rs != null){				rs.close();			}			if(pstat != null){				pstat.close();			}			if(conn != null){				conn.close();			}		}catch(SQLException e){			e.printStackTrace();		}	}}

转载于:https://my.oschina.net/u/586106/blog/69356

你可能感兴趣的文章
Javascript String类的属性及方法
查看>>
[LeetCode] Merge Intervals
查看>>
SharePoint 读取 Site Columns 的数据并绑定到DropdownList
查看>>
使用 axios 详解
查看>>
第 68 章 Logical Volume Manager (LVM)
查看>>
IPA提交APPStore问题记录(一)
查看>>
有利于seo优化的网站地图不能取巧
查看>>
快照产品体验优化
查看>>
ASCII
查看>>
ibatis SqlMap not found
查看>>
Android SD卡创建文件和文件夹失败
查看>>
Ubuntu 14.04 vsftp refusing to run with writable root inside chroot问题解决方法
查看>>
Intellij IDEA远程调试tomcat
查看>>
hadoop的学习论坛
查看>>
Struts2 学习小结
查看>>
烂泥:wordpress迁移到docker
查看>>
.扒渣机的性能及优势 
查看>>
Linux下磁盘保留空间的调整,解决df看到的空间和实际磁盘大小不一致的问题
查看>>
RSA 生成公钥、私钥对
查看>>
测试工具综合
查看>>