实习心得体会之JDBC操作21090712

实验四 JDBC访问数据库 桂 林 理 工 大 学 实 验 报 告 实验名称 实验四 JDBC访问数据库 日期 2019年 10 月23日 一、实验目的:理解JDBC的工作原理掌握JDBC访问数据库; 掌握常见数据库MYSQL ; 二、实验环境:Eclipse+mysql 三、实验内容: 现在使用JDBC写一个简单的小程序主要是使用JDBC连接MySQL数据库,然后对数据 库进行一些基本的增删改查操作 1、设计数据库表 2.定义实体类 package com.imooc.jd 阅读详情

##JDBC

JAVA Database Connectivity java 数据库连接

  • 为什么会出现JDBC

SUN公司提供的一种数据库访问规则、规范, 由于数据库种类较多,并且java语言使用比较广泛,sun公司就提供了一种规范,让其他的数据库提供商去实现底层的访问规则。 我们的java程序只要使用sun公司提供的jdbc驱动即可。

###使用JDBC的基本步骤

  1. 注册驱动

    DriverManager.registerDriver(new com.mysql.jdbc.Driver());

  2. 建立连接

    DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=greatsqldb");

  3. //2. 建立连接 参数一: 协议 + 访问的数据库 , 参数二: 用户名 , 参数三: 密码。 conn = DriverManager.getConnection("jdbc:mysql://localhost/student", "root", "root");

  4. 创建statement

    //3. 创建statement , 跟数据库打交道,一定需要这个对象 st = conn.createStatement();

  5. 执行sql ,得到ResultSet

    //4. 执行查询 , 得到结果集 String sql = "select * from t_stu"; rs = st.executeQuery(sql);

  6. 遍历结果集

    //5. 遍历查询每一条记录

  7.  

    while(rs.next())
    { int id = rs.getInt("id"); 
    String name = rs.getString("name"); 
    int age = rs.getInt("age");
     System.out.println("id="+id + "===name="+name+"==age="+age);
    }
  8. 释放资源

if (rs != null) {
        try {
            rs.close();
        } catch (SQLException sqlEx) { } // ignore 
        rs = null;
    }

	...

###JDBC 工具类构建

  1. 资源释放工作的整合
  1. 驱动防二次注册
DriverManager.registerDriver(new com.mysql.jdbc.Driver());

Driver 这个类里面有静态代码块,一上来就执行了,所以等同于我们注册了两次驱动。 其实没这个必要的。
//静态代码块 ---> 类加载了,就执行。 java.sql.DriverManager.registerDriver(new Driver());


	最后形成以下代码即可。

	Class.forName("com.mysql.jdbc.Driver");
  1. 使用properties配置文件

    1. 在src底下声明一个文件 xxx.properties ,里面的内容吐下:

      driverClass=com.mysql.jdbc.Driver 
      url=jdbc:mysql://localhost/student 
      name=root
       password=root

       

    2. 在工具类里面,使用静态代码块,读取属性

