JDBC的几个常用对象


JDBC中常见的对象,实现与业务逻辑层的交互
 * 1、Connection对象:Connection conn = DriverMananger.getConnection(url,username,password);
该对象还可以通过setAutoCommit()、rollback()、commit()进行事务管理,进行事务管理的过程,实际上就是PreparedStatement对象预编译,将事务分配到缓冲区进行。conn.close()关闭连接
 * 2、PreparedStatement对象:PreparedStatement pre = connection.prepareStatement(sql);
对接受的sql语句进行预编译处理,提高与数据库交互的效率。执行sql时,是对sql中的参数(也就是带?号的字段)进行初始化,主要通过PreparedStatement对象的setXXX()方法实现,该方法的第一个参数是指要对sql中第几个参数初始化,第二个参数就是初始化值。执行完后,executeQuery()执行查询,返回的是ResultSet对象,executeUpdate()执行插入或更新。
 * 3、ResultSet对象:ResultSet rs = pre.executeQuery();

结果集对象看成是个表,通过getXXX()方法来实现赋值操作。

下面是从一个项目中截取的实现过程:

	//将提交的订单保存到数据库
	public Forder saveForder(Forder forder) {
		int fid = 0;
		Connection connection = null;
		PreparedStatement pre = null;
		String sql = "INSERT INTO forder(ftotal,fname,fphone,fremark,femail,fpost,uid) VALUES(?,?,?,?,?,?,?)";
		DBConn conns = new DBConn();
		connection = conns.getConnection();
		try {
			//手动事务处理
			connection.setAutoCommit(false);
			pre = connection.prepareStatement(sql);
			//pre.setDate(1, (Date) forder.getFdate());
			pre.setDouble(1, forder.getFtotal());
			pre.setString(2, forder.getFname());
			pre.setString(3, forder.getFphone());
			pre.setString(4, forder.getFremark());
			pre.setString(5, forder.getFemail());
			pre.setString(6, forder.getFpost());
			pre.setInt(7, forder.getUsers().getUid());
			pre.executeUpdate();
			//查询插入订单的主键
			pre = connection.prepareStatement("SELECT @@IDENTITY id FROM forder");
			ResultSet rs = pre.executeQuery();
			if (rs.next()) {
				fid = rs.getInt("id");
			}
			//由于要在同一个事务中,所以要用同一个connection
			for(Sorder sorder : forder.getSorders()){
				sorderImpl.saveSorder(sorder, fid, connection);
			}
			connection.commit();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			try {
				connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		} finally {
			try {
				connection.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return forder;
	}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值