JDBC是什么
JDBC是Java访问数据库的解决方案。
JDBC定义了一套标准接口,即访问数据库的通用API,不同的数据库厂商根据各自数据库的特点去实现这些接口。
JDBC工作原理
- 将驱动包放到项目中,加载驱动,通过反射完成驱动类的注册
//加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
- 获取Connection连接:根据URL连接参数找到匹配的Driver对象,然后获取连接
//获取Connection链接
String url="jdbc:mysql://localhost:3306/xuexiao?serverTimezone=GMT";
String user="root";
String password="******";
Connection conn = DriverManager.getConnection(url, user, password);
- 创建Statement执行SQL语句
增删改:调用executeUpdate(sql),返回值为int类型;
查:调用executeQuery(sql),返回ResultSet;
//创建Statement对象
Statement stat = conn.createStatement();
//新增一个学生对象
String sql="insert into student(sname,ssex,birthday,classid)values('侠侠','女','1998-9-9',3)";
//执行sql
int ret = stat.executeUpdate(sql);
if(ret>0) {
System.out.println("成功");
}else {
System.out.println("失败");
}
//释放资源
stat.close();
conn.close();
//全查学生
String sql="select * from student";
ResultSet rs = stat.executeQuery(sql);
-
返回ResultSet查询结果
在执行查询的sql语句时,返回的是ResultSet结果集,需要对结果集进行解析,一般是对其进行遍历。1.ResultSet.next()方法用来判断下一个数据是否为空;
2.ResultSet.getXXX(***)方法用来取得字段的内容;1) get后是将要获取字段的类型 2) 参数有两种: 一种是columnIndex,字段的索引,如果选用此参数需要注意数据库索引是从1开始的,且在获取数据时,要按照索引顺序递增,否则会报错。 另一种是:columnLabel,字段名,选择此参数不用讲究顺序,较为方便直接。
String sql="select * from student";
ResultSet rs = stat.executeQuery(sql);
if(rs!=null) {
while(rs.next()) {
//参数为索引:rs.getInt(columnIndex)
// int sid = rs.getInt(1);
// String sname = rs.getString(2);
//参数为字段名:rs.getInt(columnLabel)
int sid = rs.getInt("sid");
String sname = rs.getString("sname");
String ssex = rs.getString("ssex");
Date birthday = rs.getDate("birthday");
int classid = rs.getInt("classid");
System.out.println(sid+""+sname+""+ssex+""+birthday+""+classid);
}
}
- 释放资源
在进行资源释放时需要注意先后顺序,先创建的资源要后释放,后创建的要先释放,这样可以保证资源的有效性和数据的完整性。