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 ,用于访问数据库的对象. 位于业务逻辑和数据持久化层之间,实现对数据持久化层的访问 ...
- Delphi COM编程技术三类型库(库文件中的工具栏,很全)
在COM组件的使用和开发过程中经常需要获取有关组件的信息.而COM组件以二进制代码的形式发布,如果不借助特定的工具这些相关信息将难以被获取.通过访问类型库就可以查看COM组件的信息. 一.类型库的基础 ...
随机推荐
- AX 插入一条记录提示表记录已经存在,但是该记录实际上是不存在的。
做测试的时候遇到一个情况"AX 插入一条记录提示表记录已经存在,但是该记录实际上是不存在的." 检查到该表(TABLE_ABC)所有的key都是AllowDuplicate的, 继 ...
- HDU1005
Number Sequence HDU-1005 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- javaWeb学习-----session
一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...
- Processing简明教程与Java平台移植方法
1 Processing 1.1 Processing简介 Processing是一种具有革命前瞻性的新兴计算机语言,它的概念是在电子艺术的环境下介绍程序语言,并将电子艺术的概 ...
- WINDOWS 远程桌面不能直接拷贝文件问题
使用WIN7远程客户端连WIN 2003服务器,发现不能拷贝文件,使用下面方法解决:
- sql 查出一张表中重复的所有记录数据
1.在面试的时候碰到一个 问题,就是让写一张表中有id和name 两个字段,查询出name重复的所有数据,现在列下: select * from xi a where (a.username) in ...
- ORACLE 实例及RAC
ORACLE 实例及RAC 一.问题 (1)现象 部署一个sh脚本到生产oracle服务器上,该sh脚本负责读取外系统提供的txt文件,然后用sql loader入库,由oracle服务器的cront ...
- PHP审计小记
/* 在漏洞时代看了一篇文章,说到一个通用函数如何绕过.那么我就来看看这套程序 */ foreach($_REQUEST as $_k=>$_v) { if( strlen($_k)>0 ...
- hadoop单机
Hadoop安装教程——单机模式 博客分类: 大数据 Hadoop是MapReduce的开源实现,网上有很多相关的文章,但是很多不全,有的有点乱,本人Ubuntu小白,Hadoop初学者,根据别人的资 ...
- Diamond使用向导
一.背景描述 Diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单.可靠.易用,目前淘宝内部绝大多数系统的配置,由diamond来进行统一管理. ...