热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:JavaWeb技术:JDBC中核心接口

篇首语:本文由编程笔记#小编为大家整理,主要介绍了JavaWeb技术:JDBC中核心接口相关的知识,希望对你有一定的参考价值。一. DriverManager

篇首语:本文由编程笔记#小编为大家整理,主要介绍了JavaWeb技术:JDBC中核心接口相关的知识,希望对你有一定的参考价值。


一.  DriverManager 接口

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


技术分享技术分享

1 import java.sql.Connection;
2 import java.sql.DriverManager;
3 import java.sql.SQLException;
4
5 public class DriverManagerDemo {
6
7 public static void main(String[] args) {
8 // 数据库连接引用变量
9 Connection cOnn= null;
10
11 // 加载数据库驱动程序
12 try {
13 Class.forName("com.mysql.jdbc.Driver");
14 } catch (ClassNotFoundException e) {
15 e.printStackTrace();
16 }
17
18 try {
19 // 获取数据库连接对象
20 cOnn= DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest", "root", "1234");
21 } catch (SQLException e) {
22 e.printStackTrace();
23 }
24 }
25 }


View Code

  DBUtil工具类

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


技术分享技术分享

1 import java.io.FileReader;
2 import java.io.Reader;
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.SQLException;
6 import java.util.Properties;
7
8 /** 动态获取数据库连接参数 */
9 public class DBUtil {
10 private static String driver;
11 private static String url;
12 private static String username;
13 private static String password;
14
15 // 静态代码块,初始化成员变量
16 static {
17 Properties prop = new Properties();
18 Reader in;
19 try {
20 in = new FileReader("src\\\\dbconfig.properties");
21 // 从输入流中加载配置文件
22 prop.load(in);
23
24 } catch (Exception e) {
25 e.printStackTrace();
26 }
27
28 driver = prop.getProperty("driver");
29 url = prop.getProperty("url");
30 username = prop.getProperty("username");
31 password = prop.getProperty("password");
32 }
33
34 // 获得一个数据库连接
35 public static Connection open() {
36 try {
37 Class.forName(driver);
38 return DriverManager.getConnection(url, username, password);
39 } catch (Exception e) {
40 e.printStackTrace();
41 }
42
43 // 抛出异常,方法返回null
44 return null;
45 }
46
47 // 关闭数据库连接
48 public static void close(Connection conn) {
49 if (conn != null) {
50 try {
51 conn.close();
52 } catch (SQLException e) {
53 e.printStackTrace();
54 }
55 }
56 }
57 }


View Code

二. Connection接口

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

三. Statement接口和PreparedStatement接口

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


技术分享技术分享

1 import java.sql.Connection;
2 import java.sql.ResultSet;
3 import java.sql.SQLException;
4 import java.sql.Statement;
5
6 public class StatementDemo {
7
8 public static void main(String[] args) {
9 String sql = "update from CustomerTb1 set name=? where id=?";
10 Connection cOnn= DBUtil.open(); // 获取数据库连接
11
12 // 生成Statement对象用于执行sql语句
13 try {
14 Statement stmt = conn.createStatement();
15 ResultSet rs = stmt.executeQuery(sql); // 执行查询,返回结果集
16
17 while (rs.next()) {
18 int id = rs.getInt(1);
19 String name = rs.getString(2);
20 String email = rs.getString("email");
21
22 System.out.println(id + ", " + name + ", " + email);
23 }
24 } catch (SQLException e) {
25 e.printStackTrace();
26 } finally {
27 DBUtil.close(conn);
28 }
29 }
30 }


View Code

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


技术分享技术分享

1 import java.sql.Connection;
2 import java.sql.PreparedStatement;
3 import java.sql.SQLException;
4
5 public class StatementDemo {
6
7 public static void main(String[] args) {
8 String sql = "update CustomerTb1 set name=? where id=?";
9 Connection cOnn= DBUtil.open(); // 获取数据库连接
10
11 /** 预定义sql语句,?为占位符,在运行中动态生成sql语句 */
12 try {
13 PreparedStatement pstmt = conn.prepareStatement(sql);
14 // 对占位符替换赋值
15 pstmt.setString(1, "gepeng");
16 pstmt.setInt(2, 3);
17
18 pstmt.executeUpdate(); // 执行更新
19
20 } catch (SQLException e) {
21 e.printStackTrace();
22 } finally {
23 DBUtil.close(conn);
24 }
25 }
26 }


View Code

 


推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了Java中Hashtable的clear()方法,该方法用于清除和移除指定Hashtable中的所有键。通过示例程序演示了clear()方法的使用。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
    作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
author-avatar
群-众-生-活
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有