张家港设计公司,赤峰网站优化,个人社保缴费记录查询,需要做网站设计的公司目录 ♫什么是JDBC ♫JDBC常用接口和类
♪Connection接口
♪Statement对象
♪ResultSet对象 ♫JDBC的使用
♪添加“驱动包”
♪创建数据源#xff0c;描述数据库服务器在哪
♪和数据库服务器建立连接
♪构建SQL语句
♪执行SQL语句
♪释放资源 ♫什么是JDBC 我们前面操…目录 ♫什么是JDBC ♫JDBC常用接口和类
♪Connection接口
♪Statement对象
♪ResultSet对象 ♫JDBC的使用
♪添加“驱动包”
♪创建数据源描述数据库服务器在哪
♪和数据库服务器建立连接
♪构建SQL语句
♪执行SQL语句
♪释放资源 ♫什么是JDBC 我们前面操作数据库都是使用数据库自带的客户端通过网络访问数据库服务器而要想通过代码来访问数据库服务器就需要自己实现一个数据库客户端各种数据库都提供了一系列API可以使我们较为方便地实现一个客户端而由于不同数据库提供的API不同在Java领域就有大佬出来将这些API统一成一套JDBC每个数据库也都提供了能够适应JDBC的“驱动包”API的具体实现。JDBC这套API已经成为Java标准库的一部分它屏蔽了不同数据库原生API之间的差异使用一套API规范了不同数据库的编程操作。 ♫JDBC常用接口和类 ♪Connection接口 Connection 接口用于和数据库服务器建立连接它的实现类由数据库提供获取 Connection 对象通常有两种方式 ♩通过DriverManager驱动管理类的静态方法获取 // 加载JDBC驱动程序
Class.forName(com.mysql.jdbc.Driver);
// 创建数据库连接
Connection connection DriverManager.getConnection(url); ♩通过DataSource数据源对象获取 //1.创建数据源描述数据库服务器在哪//创建实例DataSource dataSource new MysqlDataSource();//设置数据库所在的位置((MysqlDataSource)dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/test?characterEncodingutf8useSSLfalse);//设置数据库的用户名((MysqlDataSource)dataSource).setUser(root);//设置数据库的密码((MysqlDataSource)dataSource).setPassword(123456);//2.和数据库服务器建立连接//记录哪个和哪个要进行通信了Connection connection dataSource.getConnection(); 注DriverManager类来获取的Connection连接需要用到反射且是无法重复利用的而DataSource提供连接池的支持使用完会被线程池回收。 ♪Statement对象 Statement 对象主要将 SQL语句发送到数据库中每个Statement对象都通过Connection对象创建。Statement对象可以是普通的Statement用于执行静态SQL语句、PreparedStatement是预编译的Statement对象用于执行预编译的SQL语句和CallableStatement用于调用存储过程的Statement对象。Statement对象中还有有两种执行SQL的方法 ♩executeQuery()执行后返回单个结果集常用于select语句 ♩executeUpdate()执行后返回受影响行数常用于update、insert、delete语句 ♪ResultSet对象 使用JDBC时执行SQL查询会返回一个结果集。ResultSet是一个包含查询结果的表格包括行和列。可以使用ResultSet接口检索和处理这些行和列以便在Java应用程序中使用这些数据。 ♫JDBC的使用 ♪添加“驱动包” 要想使用JDBC需要到数据库的官网或者是“中央仓库”去下载对应数据库版本的“驱动包”然后在idea项目下创建一个新目录将“驱动包”拷贝到目录里再右键选择Add as Library...键将“驱动包”作为库添加到当前项目中即可。 添加好“驱动包”后就可以开始JDBC编程了~ ♪创建数据源描述数据库服务器在哪 创建数据源可以使用DriverManger和DataSource两种由于反射不属于常规编程手段故这里采用DataSource的方法 //1.创建数据源描述数据库服务器在哪//创建实例DataSource dataSource new MysqlDataSource();//设置数据库所在的位置((MysqlDataSource)dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/test?characterEncodingutf8useSSLfalse);//设置数据库的用户名((MysqlDataSource)dataSource).setUser(root);//设置数据库的密码((MysqlDataSource)dataSource).setPassword(1234); 注MySQL数据连接的URL参数格式为 jdbc:mysql://服务器地址:端口/数据库名?参数名参数值 ♪和数据库服务器建立连接 描述数据库服务器在哪后就可以和服务器建立连接了通过dataSource的getConnection获取连接对象 //2.和数据库服务器建立连接//记录哪个和哪个要进行通信了Connection connection dataSource.getConnection(); ♪构建SQL语句 连接好服务器就可以构建要执行的SQL语句了可以直接通过字符串常量构建SQL语句 //3.构造sql语句//描述sql是什么样子的String sql insert into student values(1,‘张三’);//jdbc中还需要搭配一个特点的对象来描述这里的sql的情况PreparedStatement statement connection.prepareStatement(sql); 还可以通过输入的方式动态构建SQL语句 Scanner scanner new Scanner(System.in);int id scanner.nextInt();String name scanner.next();//?为占位符下标从1开始String sql insert into student values(?,?);PreparedStatement statement connection.prepareStatement(sql);//将id填充到第一个占位符statement.setInt(1,id);//将name填充到第二个占位符statement.setString(2,name); 注一般不介意采用字符串拼接的方式构建SQL语句不仅代码的可读性低而且容易遭受SQL注入攻击 ♪执行SQL语句 构建完SQL语句就可以让服务器执行对应的SQL语句了增删改通过executeQuery()放回变更的行数查询通过executeUpdate()放回查询的结果集 ♩增删改 String sql insert into student values(1,‘张三’);PreparedStatement statement connection.prepareStatement(sql);//4.执行sql//给服务器发送网络请求int len statement.executeUpdate(); ♩查询 String sql select * from student;PreparedStatement statement connection.prepareStatement(sql);ResultSet resultSet statement.executeQuery();//遍历结果集while (resultSet.next()) {int id resultSet.getInt(id);String name resultSet.getString(name);System.out.println(id name);} ♪释放资源 操作完之后需要断开连接释放资源 try {if (resultSet ! null) {resultSet.close();}if (statement ! null) {statement.close();}if (connection ! null) {connection.close();}} catch (SQLException e) {e.printStackTrace();throw new RuntimeException(数据库错误);}