一.  DriverManager 接口

  DriverManager 数据库连接驱动接口,用于获取数据库连接对象Connection

 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;

 public class DriverManagerDemo {

     public static void main(String[] args) {
         // 数据库连接引用变量
         Connection conn = null;

         // 加载数据库驱动程序
         try {
             Class.forName("com.mysql.jdbc.Driver");
         } catch (ClassNotFoundException e) {
             e.printStackTrace();
         }

         try {
             // 获取数据库连接对象
             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest", "root", "1234");
         } catch (SQLException e) {
             e.printStackTrace();
         }
     }
 }

  DBUtil工具类

  DBUtil用于封装数据库连接和关闭,简化JDBC开发,提高代码复用性。

 import java.io.FileReader;
 import java.io.Reader;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.util.Properties;

 /** 动态获取数据库连接参数 */
 public class DBUtil {
     private static String driver;
     private static String url;
     private static String username;
     private static String password;

     // 静态代码块,初始化成员变量
     static {
         Properties prop = new Properties();
         Reader in;
         try {
             in = new FileReader("src\\dbconfig.properties");
             // 从输入流中加载配置文件
             prop.load(in);

         } catch (Exception e) {
             e.printStackTrace();
         }

         driver = prop.getProperty("driver");
         url = prop.getProperty("url");
         username = prop.getProperty("username");
         password = prop.getProperty("password");
     }

     // 获得一个数据库连接
     public static Connection open() {
         try {
             Class.forName(driver);
             return DriverManager.getConnection(url, username, password);
         } catch (Exception e) {
             e.printStackTrace();
         }

         // 抛出异常,方法返回null
         return null;
     }

     // 关闭数据库连接
     public static void close(Connection conn) {
         if (conn != null) {
             try {
                 conn.close();
             } catch (SQLException e) {
                 e.printStackTrace();
             }
         }
     }
 }

二. Connection接口

  数据库连接接口,用于生成Statement和PreparedStatement对象,以及执行Transaction

三. Statement接口和PreparedStatement接口

  Statement用于执行静态sql语句以及处理返回结果

 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;

 public class StatementDemo {

     public static void main(String[] args) {
         String sql = "update from CustomerTb1 set name=? where id=?";
         Connection conn = DBUtil.open(); // 获取数据库连接

         // 生成Statement对象用于执行sql语句
         try {
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery(sql); // 执行查询,返回结果集

             while (rs.next()) {
                 int id = rs.getInt(1);
                 String name = rs.getString(2);
                 String email = rs.getString("email");

                 System.out.println(id + ", " + name + ", " + email);
             }
         } catch (SQLException e) {
             e.printStackTrace();
         } finally {
             DBUtil.close(conn);
         }
     }
 }

  PreparedStatement是预定义sql语句,用于动态生成sql与执行sql语句

 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;

 public class StatementDemo {

     public static void main(String[] args) {
         String sql = "update CustomerTb1 set name=? where id=?";
         Connection conn = DBUtil.open(); // 获取数据库连接

         /** 预定义sql语句,?为占位符,在运行中动态生成sql语句 */
         try {
             PreparedStatement pstmt = conn.prepareStatement(sql);
             // 对占位符替换赋值
             pstmt.setString(1, "gepeng");
             pstmt.setInt(2, 3);

             pstmt.executeUpdate(); // 执行更新

         } catch (SQLException e) {
             e.printStackTrace();
         } finally {
             DBUtil.close(conn);
         }
     }
 }

