首页 > 编程语言 >JAVAWEB学习——JDBC连接及相关操作

JAVAWEB学习——JDBC连接及相关操作

时间:2022-10-16 18:57:06浏览次数:78  
标签:语句 jdbc JAVAWEB 数据库 接口 JDBC SQL 连接

//加载数据库驱动 MySQL:
            //1 MySQL驱动:      com.mysql.jdbc.Drive
            //2 Oracle驱动:     oracle.jdbc.driver.OracleDriver
            //3 SQLServer驱动:  com.microsoft.sqlserver.jdbc.SQLServerDriver
            //4 PostgreSQL驱动: org.postgresql.Driver
            //5 DB2驱动:        com.ibm.db2.jdbc.net.DB2Driver
            //6 Sybase驱动:     com.sybase.jdbc.SybDriver
            Class.forName("com.mysql.jdbc.driver");

//不同的数据库,url协议的格式如下: //1 MySQL格式: jdbc:mysql://地址或主机名:端口号/数据库名 //2 Oracle格式: jdbc:oracle:thin:@地址或主机名:端口号:数据库名 //3 SQLServer格式: jdbc:sqlserver://地址或主机名:端口号;databaseName=数据库名 //4 PostgreSQL格式: jdbc:postgresql://地址或主机名:端口号/数据库名 //5 DB2格式: jdbc:db2:地址或主机名:端口号/数据库名 //6 Sybase格式: jdbc:sybase:Tds:地址或主机名:端口号/数据库名 String url = "jdbc:mysql://localhost:3306/bean" +
     "?useSSL=false&" + "serverTimezone=GMT&" + "characterEncoding=utf-8&" + "autoReconnect=true";
     String user = root;
     String passwd = "1234";
 //建立连接
 //使用DriverManager类的静态方法getConnection建立到指定数据库的连接
 conn = DriverManager.getConnection(url,user,passwd);
//关闭数据库连接
    public void close (Connection conn) {
        try {
            if (conn != null)
                conn.close();
        }catch(SQLException e) {
            e.printStackTrace();
        }
    }
    //关闭PreparedStatement接口
    //PreparedStatement接口是通过Connection的preparedStatement方法获取的,
    //是Statement的子接口,表示一条预编译过的SQL语句。
    public void close (PreparedStatement pstmt) {
        try {
            if (pstmt != null)
                pstmt.close();
        }catch(SQLException e) {
            e.printStackTrace();
        }
    }
    //关闭ResultSet接口
    //ResultSet接口由数据库厂商实现,以逻辑表格的形式封装了执行数据库操作的结果集。
    //ResultSet对象维护了一个指向当前数据行的游标,游标默认从1开始,可以通过next方法移动到下一行。
    //使用完之后需要手动关闭ResultSet对象。
    public void close (ResultSet rs) {
        try {
            if (rs != null)
                rs.close();
        }catch(SQLException e) {
            e.printStackTrace();
        }
    }
Connection conn = getConnection();
PreparedStatement pstmt = null;
pstmt = conn.prepareStatement(sql);
//执行SQL语句的一个接口。但是执行前会对SQL语句进行预编译的操作,
            //然后就开始执行SQL语句,并把结果赋值给pstmt。
            //conn的意思是一个数据库连接。

JDBC定义:

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。

简单地说,JDBC 可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。


此实例为SQLServer2005的驱动链接
Connection conn=null;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
StringstrConn="JDBC:sqlserver://localhost:1433;DatabaseName=TestData";
String strUser="sa";
String strPassword="";
conn=DriverManager.getConnection(strConn,strUser,strPassword);
Statement stmt=conn.createStatement();


DirverManager类:是JDBC的管理层,作用于用户和驱动之间。该类负责注册和加载JDBC驱动。


Connection接口:代表与数据库的链接,并拥有创建SQL语句的方法,以完成基本的SQL操作,同时为数据库事务提供提交和回滚方法。如:上面的例子就是链接到了TestData数据库。