static{
		try {
			//1. 创建一个属性配置对象
			Properties properties = new Properties();
			InputStream is = new FileInputStream("jdbc.properties"); //对应文件位于工程根目录
			 
			//使用类加载器,去读取src底下的资源文件。 后面在servlet  //对应文件位于src目录底下
			//InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
			//导入输入流。
			properties.load(is);
			
			//读取属性
			driverClass = properties.getProperty("driverClass");
			url = properties.getProperty("url");
			name = properties.getProperty("name");
			password = properties.getProperty("password");
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

​

###数据库的CRUD sql

  • insert

    INSERT INTO t_stu (NAME , age) VALUES ('wangqiang',28)

INSERT INTO t_stu VALUES (NULL,'wangqiang2',28)



	// 1. 获取连接对象
		conn = JDBCUtil.getConn();
		// 2. 根据连接对象,得到statement
		st = conn.createStatement();
		
		//3. 执行添加
		String sql = "insert into t_stu values(null , 'aobama' , 59)";
		//影响的行数, ,如果大于0 表明操作成功。 否则失败
		int result = st.executeUpdate(sql);
		
		if(result >0 ){
			System.out.println("添加成功");
		}else{
			System.out.println("添加失败");
		}
  • delete

    DELETE FROM t_stu WHERE id = 6

// 1. 获取连接对象
		conn = JDBCUtil.getConn();
		// 2. 根据连接对象,得到statement
		st = conn.createStatement();
		
		//3. 执行添加
		String sql = "delete from t_stu where name='aobama'";
		//影响的行数, ,如果大于0 表明操作成功。 否则失败
		int result = st.executeUpdate(sql);
		
		if(result >0 ){
			System.out.println("删除成功");
		}else{
			System.out.println("删除失败");
		}
  • query

    SELECT * FROM t_stu

// 1. 获取连接对象
		conn = JDBCUtil.getConn();
		// 2. 根据连接对象,得到statement
		st = conn.createStatement();

		// 3. 执行sql语句,返回ResultSet
		String sql = "select * from t_stu";
		rs = st.executeQuery(sql);

		// 4. 遍历结果集
		while (rs.next()) {
			String name = rs.getString("name");
			int age = rs.getInt("age");

			System.out.println(name + "   " + age);
		}
  • update

    UPDATE t_stu SET age = 38 WHERE id = 1;

// 1. 获取连接对象
		conn = JDBCUtil.getConn();
		// 2. 根据连接对象,得到statement
		st = conn.createStatement();
		
		//3. 执行添加
		String sql = "update t_stu set age = 26 where name ='qyq'";
		//影响的行数, ,如果大于0 表明操作成功。 否则失败
		int result = st.executeUpdate(sql);
		
		if(result >0 ){
			System.out.println("更新成功");
		}else{
			System.out.println("更新失败");
		}

 

###使用单元测试,测试代码

  1. 定义一个类, TestXXX , 里面定义方法 testXXX.

  2. 添加junit的支持。

    右键工程 --- add Library --- Junit --- Junit4

  3. 在方法的上面加上注解 , 其实就是一个标记。

    @Test public void testQuery() { ... }

  4. 光标选中方法名字,然后右键执行单元测试。 或者是打开outline视图, 然后选择方法右键执行。

###Dao模式

Data Access Object 数据访问对象

  1. 新建一个dao的接口, 里面声明数据库访问规则
/**
	 * 定义操作数据库的方法
	 */
	public interface UserDao {
	
		/**
		 * 查询所有
		 */
		void findAll();
	}
  1. 新建一个dao的实现类,具体实现早前定义的规则
public class UserDaoImpl implements UserDao{

	@Override
	public void findAll() {
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		try {
			//1. 获取连接对象
			conn = JDBCUtil.getConn();
			//2. 创建statement对象
			st = conn.createStatement();
			String sql = "select * from t_user";
			rs = st.executeQuery(sql);
			
			while(rs.next()){
				String userName = rs.getString("username");
				String password = rs.getString("password");
				
				System.out.println(userName+"="+password);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			JDBCUtil.release(conn, st, rs);
		}
	}

}
  1. 直接使用实现

    @Test public void testFindAll(){ UserDao dao = new UserDaoImpl(); dao.findAll(); }

 

JDBC 学习总结     学完JDBC,决定写一篇文章。一是对知识的总结,二是锻炼自己的写作能力。之前学完一些东西,没有认真记笔记的习惯,学完之后没过多久就全忘记了,再看又是一脸懵逼,希望以后能养成学完及时总结的习惯。   一,概念       JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用... 阅读详情

相关推荐

自学jdbc心得体会

jdbc概念,基本方法,应用体会,实例编程和测试等。

JDBC连接数据库学习心得

JDBC连接数据库学习心得 1.    环境的搭建 首先在intelliJADE下新建工程,并且在工程根目录下创建lib包,lib包用于存放JDBC的jar包,以及以后其他工具jar包.将jar包存入并且导入环境配置后进行下一步 2.数据库连接mysql有两种方式   (1).通过在页面写数据库连接语句连接数据库.   优点:当你刚刚搭设好环境用于测试的情况下,这几句话非常方便.连接数据

lyc6681的博客 9546

避坑指南:STM32定时器测PWM频率占空比时,那些CubeMX没告诉你的细节(蓝桥杯真题衍生)

本文深入解析STM32定时器测量PWM频率和占空比时的关键细节,揭示CubeMX配置中未明确的时钟树原理和输入捕获机制。针对蓝桥杯嵌入式赛题中的常见问题,提供动态调整预分频器、多采样数字滤波等实战解决方案,帮助开发者避免测量误差,提升PWM测量精度和稳定性。

weixin_28692153的博客 339

Java Web 学习之JDBC 基础(篇2)

篇1 介绍了使用JDBC 连接数据库及部分API 实现sql 查询,及数据库资源的回收,本篇主要是围绕 PrepaeredStatement对象的使用及Sql注入相关: 1.Sql 注入: sql注入是比较常见的网络攻击形式,它利用现有的程序漏洞,将恶意的Sql命令注入后台数据库,最终达到欺骗服务器并实现攻击者的意图,在程序运行过程中,Sql注入会造成数据库信息泄露,网页被篡改,网站被挂木马等问题, 如接下来的两个Sql 语句: Select * from ...

焱宣的博客 918

从打印攻击到视频重放:手把手用OULU-NPU训练你的第一个活体检测模型

本文详细介绍了如何使用OULU-NPU数据集训练活体检测模型,以应对打印攻击和视频重放等安全威胁。通过PyTorch框架,从环境准备、数据加载、预处理到模型架构设计,手把手教你构建一个高效的双流网络,结合CNN和LSTM技术,提升模型在多种攻击场景下的检测准确率。

weixin_29092031的博客 385

Anthropic三件套重构AI工作流:Claude Code、Design与桌面宠物实战指南

AI协作已从单点工具迈入系统化工作流阶段。理解AI作为‘协作者’而非‘执行器’的本质,是提升工程效率的关键前提;其核心在于对任务调度、自适应推理与人机交互边界的重新定义。Claude Code的xhigh effort机制体现了分层推理的工程智慧,Claude Design以HTML为原生设计语言实现设计-代码一体化,而桌面宠物则将抽象的token消耗具象为可感知的硬件反馈。这些能力共同指向一个趋势:AI工作流正从prompt调参走向契约式委派、从界面割裂走向跨模态统一。本文结合Opus 4.7最新实践,解

a4512138的专栏 484

JDBC连接数据库总结

今天来看下使用JDBC连接mysql的各种方法,以及对数据的各种操作。

大数据技术开发 1141

WinForm实战:如何用C#和PdfiumViewer打造一个功能齐全的PDF阅读器(含源码)

本文详细介绍了如何使用C#和PdfiumViewer库从零开始构建一个功能齐全的WinForm PDF阅读器。内容涵盖项目环境搭建、核心组件解析、基于命令模式的工具栏与UI架构设计,并深入讲解了智能缩放、页面导航、打印功能等核心交互的实现,以及内存管理和性能优化等高级话题,为开发者提供了一套完整的实战解决方案。

docker8compose的博客 503

JDBC总结

韩顺平讲Java JDBC总结

一份耕耘,一分收获 2231

医学图像分割实战:基于TransUNet训练自己的眼底硬渗出物数据集(附完整代码)

本文详细介绍了基于TransUNet的眼底硬渗出物分割实战指南,涵盖数据预处理、模型调优、训练策略及性能优化等关键环节。通过代码复现和实验对比,展示了TransUNet在医学图像分割中的优势,为糖尿病视网膜病变的早期诊断提供技术支持。

weixin_42524708的博客 362

JDBC数据库编程(java实训报告)

JDBC数据库编程(java实训报告)

日常笔记 | 干货分享 | 毕设源码 | 毕设指导 | 答辩指导 8752

在LangChain中使用DashVector进行高效向量检索

DashVector为需要处理高维向量数据的开发者提供了一种便捷且高效的解决方案。通过将其集成到LangChain生态系统中,您可以轻松实现复杂的语义搜索和数据分析功能。DashVector官方文档LangChain GitHub仓库有关DashVector的详细notebook示例。

sjufgwgfhoia的博客 455

JDBC学习心得(一)

Java提供一套规则供各大数据库厂商,这套规则即接口。 实现类在各大数据库中,也叫驱动。 一.主要步骤 //1.注册驱动 Class.forName("com.mysql.jdbc.Driver"); //2.获取连接 String password=""; String url="jdbc:mysql://127.0.0.1:3306/数据库名称";(不要写成连接名称) String username=""; Connection conn= Drive

weixin_57472035的博客 1305

Ubuntu搭建Pytorch环境(Anaconda、Cuda、cuDNN、Pytorch、Python、Pycharm、Jupyter)

Ubuntu搭建Pytorch环境(Anconda、Cuda、Pytorch、Python、Pycharm、Jupyter)

funfan的博客 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JDBC学习总结

目录01 -JDBC概述02 -数据库的连接JDBCUtils.java(工具类)03-PreparedStatement替换Statement实现CRUD操作04-PreparedStatement操作Blob类型的变量05-PreparedStatement实现高效的批量插入06-数据库的事务07-DAO及其子类08-数据库连接池学习中遇到的问题及解决方法 01 -JDBC概述 ​ JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和

qq_45679541的博客 1165

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JDBC连接数据库学习心得2

PrepareStatment: 1,可以防止SQL注入 2,采取预编译的方式,将SQL语句先交给数据库编译好 只需要等待执行就可以了,当多个重复语句被执行时效率会比Statement高,速度快 @Test//关于PrepareStament的增删改查 public void t1() throws SQLException, ClassNotFo

lyc6681的博客 1331

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JDBC基础(学习心得)

一.简介 JDBC,全称为Java DataDase Connectivity(Java数据库连接),它可以连接Sql Server , MySql , Oracle , Java提供了很多接口 , 比如java.sql.Driver(用来表示驱动程序类) ,java.sql.Connection(此接口用于连接数据库) , java.sql.ResultSet(数据库结果集数据表,通常由执行查询数据库语句产生) , java.sql.Statement(执行 SQL 语句并将数据检索到 ResultS.

weixin_61695887的博客 784

JDBC学习心得

JDBC(Java DataBase Connectivity) 通过JDBC 我们可以连接各种各样的数据库,它是SUN公司制定的一套用Java连接数据库执行SQL语句的规范,标准. 定义了一系列的接口如Driver,Statement,Connection,ResultSet等. 设计理念 java定义了一些类的接口,在java.sql包中,各个数据库厂商需要自己去实现这写接口. 先决条件 用户首先需要去对应的官网中6下载驱动程序jar包,jar包中的类实现了JDBC接口. 项目与模块引用jar

Amon1004的博客 812

JDBC学习总结(一)获取数据库连接/Connection/SQL注入/PreparedStatement实现增删改查/ResultSet/ResultSetMetaData/ORM思想

一、JDBC概述 (一)数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。 持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。 (二)Java中的数据存储技术 在Java中,数据库存取技术可分为如下几类: JDBC直接访问数据库 JDO (Java Data

ZaynFox的博客 970

使用JDBC完成登录和注册

开发需求完成登录功能。完成注册功能。环境配置2.1下载驱动包并配置jar包下载地址:https://mvnrepository.com/在搜索框输入mysql,选择mysql connect java,选择对应的版本后点击版本,进入后点击jar下载即可。首先我们需要创建一个web项目工程,然后在web包下的WEB-INF下创建一个lib包,里面放入mysql连接jar包。步骤:在项目的根目录下创建文件夹,这个文件夹必须命名为lib然后将下载的jar包粘贴到lib文件夹下。

weixin_73683568的博客 1261

JDBC总结大全

一、JDBC概述 概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库            JDBC 规范定义接口,具体的实现由各大数据库厂商来实现。            JDBC可让Java通过程序操作关系型数据库,JDBC基于驱

weixin_53866772的博客 661

JAVA之数据库JDBC学习心得

JDBC驱动的背景 设计之初,JAVA的设计人员希望采用纯JAVA即可实现与所有的数据库进行通信,但是后来证明这是无法实现的,因为不同的数据库厂商有不同的传输协议,java无法满足同时实现所有的协议,并且当数据库厂商对协议一旦有更改,java则会随着更改。因此java的开发人员和数据库厂商的人员都希望java提供一套统一的API,可以访问任何数据库,同时提供一个数据库连接管理器,以便不...

xiaoyaGrace的博客 1951
上一篇: redis学习笔记3--数据类型
下一篇: redis学习笔记4--命令
iamlinuxasd
博客等级 码龄10年 4粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值