Java基础学习到进阶自我总结

2020-01-14

sql语句占位符的使用和操作

占位符赋值

	/*
	 * 占位符?:在sql语句中占据了赋值的位置,有一定顺序
	 */

	//传参到sql语句中
	public static void main(String[] args) {
		
		
		String sql="update t_school set name=?,address=? where id=?";
		
		
		
		try {
			//获取连接(调用DbUtil工具类的getConn())
			Connection conn = DbUtil.getConn();
			//创建数据库操作对象
			PreparedStatement pstm = conn.prepareStatement(sql);//编译sql语句
			//对占位符进行赋值
			pstm.setString(1, "我是更新后的学校");//'1'表示sql语句中第1个'?'
			pstm.setString(2, "我是更新后学校的地址");//'2'表示sql语句中第2个'?'
			pstm.setInt(3, 11);//'3'表示sql语句中第3个'?'
			int i = pstm.executeUpdate();//返回执行成功sql语句的条数i
			System.out.print("执行");
			if (i>0) {
				System.out.println("成功");
			}else {
				System.out.println("失败");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

查询返回结果集

	//返回查询结果集
	public static void main(String[] args) {
		String sql = "select name,student_no,sex from t_student";//sex在数据库中男是1,女是2
		
		try {
			Connection conn = DbUtil.getConn();
			PreparedStatement pstm = conn.prepareStatement(sql);
			ResultSet rs = pstm.executeQuery();
			while(rs.next()){//遍历executeQuery方法返回的结果集
				String name = rs.getString("name");
				String stuNum = rs.getString("student_no");
				int sexNum = rs.getInt("sex");
				System.out.println("姓名:"+name+",学号:"+stuNum+",性别:"+(sexNum==1?"男":"女"));//性别用到三元运算符,sexNum==1就为'男'否则为'女'
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}

Oracle存储过程的调用和传参


	public static void main(String[] args) {
		String sql = "call pro_stu_con(?,?)";
		try {
			//获取连接
			Connection conn = DbUtil.getConn();
			//创建操作数据库的对象
			CallableStatement cstm = conn.prepareCall(sql);
			
			//如果是传入的参数,就直接赋值(跟propareStatement的操作一样)
			cstm.setString(2, "2");

			//接收传出来的参数需要进行注册
			cstm.registerOutParameter(1,Types.NUMERIC);//1表示sql语句中第1个'?',第二个参数是传出参数的数据类型
			
			//执行操作
			cstm.execute();
			
			//获取传出的值
			int con = cstm.getInt(1);//1表示上面注册的位置
			System.out.println("存储过程调用完成!");
			System.out.println("女生人数:"+con);
			cstm.close();
			conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值