加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Java JDBC基础学习小结

发布时间:2021-05-21 06:56:48 所属栏目:大数据 来源: https://www.jb51.cc
导读:JDBC是一个Java应用程序接口,作用是封装了对数据库的各种操作。JDBC由类和接口组成,使用Java开发数据库应用都需要4个主要的接口:Driver、Connection、Statement、ResultSet,这些接口定义了使用sql访问数据库的一般架构。 1、JDBC相关类和API JDBC是一个J

JDBC是一个Java应用程序接口,作用是封装了对数据库的各种操作。JDBC由类和接口组成,使用Java开发数据库应用都需要4个主要的接口:Driver、Connection、Statement、ResultSet,这些接口定义了使用sql访问数据库的一般架构。  

1、JDBC相关类和API

JDBC是一个Java应用程序接口,作用是封装了对数据库的各种操作。JDBC由类和接口组成,使用Java开发数据库应用都需要4个主要的接口:Driver、Connection、Statement、ResultSet,这些接口定义了使用sql访问数据库的一般架构。

  • Driver接口

Driver接口是所有JDBC程序必须实现的接口,该接口专门提供给数据库厂商使用。编写JDBC程序时,必须制定数据库驱动程序或类库加载到项目classpath中。

  • DriverManager类

DriverManager用于加载JDBC驱动并创建与数据库的连接。其中定义了2个重要的静态方法:

1 DriverManager.registerDriver(Driver driver) // 用于向DeriverManager注册给定的JDBC驱动程序
2 DriverManager.getConnection(String url,String user,String pwd)  建立与数据库的连接,返回表示连接的Connection对象
  • Connection接口

Connection代表与数据库的连接,其中定义了一系列的方法:

1 Connection.getMetaData();  返回表示数据库元数据的DatabaseMetaData对象
2 Connection.createStatement();  创建一个Statement对象
3 Connection.prepareStatement(String sql);  创建一个PreparedStatement对象
4 Connection.prepareCall(String sql);  创建一个CallableStatement对象来调用数据库存储过程
  • Statement接口

Statement接口用于向数据库发送sql语句。

1 Statement.execute(String sql);  执行各种sql语句,返回一个boolean类型值,true表示执行的sql语句具备查询结果,可通过Statement.getResultSet()方法获取
2 Statement.executeUpdate(String sql);  执行sql中的insert/update/delete语句,返回一个int值,表示受影响的记录的数目
3 Statement.executeQuery(String sql);  执行sql中的select语句,返回一个表示查询结果的ResultSet对象

?

  • ResultSet接口
1 ResultSet.next();  将游标由当前位置移动到下一行
2 ResultSet.getString(String columnName);  获取指定字段的String类型值
3 ResultSet.getString(int columnIndex);  获取指定索引的String类型值
4 ResuleSet.prevIoUs();  将游标由当前位置移动到上一行

?

2、程序示例

数据库IP 192.168.1.150,数据库名称为test,数据表名称persion,表结构为:

?表中原有数据

JDBC连接MysqL程序示例

 1 package server;
 2 
 3 import java.sql.Connection;
 4  java.sql.DriverManager;
 5  java.sql.ResultSet;
 6  java.sql.Statement;
 7 
 8 public class DemoJDBC {
 9     static void main(String[] args) throws Exception {
10          加载驱动类
11         Class.forName("com.MysqL.jdbc.Driver");
12         
13          通过DriverManager获取数据库连接
14         String url = "jdbc:MysqL://192.168.1.150/test";
15         String user = "teamtalk"16         String password = "123456"17         Connection connection = (Connection) DriverManager.getConnection(
18                 url,user,password);
19         
20          通过Connection对象获取Statement对象、Statement执行sql语句
21         Statement statement = (Statement) connection.createStatement();  
22         ResultSet resultSet = statement.executeQuery("select * from persion"23         
24          操作ResultSet结果集
25         while (resultSet.next()) {
26              第一种获取字段方式
27             System.out.println(resultSet.getString(1) + " " + 
28                     resultSet.getString(2) + " " + resultSet.getString(3));
29             System.out.print("---- "30              第二种获取字段方式
31             System.out.println(resultSet.getString("id") + " " +
32                     resultSet.getString("name") + " " + resultSet.getString("age"33         }
34         
35         int ret = statement.executeUpdate("insert persion (name,age) value ('bobo',24)"36         if (ret > 0) {
37             System.out.println("  insert ok"38             resultSet = statement.executeQuery("select * from persion"39   
40             41                 System.out.println(resultSet.getString(1) + " " + 
42                         resultSet.getString(2) + " " + resultSet.getString(343             }
44 45         
46          关闭数据库连接
47         resultSet.close();
48         statement.close();
49         connection.close();
50     }
51 }

程序运行结果为:

?

?数据表中数据

?

JDBC使用PreparedStatement进行数据插入操作程序示例

 com.MysqL.jdbc.PreparedStatement;
 9 
10 11     12         13         Class.forName("com.MysqL.jdbc.Driver"14     
15         16         String url = "jdbc:MysqL://192.168.1.150/test"17         String user = "teamtalk"18         String password = "123456"19         Connection connection =20 21         
22         PreparedStatement statement = (PreparedStatement) connection.prepareStatement(
23                 "insert persion (name,age) value (?,?)"24         statement.setString(1,"hdu"25         statement.setInt(2,2126         statement.executeUpdate();
27         
28         ResultSet resultSet = statement.executeQuery("select * from persion"29         30         31             32             System.out.println(resultSet.getString(1) + " " + 
33                     resultSet.getString(2) + " " + resultSet.getString(334 35 
37 38 39 40 41 }

程序输出为:

@H_856_403@

?数据库中数据为:

3、小结

当程序远程访问MysqL时,不能使用root账号和密码登录,这样是为了MysqL的安全考虑,可以先新建一个MysqL账号用来测试。

如果远程MysqL主机是Centos7的话,需要展暂时关闭防火墙,使用命令 systemctl stop firewalld.service。

JDBC是一套操作数据库的接口,相当于数据库的抽象层,我们可以通过它来操作常用的数据库,进行sql操作。当我们写程序时,对于一个表(user),可以新建其对应的类(User),其提供各种get/set方法;然后新建一个数据库操作工具类(JDBCUtils),其提供与数据库建立连接、关闭连接方法;最后新建一个对表的操作类(UserDao),其封装了对表User的添加、删除、查询和更新等操作。

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读