JavaWeb技术(三):JDBC中核心接口
一. 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中核心接口的更多相关文章
- 写出Hibernate中核心接口/类的名称,并描述他们各自的责任?
Hibernate的核心接口一共有5个,分别为:Session.SessionFactory.Transaction.Query和 Configuration.这5个核心接口在任何开发中都会用到.通过 ...
- JDBC中Statement接口提供的execute、executeQuery和executeUpdate之间的区别
Statement 接口提供了三种执行 SQL 语句的方法:executeQuery.executeUpdate 和 execute.使用哪一个方法由 SQL 语句所产生的内容决定. 方法execut ...
- JavaWeb技术(一):JDBC简介
一. JDBC简介 1. Java Database Connectivity(JDBC) 使用JDBC可以对数据库进行访问 2. JDBC的核心接口 1)DriverManager 驱动管理器接口 ...
- 走进JavaWeb技术世界3:JDBC的进化与连接池技术
走进JavaWeb技术世界3:JDBC的进化与连接池技术 转载公众号[码农翻身] 网络访问 随着 Oracle, Sybase, SQL Server ,DB2, Mysql 等人陆陆续续住进数据库 ...
- JDBC中常用的接口
JDBC常用的接口DriverManager 驱动管理器获得数据库链接 Connection 数据库链接接口 Statement 语句接口,用来静态操作SQL语句 PreparedStatement ...
- Android中的接口回调技术
Android中的接口回调技术有很多应用的场景,最常见的:Activity(人机交互的端口)的UI界面中定义了Button,点击该Button时,执行某个逻辑. 下面参见上述执行的模型,讲述James ...
- Hibernate(三)__核心接口和类
该图显示了核心接口类以及配置文件的关系层次,越往下越偏向底层数据库. 1. hibernate.cfg.xml文件 ①该文件主要用于指定各个参数,是hibernate核心文件 ②默认放在src目录下, ...
- 一、DAO设计模式 二、DAO设计模式的优化 三、JDBC中的事务,连接池的使用
一.DAO设计模式概述###<1>概念 DAO,Data Access Object ,用于访问数据库的对象. 位于业务逻辑和数据持久化层之间,实现对数据持久化层的访问![](1.png) ...
- Delphi COM编程技术三类型库(库文件中的工具栏,很全)
在COM组件的使用和开发过程中经常需要获取有关组件的信息.而COM组件以二进制代码的形式发布,如果不借助特定的工具这些相关信息将难以被获取.通过访问类型库就可以查看COM组件的信息. 一.类型库的基础 ...
随机推荐
- SQL Server 自定义聚合函数
说明:本文依据网络转载整理而成,因为时间关系,其中原理暂时并未深入研究,只是整理备份留个记录而已. 目标:在SQL Server中自定义聚合函数,在Group BY语句中 ,不是单纯的SUM和MAX等 ...
- android avd sdk root
网上的方式都失败了... 网上的方式据说是 用于 2.0 左右版本的. 而我们现在主流都用的是 4.0 以上的. 这个http://quantoubao.blog.163.com/blog/stat ...
- Hive安装
一.下载:http://hive.apache.org/,选择合适的版本,Hive 1.X版本要求Hadoop2.x以上版本,Jdk1.7以上 这里选择1.2.1版本 二.安装jdk 略 三.安装Ha ...
- Key/Value存储系统etcd的特性
etcd 是一个高可用的Key/Value存储系统,和其他KV存储系统不同的是,它的灵感来自于 ZooKeeper 和 Doozer,主要用于分享配置和服务发现.利用 etcd 的特性,应用程序可以在 ...
- asp.net core获取HttpContext相关操作
建立类: using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;us ...
- jenkins发送带附件(logfile.log和index.html)的邮件配置
先进入到job里面,在Attachment中按照规矩添加文件就好了 此处是以workspace作为根目录的,logfile.log文件刚好就在根目录上,所以直接写上,多个文件的话用逗号分隔, 第二个文 ...
- Redis从基础命令到实战之字符串类型
字符串类型是Redis中最基本的数据类型,能存储任何形式的字符串和和二进制数据.本文以代码形式列举常用的操作命令,并在实践部分演示一个简单的商品管理功能,实现了通常使用关系型数据库开发的增改查功能,注 ...
- MySQL for Visual Studio Version
MySQL for Visual Studio Version Connector/Net Version Supported Visual Studio Version Supported MySQ ...
- Spring Web应用的最大瑕疵
众所周知, 现在的Spring框架已经成为构建企业级Java应用事实上的标准了,众多的企业项目都构建在Spring项目及其子项目之上,特别是Java Web项目,很多都使用了Spring并且遵循着We ...
- Class对象即反射
Class对象 当ClassLoader加载一个class文件到JVM的时候,会自动创建一个该类的Class对象,并且这个对象是唯一的,后续要创建这个类的任何实例,都会根据这个Class对象来创建.因 ...