JDBC+mysql

1.       什么是JDBC?JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

2.  jdbc操作数据库的总体模型:

       1)一张表对应一个pojo类,也就是一个表对应一个java对象。

       2)pojo类中的属性对象表中的相应的字段。

       3)一个pojo类有一个dao类,通过导类操作对应的pojo类中的属性值来实现对数据库中数据的曾、删、改、查等操作

 

 

                             JDBC 操作数据库的模型 

3.  连接数据库的种类及方法:

不同的数据库,使用的驱动类不同,对应的连接对象也不同,不过他们都有共同点,

      驱动类都是要到对应的官网下载驱动包,比如mysql的驱动包为:mysql-connector-java-5.0.5-bin.jar,将驱动包放置在工程的lib文件夹下,如果没有该文件夹,就新建一个,把驱动包复制进去,然后进行配置,有些会自动进行配置。连接url为jdbc:+所用的数据库类型+访问路径+端口号+要操作的数据库,接着根据用户和密码得到连接对象,常用的数据库类型得到连接的方法如下:

1)、Oracle8/8i/9i数据库(thin模式)

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    String url="jdbc:oracle:thin:@localhost:1521:orcl";
    //orcl
为数据库的SID
    String user="test";
    String password="test";
    Connection conn= DriverManager.getConnection(url,user,password);

    2)、DB2数据库

    Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
    String url="jdbc:db2://localhost:5000/sample";
    //sample
为你的数据库名
    String user="admin";
    String password="";
    Connection conn= DriverManager.getConnection(url,user,password);

    3)、Sql Server7.0/2000数据库

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
    //mydb
为数据库
    String user="sa";
    String password="";
    Connection conn= DriverManager.getConnection(url,user,password);

    4)、Sybase数据库

    Class.forName("com.sybase.jdbc.SybDriver").newInstance();
    String url =" jdbc:sybase:Tds:localhost:5007/myDB";
    //myDB
为你的数据库名
    Properties sysProps = System.getProperties();
    SysProps.put("user","userid");
    SysProps.put("password","user_password");
    Connection conn= DriverManager.getConnection(url, SysProps);

    5)、Informix数据库

    Class.forName("com.informix.jdbc.IfxDriver").newInstance();
    String url =
    "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
    user=testuser;password=testpassword";
    //myDB
为数据库名
    Connection conn= DriverManager.getConnection(url);

    6)、MySQL数据库

Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicod
    e=true&characterEncoding=8859_1"
    //myDB
为数据库名
    Connection conn= DriverManager.getConnection(url);

 

 

4.JDBC常用接口:

 

ResultSet

代表执行查询sql的结果集对象,通过遍历结果集可以得到查询的数据。

Statement

用于执行一条sql查询语句的声明对象,执行后可以返回ResulSet对象,其它的语句返回命令执行的个数

PreparedStatement

用于执行预编译sql语句的声明对象,执行查询后可以返回ResulSet对象,其它的语句返回命令执行的个数。

Connection

一个Connection对象代表程序与数据库的一个连结,用与创建Statement对象.

5.下面通过一个简单的列子把这些知识串联起来:

    假设数据库类型使用的是mysql类型,已经创建好了名MyDB数据库,MyDB里面有一个课程

course,表中有字段,课程代号Cid、课程名称Name、课程学分Score、课程描述Desce四个字段

那么运用jdbc来操作数据库的步骤如下:

1)得到数据库连接对象:

//创建数据库的处理类
public class JDataBase {
	// 取得数据库的连接对象
	public static java.sql.Connection getConnection() {
		java.sql.Connection conn = null;
		if (conn == null) {
			// 连接数据库URL地址
			String url = "jdbc:mysql://localhost:3306/MyDB";
			// 连接数据库的用户名
			String user = "root";
			// 连接数据库的密码
			String password = "123456";
			try { // 创建连接数据库的驱动类对象 java反射技术
				Class.forName("com.mysql.jdbc.Driver");
				// 根据驱动管理类,得到数据库的连接对象
				conn = java.sql.DriverManager
						.getConnection(url, user, password);
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			} catch (java.sql.SQLException e) {
				e.printStackTrace();
			}
		}
		return conn;
	}

}

 2)创建表course的pojo类名为CoursePojo,并写好对应的get和set方法

