java之JDBC

109 阅读2分钟

JDBC(java database connectivity) 简而言之就是用java代码来操作数据库,我今天教大家用6步是掌握JDBC。

在开始之前,先下载java驱动,在IDEA中新建一个项目,然后新建一个lib文件夹,将下载好的驱动放入lib文件夹中,然后选中lib文件夹右键"Add as Library",点击OK。

第一步:加载驱动。

Class.forName("com.mysql.jdbc.Driver");

这一步就是将刚才加入进来的驱动用java代码加载一下。

第二步:获取connection连接对象。

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/vote?characterEncoding=utf-8&useSSL=false&serverTimezone=GMT&allowPublicKeyRetrieval=true","root","123456");

3306是mysql的端口号,后面的vote是数据库名,?后面可以复制粘贴,root对应的value是数据库密码。

第三步:建立执行SQL对象

Statement statement = connection.createStatement();

第四步:执行SQL语句

String sql = "delete from movie where votes = 2";
int result = statement.executeUpdate(sql);
String sql1 = "select * from movie";
ResultSet resultSet =  statement.executeQuery(sql1);

executeUpdate负责的是数据库增删改的功能,executeQuery负责的是数据库查询功能

第五步:处理查询结果

if (result>0){
    System.out.println("执行成功");
}else {
    System.out.println("执行失败");
}
while (resultSet.next()){
    String name = resultSet.getString("name");
    int i = resultSet.getInt(1);
    System.out.println("name="+name+"i="+i);
}

如果是executeUpdate返回的是一个Int类型,如果操作成功就会有数据,如果没有成功就没有;如果是executeQuery返回的则是一个ResultSet类,里面有一个具体的方法就是next方法,查询是否下一条数据。在resultSet中还有方法可以查询具体的值,getInt和getString,就是相应的读取整型和字符串型,这里就需要看数据库存储的时候是什么数据类型了,在这两个方法里面可以传入具体的字段名,也可以传入数据列,注意,这里数据列就不是像索引一样了,是从1开始的。

第六步:释放资源

statement.close();
preparedStatement.close();
connection.close();

补充:preparedStatement

在建立执行SQL语句时我们可以不仅可以创建statement对象,还可以建立preparedStatement对象,prepareadStatement继承了statement接口,不过会预编译,同时,还会在执行SQL语句时灵活,可以通过setInt和setString方法来设置SQL语句,相比较statement会灵活。

String sql2 = "select * from movie where votes = ? or name = ?";
PreparedStatement preparedStatement = connection.prepareStatement(sql2);
preparedStatement.setInt(1, 0);
preparedStatement.setString(2, "追龙");


ResultSet resultSet1 = preparedStatement.executeQuery();