java数据库操作JDBC

JDBC:使用 Java 应用程序“操作”数据库的一门技术

1.获取数据库连接

   //获取数据库的连接
     public static Connection getConnection() throws Exception{
  //1.获取数据库连接的基本信息
       //1.1 创建 Properties 的对象,以流的形式,将配置文件中的基本信息读入程序
               Properties info = new Properties();
               info.load(new FileInputStream("jdbc.properties"));
       //1.2 提供 4 个基本信息:url、driverClass、user、password
               String url = info.getProperty("url");
               String driverClass = info.getProperty("driverClass");
               String user = info.getProperty("user");
               String password = info.getProperty("password");
   //2.加载驱动
               Class.forName(driverClass);
   //3.使用 DriverManager 的 getConnection(url,user,password)方法
               Connection conn = DriverManager.getConnection(url, user, password);

2.Statement 与 与 ResultSet

   //通用的 INSSERT UPDATE DELETE 方法
 


	public void update(String sql) {
		// 1.获取数据库的连接
		Connection conn = null;
		Statement st = null;
		try {
			conn = JDBCUtils.getConnection();
			// 2.提供一个 Statement 对象,将 sql 传递给数据库中执行
			st = conn.createStatement();
			st.execute(sql);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 3.关闭 Statement 对象及连接
			JDBCUtils.close(null, st, conn);
		}
	}

	// 通用的查询方法,返回一个对象(version 1.0)
	public <T> T get(String sql, Class<T> clazz) {
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		T t = null;
		try {
		t = clazz.newInstance();
		conn = JDBCUtils.getConnection();
		st = conn.createStatement();
		rs = st.executeQuery(sql);
		/*
		* 通过ResultSet调用getMetaData()返回一个结果集的元数据:ResultSetMetaData
		*
		* 1.getColumnCount():返回结果集的列数
		* 2.getColumnLabel():返回列的别名
		*/
		ResultSetMetaData rsmd = rs.getMetaData();
		int columnCount = rsmd.getColumnCount();
		if (rs.next()) {
		for (int i = 0; i < columnCount; i++) {
		Object columnVal = rs.getObject(i + 1);// 相应列的值
		//String columnName = rsmd.getColumnName(i + 1);
		String columnName = rsmd.getColumnLabel(i + 1);
		//使用 PropertyUtils 将指定对象 t 的指定属性 columnName 设置为指定的值
		columnVal
		PropertyUtils.setProperty(t, columnName, columnVal);
		}
		}
		} catch (Exception e) {
		e.printStackTrace();
		} finally {
		JDBCUtils.close(rs, st, conn);
		}
		return t;
		}

	// 通用的返回多个对象的查询操作(version 1.0)
	public <T> List<T> getInstances(String sql,Class<T> clazz){
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		List<T> list = new ArrayList<T>();
		try {
		conn = JDBCUtils.getConnection();
		st = conn.createStatement();
		rs = st.executeQuery(sql);
		/*
		* 通过ResultSet调用getMetaData()返回一个结果集的元数据:ResultSetMetaData
		*
		* 1.getColumnCount():返回结果集的列数
		* 2.getColumnLabel():返回列的别名
		*/
		ResultSetMetaData rsmd = rs.getMetaData();
		int columnCount = rsmd.getColumnCount();
		while (rs.next()) {
		T t = clazz.newInstance();
		for (int i = 0; i < columnCount; i++) {
		Object columnVal = rs.getObject(i + 1);// 相应列的值
		//String columnName = rsmd.getColumnName(i + 1);
		String columnName = rsmd.getColumnLabel(i + 1);
		//使用 PropertyUtils 将指定对象 t 的指定属性 columnName 设置为指定的值
		columnVal
		PropertyUtils.setProperty(t, columnName, columnVal);
		}
		list.add(t);
		}
		} catch (Exception e) {
		e.printStackTrace();
		} finally {
		JDBCUtils.close(rs, st, conn);
		}
		return list;
		}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值