//课程表的pojo类
public class CoursePojo {
	private String CId;//课程代号
	private String Name;//课程名称
	private String Score;//课程学分
	private String Desce;//课程描述
	//从写无参构造器
	public CoursePojo(){}
	//重写构造器并传入参数,以方便创建对象
	public CoursePojo(String CId,String Name,String Score,String Desce){
		this.CId=CId;
		this.Name=Name;
		this.Score=Score;
		this.Desce=Desce;
	}
	public String getCId() {
		return CId;
	}
	public void setCId(String cId) {
		CId = cId;
	}
	public String getName() {
		return Name;
	}
	public void setName(String name) {
		Name = name;
	}
	public String getScore() {
		return Score;
	}
	public void setScore(String score) {
		Score = score;
	}
	public String getDesce() {
		return Desce;
	}
	public void setDesce(String desce) {
		Desce = desce;
	}
	
}
  

 

 

 

 

3)创建操作CoursePojo中属性值的ManagerDao类,并实现对数据的增删改查

 

 
//操作数据库的导类 
public class ManagerDao {
	public static void main(String[] args) {
		// 创建导类对象
		ManagerDao dao = new ManagerDao();
		for (int i = 1; i < 10; i++) {
			// 创建课程pojo对象,并传人相应的参数
			CoursePojo c = new CoursePojo("00" + i, "course" + i, "" + i,
					"desc" + i);
			// 调试查找课程的方法
			System.out.println("课程信息:" + dao.searchCourse(c).get(0).getName());
			// 调试修改课程的方法
			//
			dao.modifyCourse(c);
			System.out.println("xiug ");
		}
	}

	// 添加课程的方法,返回sql语句执行条数,如果返回0,则表示操作失败
	public int addCourse(CoursePojo c) {
		int count = 0;
		// 获得数据库连接
		java.sql.Connection conn = JDataBase.getConnection();
		try { // 编写需要执行的sql语句
			String sql = "insert into course(CId,Name,Score,Desce) values(?,?,?,?)";
			// 得到预编译处理对象
			java.sql.PreparedStatement pstmt = conn.prepareStatement(sql);
			// 向数据库中插入相应的数据
			pstmt.setString(1, c.getCId());
			pstmt.setString(2, c.getName());
			pstmt.setString(3, c.getScore());
			pstmt.setString(4, c.getDesce());
			count = pstmt.executeUpdate();
			// 关闭接口集
			pstmt.close();
			conn.close();
		} catch (Exception ef) {
			System.out.println("插入课程失败");
			ef.printStackTrace();
		}
		return count;
	}

	// 查找课程信息,返回一个存有课程信息的队列
	public java.util.ArrayList<CoursePojo> searchCourse(CoursePojo c) {
		// 创建一个队列对象
		java.util.ArrayList<CoursePojo> list = new java.util.ArrayList<CoursePojo>();
		// 获得数据库连接
		java.sql.Connection conn = JDataBase.getConnection();
		try {
			// 编写查询sql语句
			String sql = "select * from course where CId=" + c.getCId();
			// 得到执行对象
			java.sql.Statement stmt = conn.createStatement();
			// 返回一个存有查询结果的结果集
			java.sql.ResultSet set = stmt.executeQuery(sql);
			// 遍历结果集,并且将查询的数据设置pojo对象的属性
			while (set.next()) {
				c.setCId(set.getString(1));
				c.setName(set.getString(2));
				c.setScore(set.getString(3));
				c.setDesce(set.getString(4));
				// 将课程对象存到队列中
				list.add(c);
			}
			// 关闭接口集
			set.close();
			stmt.close();
			conn.close();
		} catch (Exception ef) {
			ef.printStackTrace();
		}
		return list;
	}

	// 修改课程
	public int modifyCourse(CoursePojo c) {
		int count = 0;
		// 获得数据库连接
		java.sql.Connection conn = JDataBase.getConnection();
		try {
			// 拼凑sql修改语句语句
			String sql = "update course set Name='" + c.getName() + "',Score='"
					+ c.getScore() + "',Desce='" + c.getDesce()
					+ "' where CId=" + c.getCId();
			java.sql.PreparedStatement pstmt = conn.prepareStatement(sql);
			count = pstmt.executeUpdate();
			pstmt.close();
			conn.close();
		} catch (Exception ef) {
			ef.printStackTrace();
		}
		return count;
	}