Statement接口:用于执行不带参数的简单SQL语句。创建Statement实例对象后可以调用JDBC提供的3种执行SQL语句的方法:

(1)executeUpdate()方法,一般用于执行SQL的INSERT,DELETE,UPDATE语句,插入,删除,更新

(2)executeQuery()方法,一般用于执行SQL的SELECT语句,因为它的返回值是执行SQL语句后产生的一个ResultSet接口的实例(结果集),查询

(3)execute()方法,即一般它执行的SQL语句既有查询又有更新值,约等于executeUpdate()和executeQuery()两个方法的合辑。

 

PreparedStatement接口:它与Statement 的主要区别
(1) 它包含的SQL语句是预编译的,所以当多次执行一条SQL语句时用它会更快
(2) 在设置参数是可以用“?”代替。如:
PreparedStatement pstmt=conn.preparedStatement(insert into testvalues(?,?));
pstmt.setString(1,'gg');  1代表第一个问号的位置,插入gg
pstmt.setString(2,'123');  2代表第二个问号的位置,插入123

 

ResultSet接口:包含了Statement和PreparedStatement的executeQuery方法中SELECT的结果集。相当于用它来读取数据库里每列的值。

DatabaseMetaData接口:主要是用来得到数据库的相关信息的。如:数据库版本啊

ResultSetMetaData接口:主要是用来获取数据库中表的相关信息的。如:表的行数啊

 

参考:Connection、PreparedStatement、Statement、ResultSet是JDBC编程常用的接口,请分别简述它们的作用?_清风远行的博客-CSDN博客

           jsp实现页面跳转的几种方式_zg97zb的博客-CSDN博客_jsp跳转

   Connection连接和PreparedStatement 操作数据库_渡灬魂的博客-CSDN博客_connection.preparestatement

标签:语句,jdbc,JAVAWEB,数据库,接口,JDBC,SQL,连接
From: https://www.cnblogs.com/sodamate/p/16796769.html

相关文章

  • Docker安装MongoDB并使用Navicat连接
    MongoDB简介:MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。是一个介于关系数据库和非关系数据库之间......
  • 数据库连接池
    这是文件目录 链接库代码packagecom.itheima.jdbc.druid;importcom.alibaba.druid.pool.DruidDataSource;importcom.alibaba.druid.pool.DruidDataSourceFacto......
  • 基本jdbc链接数据库,更改数据
    packagecom.itheima.jdbc;//jdbcimportjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;publicclassJDBCDemo{publicsta......
  • 封装Druid连接池
    publicclassLsDataSourceUtils{publicclassLsDataSourceUtils{//获取Druid数据库连接池对象privatestaticDataSourcedataSource;/**......
  • navicat连接mysql数据库提示失败,提示2059错误
    Navicat连接数据库失败,提示2059错误,如下图参考资料发现使用的数据库版本是mysql8版本,不是mysql5.7版本MYSQL新版本(8以上版本)的用户登录账户加密方式是【caching_sha2_passwo......
  • Mysql单表访问方法,索引合并,多表连接原理,基于规则的优化,子查询优化
    参考书籍《mysql是怎样运行的》非常推荐这本书,通俗易懂,但是没有讲mysql主从等内容书中还讲解了本文没有提到的子查询优化内容,本文只总结了常见的子查询是如何优化的系......
  • Spring boot JDBC
    引入包 yml配置      @Repository表求该类是持久层依赖注入的对象    queryForObject查询单一一条记录。query查询多条记录  服务后端......
  • redis:jedis连接池
    Jedis本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,因此我们推荐大家使用Jedis连接池代替Jedis的直连方式。importredis.clients.jedis.*;publicclassJe......
  • 如何解决Navicat连接Mysql数据库时出现1251报错问题
    如何解决Navicat连接Mysql数据库时出现1251报错问题​​一、前言​​​​二、错误信息​​​​三、分析问题​​​​四、解决方法​​一、前言二、错误信息  用Navicat软......
  • JDBC
    packageJDBC_1;importcom.mysql.cj.jdbc.Driver;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.Statement;pub......