JavaWeb技术(三):JDBC中核心接口的更多相关文章

  1. 写出Hibernate中核心接口/类的名称,并描述他们各自的责任?

    Hibernate的核心接口一共有5个,分别为:Session.SessionFactory.Transaction.Query和 Configuration.这5个核心接口在任何开发中都会用到.通过 ...

  2. JDBC中Statement接口提供的execute、executeQuery和executeUpdate之间的区别

    Statement 接口提供了三种执行 SQL 语句的方法:executeQuery.executeUpdate 和 execute.使用哪一个方法由 SQL 语句所产生的内容决定. 方法execut ...

  3. JavaWeb技术(一):JDBC简介

    一.  JDBC简介 1. Java Database Connectivity(JDBC) 使用JDBC可以对数据库进行访问 2. JDBC的核心接口 1)DriverManager 驱动管理器接口 ...

  4. 走进JavaWeb技术世界3:JDBC的进化与连接池技术

    走进JavaWeb技术世界3:JDBC的进化与连接池技术 转载公众号[码农翻身] 网络访问 随着 Oracle, Sybase, SQL Server ,DB2,  Mysql 等人陆陆续续住进数据库 ...

  5. JDBC中常用的接口

    JDBC常用的接口DriverManager 驱动管理器获得数据库链接 Connection 数据库链接接口 Statement 语句接口,用来静态操作SQL语句 PreparedStatement ...

  6. Android中的接口回调技术

    Android中的接口回调技术有很多应用的场景,最常见的:Activity(人机交互的端口)的UI界面中定义了Button,点击该Button时,执行某个逻辑. 下面参见上述执行的模型,讲述James ...

  7. Hibernate(三)__核心接口和类

    该图显示了核心接口类以及配置文件的关系层次,越往下越偏向底层数据库. 1. hibernate.cfg.xml文件 ①该文件主要用于指定各个参数,是hibernate核心文件 ②默认放在src目录下, ...

  8. 一、DAO设计模式 二、DAO设计模式的优化 三、JDBC中的事务,连接池的使用

    一.DAO设计模式概述###<1>概念 DAO,Data Access Object ,用于访问数据库的对象. 位于业务逻辑和数据持久化层之间,实现对数据持久化层的访问![](1.png) ...

  9. Delphi COM编程技术三类型库(库文件中的工具栏,很全)

    在COM组件的使用和开发过程中经常需要获取有关组件的信息.而COM组件以二进制代码的形式发布,如果不借助特定的工具这些相关信息将难以被获取.通过访问类型库就可以查看COM组件的信息. 一.类型库的基础 ...

随机推荐

  1. C​#​小​实​例​之​-​-​-​C​#​判​断​网​络

    方式一: [DllImport("wininet")] private extern static bool InternetGetConnectedState(out int c ...

  2. python之GUI编程(二)win10 64位 pygame的安装

    pygame的下载网址: http://www.pygame.org/download.shtml 我下载了第一个 很显然,安装的时候出现了如图中的尴尬,更改了安装目录后,在Python shell中 ...

  3. 通过SQL Server 2008数据库复制实现数据库同步备份

    SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主 ...

  4. 转 Jmeter之Bean shell使用(二)

    上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...

  5. Maven打包跳过测试

    运行mvn install时跳过Test 方法一: <project> [...] <build> <plugins> <plugin> <gro ...

  6. 省市县三级联动(webFrom...DropdownList)

    编辑页面 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"&g ...

  7. PHP文件缓存实现

    有些时候,我们不希望使用redis等第三方缓存,使得系统依赖于其他服务.这时候,文件缓存会是一个不错的选择. 我们需要文件缓存实现哪些共更能: 功能实现:get.set.has.increment.d ...

  8. phpMyAdmin登录出错

    问题:在网页上登录phpMyAdmin后出错 You don't have permission to access /phpMyAdmin/ on this server. 查询找到解决方法,记录一 ...

  9. zepto的touch模块解决click延迟300ms问题以及点透问题的详解

    大家都知道移动端的click事件会延迟300ms触发,这时大家可以使用zepto的touch模块,里面定义了一个tap事件,通过绑定tap事件,可以实现点击立即触发的功能. 那么,它的tap事件是怎么 ...

  10. Linux crontab定时执行任务

    1.设置定时任务的命令是crontab -e首次使用crontab的时候会让你选择编辑工具,看个人喜好了.选择一个即可.如果以后想换默认编辑工具,可以按照下面的提示运行命令"select-e ...