	// 删除课程的方法
	public int deleteCourse(CoursePojo c) {
		int count = 0;
		// 获得数据库连接
		java.sql.Connection conn = JDataBase.getConnection();
		try {
			String sql = "delete from course where CId=" + c.getCId();
			java.sql.PreparedStatement pstmt = conn.prepareStatement(sql);
			// 执行SQL语句
			count = pstmt.executeUpdate();
			// 关闭接口 集
			pstmt.close();
			conn.close();
		} catch (Exception ef) {
			ef.printStackTrace();
		}
		return count;
	}

}
 

  说明:在查找时将查找结果存到队列中是为了在使用时方便取出来,其他操作返回一个int是为了判断操作是否执行成功。sql有两种语句,一种是拼凑sql语句,另一种是占位符sql语句,比如String sql = "insert into course(CId,Name,Score,Desce) values(?,?,?,?)";使用这中语句的好处是执行的速度快,而且比较安全,因为它是先发送语句,再发送对应的数据,而拼凑sql语句是一种很有规则的语句,很容易被人破解。


6.总结

   在使用jdbc操作数据库时,细心是最重要的,在拼凑sql语句时玩的是文字游戏,不小心写错一个字母,得出的结果就可能完全不同,精彩性的报语法错误,关键的是每一步都打印出调试的信息,这样方便与出错时检查

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2006NOIP普及组真题 4. 数列 从上述推理中,我们发现要输出的幂次和中的第 N 项(也就是幂次和中的序号N),对应的二进制位数和幂次和对应的二进制位数相同。当 k=3 时,k的幂次为1, 3, 9, 27, 81…,即第0位,第2位均为1,转成 k 进制(k=3)时。,即第2位,第3位均为1,转成 k 进制(k=3)时。转成 k 进制(k=3)时的幂次和为。,即第0位,第1位,第2位均为1,(即第0位,第1位,第2位均为1)N=12时,12的二进制是。(即第0位,第2位均为1)(即第2位,第3位均为1)结论:这道题就变成了。 阅读详情

相关推荐

VC Spyglass实战指南:从零开始掌握CDC约束配置与调试

本文详细介绍了如何使用VC Spyglass进行CDC约束配置与调试,从基础环境搭建到典型CDC问题调试实战,帮助开发者快速掌握跨时钟域验证技术。通过TCL脚本和SDC约束的深度解析,提升CDC验证效率,避免常见设计风险。

weixin_26757925的博客 298

JDBC 连接 MySQL

JDBC 是 Java DataBase Connectivity (Java 数据连接)技术的简称,是一种可用于执行SQL 语句的 Java API。它由一些 java 语言编写的类和接口组成;程序员通过使用 jdbc 可以方便地将 SQL 语句传送给几乎任何一种数据库。......

程序猿追的博客 11万+

PowerBI启动故障排查:环境变量与兼容性设置全指南

本文详细解析了PowerBI启动故障的常见问题,如空白界面和闪退,并提供了环境变量修改与兼容性设置的全方位解决方案。通过调整WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS环境变量和设置兼容模式,有效解决PowerBI启动问题,提升软件运行稳定性。

weixin_29255731的博客 472

java操作数据库笔记

##JDBC 1.概念:Java database Connectivity java 数据库连接, java语言操作数据库 JDBC本质:其实就是官方(sun公司)定义的一套操作所有关系型数据库的规则,及接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包 。我们可以使用这套接口(jdbc)编程,真正执行的代码是驱动jar包中的实现类 2.快速入门: 步骤: 1...

qq_45455361的博客 972

海康AI开放平台实战:从数据集标注到摄像头部署的全流程避坑指南

本文是一份基于实战经验的海康AI开放平台全流程避坑指南。文章详细拆解了从数据集标注、模型训练优化到边缘摄像头部署的关键步骤,重点剖析了数据准备、参数调优、模型测试及SDK集成中的常见陷阱与解决方案,旨在帮助开发者高效、稳定地将AI算法落地于实际监控场景。

