JDBC(知识复习)

JDBC是一套访问数据库的接口,具体的实现需要不同的数据库厂家来实现。(Java多态的体现)

JDBC连接数据库的步骤

(1)加载驱动

(2)连接数据库

(3)使用语句操作数据库

(4)关闭数据库连接,释放资源

Statement 接口实现数据库的增删改,不过开发的时候一般使用PreparedStatement,

所谓的JDBC其实就是(Java DataBase Connectivity),主要是用来连接数据库的接口,内容不多,趁着有时间复习一下,时间长了都忘了。

它涉及的Java API主要是java.sql.* 和javax.sql.*,这个包我开始以为在mysql-connector.jar内,哈哈,怎么会在哪里呢,经过调查,这两个包在D:\Pro_ware\jre1.8.0\lib\rt.jar内

原来,好多常用的包都在这个jar包里面,以下是截图。

连接数据库用的是DriverManager.getConnection(dbUrl, dbUsername, dbPassword);

当然,你之前需要用反射加载驱动,Class.forName(jdbcName)

连接成功数据库之后,就可以利用Statement接口传入sql语句,进行数据库的操作CRUD.一般情况下,推荐用PreparedStatement接口进行预编译,这样可以让SQL拥有参数,防止SQL注入。而CallableStatement可以进行数据库存储过程(procedure)的调用。给出示例demo如下:

public class PreStatDemo {
	
	private static DbUtil dbUtil = new DbUtil();
	
	public static int updateStudent(Student student)throws Exception{
		Connection con =dbUtil.getCon();
		String sql = "update t_student set stuName=?,nickName=?,address=?,sex=?,rank=? where id=? ";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, student.getStuName());
		pstmt.setString(2, student.getNickName());
		pstmt.setString(3, student.getAddress());
		pstmt.setString(4, student.getSex());
		pstmt.setInt(5, student.getRank());
		pstmt.setInt(6, student.getId());
		int result = pstmt.executeUpdate();
		return result;
	}
}

这是一个简单的更新操作,result返回成功执行的条数。而执行CRUD中的Retrieve检索会有稍许不同,但都差不多。无非是ResultSet接口来接收查询结果,贴出代码来看看。

public static void listStudent()throws Exception{
		Connection con  = dbUtil.getCon();
		String sql = "select * from t_student";
		PreparedStatement pstmt = con.prepareStatement(sql);
		ResultSet rs =pstmt.executeQuery();
		while(rs.next()){
			int id = rs.getInt("id");
			String stuName = rs.getString("stuName");
			String nickName = rs.getString("nickName");
			String address = rs.getString("address");
			String sex = rs.getString("sex");
			int rank = rs.getInt("rank");
			System.out.println(stuName +" "+ nickName+" "+ " "+ address);
			
		}
		
	}

对啦,还有execute、executeQuery和executeUpdate的区别也添加一下。大概基础就这些,以后再补。

  • executeQuery 只执行查 (select语句)
  • executeUpdate 执行 增删改  (insert或者update/delete语句,)
  • execute 执行 增删改查
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值