weixin_29103191的博客 697

【影像组学入门百问】1#---#3

理论上讲三大主流平台Windows, Linux和MacOS均可进行影像组学研究。根据笔者实际经验,如果内存不足可能导致软件罢工,其余显示、GPU等均非必要。显示:最小分辨率为1024×768(推荐为1280×1024或更好)。Slicer中的许多计算都是多线程的,并且将受益于多核,多CPU配置。计算机需要足够的内存和图形功能将原始数据和处理结果保存在其内存中。如涉及深度学习等方法的研究需根据实际需求配置电脑,无法一概而论。接口设备:推荐使用带滚轮的三键鼠标。内存:超过4GB(推荐8G以上)。

weixin_38594676的博客 1486

MYSQL-JDBC简介

即使用java语言操作关系型数据库的一套API。

Schwertlilien的小屋 1872

YOLOv8实战火焰和烟雾检测 (视频教程)

本课程将手把手地教大家使用YOLOv8结合可变形卷积(deformable convolution)训练火焰和烟雾数据集,完成一个多目标检测实战项目,可实时检测图像、视频、摄像头和流媒体(http/rtsp)中火焰和烟雾,并提供可视化演示界面 。

bai666ai的博客 1918

jdbc:mysql:///是什么

ssm_project

流楚丶格念的博客 2614

Python爬取小红书种草商品评论数据:从入门到实战全攻略(附反爬+情感分析方案)

Python爬取小红书种草商品评论数据,核心是“抓包找到正确的接口+处理登录验证+合理的反爬策略”。新手不用一开始就追求多笔记批量爬取和情感分析,先把单笔记的评论抓取和存储跑通,再逐步扩展功能。我做的这个系统现在每天帮朋友爬取3-5款美妆产品的评论,自动做情感分析和关键词提取,她再也不用手动翻评论了,效率提升了80%。如果你们在开发中遇到具体问题,比如接口找不到、Cookie过期、IP被封,都可以在评论区留言,我会一一解答。后续也可以出一期小红书笔记种草数据爬取的教程,帮助大家更全面地分析竞品数据。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1353

YOLO26-seg分割优化:轻量化卷积魔改 | 新的partial convolution(PConv)结合C3k2 | CVPR2023

​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 153

JDBC连接数据库(mysql)

String sql = "sql语句";

qq_57494486的博客 4672

GJB软件需求规格说明-编制指南

《软件需求规格说明》是软件开发过程必不可少的文档,并且需要评审,也是后续鉴定试验的依据,因此,非常有必要认真对待此文档。 文档对于很多开发技术人员来说是一件非常头疼的事,虽然标准有要求,但是光看标准还是难以下笔。 本文将详细讲解如何按照GJB 438C的要求编写《软件需求规格说明》。 注:文中有背景颜色内容为标准内容,加粗部分为范例。斜体部分为解释。 全文1.3万字

Abel的博客 6365

从入门到精通【MySQL】 JDBC

从入门到精通【MySQL】 JDBC

双吉堡工程专业的一名27届Javaer。 3881

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

MySQL的JDBC连接

MySQL的JDBC连接MySQL的JDBC概念MySQL的JDBCJDBC添加数据封装连接工具更新数据和事务删除数据查询数据 MySQL的JDBC概念 JDBC 是 Java Database Connective的缩写,表示使用Java去连接数据库进行数据操作的过程 MySQL的JDBC 创建动态项目-以eclipse为例,首先要创建动态项目 连接开发包(在www.mvnrepositor...

hcwdd的博客 2万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

MYSQL中JDBC的使用

JDBC 是Java 中的一组API,用于执行SQL 操作(例如CRUD 操作:增、删、改、关系),同时可以和各种类型的数据库类型进行连接(MySQL、Oracle、SQL Server 等)。在项目中,可以通过下载MySQL的Connector/J包并添加到项目的类路径中。时,避免了简单的字符串粘贴可能带来的代码差异性差、安全性低的问题(如SQL注入),提供了更安全和清晰的插值方式。

eternal__day的博客 2001

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

MySQL JDBC

JDBC是Java平台的一部分,它提供了一套完整的API,用于执行SQL语句、管理数据库连接和处理结果集。JDBC使得Java程序能够以一种统一的方式访问各种数据库,而无需关心底层数据库的具体实现。MySQL与JDBC的集成是Java开发中不可或缺的一部分。通过本文的介绍和代码示例,您应该能够掌握MySQL JDBC的基本用法和最佳实践。在实际项目中,根据需求选择合适的JDBC驱动、连接池和事务管理策略,以确保数据库操作的高效性和可靠性。

Alexanderkik的博客 1321

【MySQL系列】Java的JDBC编程

MySQL数据库 JDBC编程部分的内容~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

哎呀是小张啊 的博客 2030

[MySQL]初始JDBC编程

JDBC即Java DataBase Connectivity , Java数据库连接 , 是一种用于执行SQL语句的Java API. 它是Java中数据库的连接规范.

Node_Hao的博客 4053

com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver

一、 com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver介绍 1.MySQL Connector / J介绍 MySQL通过MySQL Connector / J为使用Java编程语言开发的客户端应用程序提供连接。Connector / J实现了 Java数据库连接(JDBC)API以及它的许多增值扩展。它还支持新的X DevAPI。 MySQL Connector / J是JDBC Type 4驱动程序,实现了 JDBC 4.2规范。Type 4表示驱动程序是

XiaoPub的博客 9170

MySQL JDBC 编程

难道是针对⼀个数据库写⼀套调⽤的⽅法吗?因为驱动和 API 完全不同,所以不同的数据操作也是不同 的,要针对每种数据库写⼀套调⽤代码就太麻烦了,那要怎么办?。2.1 JDBC 定义JDBC,即 Java Database Connectivity,Java 数据库连接。是⼀种⽤于执行 SQL 语句的 Java API, 它是 Java 中的数据库连接规范。这个 API 由 java.sql.*,javax.sql.* 包中的⼀些类和接⼝组成,

2401_87167748的博客 1848

MySQL之JDBC编程

是 Java 提供的一种,用于连接和操作关系型数据库。JDBC 是 Java 语言和数据库之间沟通的桥梁,使得 Java 应用程序可以与各种数据库进行交互。

YQY18289570091的博客 1183

【MySQL】Java的JDBC编程

Java的JDBC编程 1. 数据库编程的必备条件 2. Java的数据库编程:JDBC 3. JDBC工作原理 4. JDBC使用 配置 最基本的一个JDBC程序编写流程 JDBC查询 4.1 JDBC开发案例 4.2 JDBC使用步骤总结 5. JDBC常用接口和类 5.1 JDBC API 5.2 数据库连接Connection 5.3 Statement对象 5.4 ResultSet对象 6. 应用案例 7. 内容重点总结 面试问答: 8. 课后作业

2402_85428625的博客 2124

mysql jdbc驱动_安装 mysql 的 JDBC driver

You can install the Connector/J package using either the binary or source distribution. The binary distribution provides the easiest method for installation; the source distribution lets you customize...

weixin_39709178的博客 985

JDBC连接MySQL

JDBC-MySQL 一、介绍 JDBC(Java DataBase Connectivity java数据库连接)是JAVA官方提供的一套接口,用于连接并操作数据库。 不同的数据库厂商都提供了一套JDBC的实现类,并以jar包形式发布,用于使我们的程序可以通过这套实现类来操作其数据库,这套jar称为”驱动”。我们无需记住这些数据库提供商提供的JDBC实现类的名字,只要使用JDBC接口看...

YIMT的博客 1323

MySQL的JDBC编程

本文介绍了MySQL数据库的JDBC操作流程,包括前置知识、写操作和读操作的实现步骤。内容涵盖:1)如何创建Maven项目并引入MySQL依赖;2)URL格式解析;3)JDBC写操作流程(创建数据源、建立连接、构造SQL、执行更新、释放资源);4)使用PreparedStatement防止SQL注入;5)JDBC读操作流程(执行查询、处理ResultSet结果集)。文章通过代码示例详细演示了插入、查询等基本操作,并强调了资源释放的顺序和SQL语句参数化的安全性考虑。

weixin_41965831的博客 827
上一篇: 发发牢骚
下一篇: Servlet常用到的知识
Champion_netjava
博客等级 码龄16年 10粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值