五月二十五日jdbc基础知识点
Jdbc连接数据库
1.建立与数据库的连接
1.1导入jdbc包
1.2加载JDBC驱动
java.lang.Class.forName(JDBCDriverClass);
Class.forName(driver);
MySQL的加载驱动
Class.forName(com.mysql.jdbc.Driver);
1.3获取数据库连接对象
Connection conn = DriverManager.getConnection(url,user,password);
2执行SQL语句
步骤一:创建Statement对象
步骤二:调用Statement对象相应方法将Sql语句发送到所连接数据库
2.1创建执行对象
Statement stmt = conn.createStatement();
2.2执行查询语句:
public ResultSet executeQuery(String selectSql)
ResultSet rs = stmt.executeQuery(selectSql);
2.3 执行增删改语句:
public ResultSet executeUpdate(String updateSql);
Result rs = stmt.executeUpdate(updateSql);
3.处理返回结果
while(rs.next()){
String no = rs.getString("sNo");
String name = rs.getString("sName");
String sex = rs.getString("sex");
Int age = rs.getInt("age");
String dept = rs.getString("dept");
String address = rs.getString("address");
System.out.println(no+"\t"+name+"\t"+sex+"\t"+age+"\t"+dept+"\t"+address));
};
4.关闭创建的各种对象
步骤1:关闭结果集对象rs
步骤2:关闭执行对象stmt
步骤3:关闭数据库连接对象conn
try{
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(conn!=null) conn.close();}
catch(Exeption e){e.printStackTrace();}
public class app17_15 {
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/ku";
private static String user = "root";
private static String password = "root";
public static void main(String[] args) {
String sql = "SELECT sNo,sName,sex,age,dept,address FROM student WHERE dept = '计算机'";
try(
//创建数据库连接
Connection conn= DriverManager.getConnection(url,user,password);
//执行SQL语句
Statement stmt = conn.createStatement();
//处理返回结果
ResultSet rs = stmt.executeQuery(sql);
){
Class.forName(driver);//加载MySQL的驱动
while(rs.next()){
String no = rs.getString("sNo");
String name = rs.getString("sName");
String sex = rs.getString("sex");
int age = rs.getInt("age");
String dept = rs.getString("dept");
String address = rs.getString("address");
System.out.println(no+"\t"+name+"\t"+sex+"\t"+age+"\t"+dept+"\t"+address);
}
}
catch (Exception e){
e.printStackTrace();
}
}
}
5.jdbc中三种SQL对表查询方式
第一种:Statement接口执行不带参数的静态SQL语句查询
静态SQL语句指执行executeQuery()以及executeUpdate()方法时,
SQL语句没有参数
第二种:PreparedStatement接口执行动态SQL语句查询
第三种:CallableStatement接口执行存储过程调用
public class app17_16 {
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/ku";
private static String user = "root";
private static String password = "root";
public static void main(String[] args) {
String selectSql = "SELECT * FROM student WHERE dept = '计算机'";
String insertSql = "INSERT INTO student(sNo,sName,sex,age,dept,address) VALUES('9','刘六','女',22,'外语','湖南')";
String updateSql = "UPDATE student SET dept ='金融' WHERE sNo = '7'";
String deleteSql = "DELETE FROM student WHERE sNo = '3'";
try(
Connection conn = DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(selectSql);
){
Class.forName(driver);
while(rs.next()) {
String no = rs.getString("sNo");
String name = rs.getString("sName");
String sex = rs.getString("sex");
int age = rs.getInt("age");
String dept = rs.getString("dept");
String address = rs.getString("address");
System.out.println(no + "\t" + name + "\t" + sex + "\t" + age + "\t" + dept + "\t" + address);
}
{
int count = stmt.executeUpdate(insertSql);
System.out.println("添加了"+count+"记录到student表");
count = stmt.executeUpdate(updateSql);
System.out.println("修改了"+count+"记录到student表");
count = stmt.executeUpdate(deleteSql);
System.out.println("删除了"+count+"记录到student表");
}
}
catch (Exception e){
e.printStackTrace();
}
}
}
总结:熟悉了一遍数据库与idea的连接
创建数据库连接对象
创建SQL执行对象
处理返回结果集
关闭对象
令我耗时的是程序出来咯,但由于没有导入jar包,导致出错
五月二十五日jdbc基础知识点的更多相关文章
- JAVA基础知识点总结(全集)
1.JAVA简介 1.1java体系结构:j2se,javaweb,j2ee 1.2java特点:平台无关(虚拟机),垃圾回收(使得java更加稳定) 1.3 JDK与JRE,JDK:java开发环境 ...
- Spring4.x 基础知识点
# Spring4.x 基础知识点## 第二章 快速入门- 一般情况下,需要在业务模块包下进一步按分层模块划分子包,如user\dao.user\service.viewspace\dao.views ...
- fastclick 源码注解及一些基础知识点
在移动端,网页上的点击穿透问题导致了非常糟糕的用户体验.那么该如何解决这个问题呢? 问题产生的原因 移动端浏览器的点击事件存在300ms的延迟执行,这个延迟是由于移动端需要通过在这个时间段用户是否两次 ...
- .NET基础知识点
.NET基础知识点 l .Net平台 .Net FrameWork框架 l .Net FrameWork框架提供了一个稳定的运行环境,:来保障我们.Net平台正常的运转 l 两种交 ...
- JavaScript 开发者经常忽略或误用的七个基础知识点(转)
JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...
- JavaScript 开发者经常忽略或误用的七个基础知识点
JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...
- jdbc基础 (五) 连接池与数据源 DBCP以及C3P0的使用
一.连接池的概念和使用 在实际应用开发中,特别是在WEB应用系统中,如果JSP.Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接.打开数据库.存取数 ...
- jdbc基础 (四) 批处理
批处理,就是字面上的意思,一次性处理一批sql语句. 直接看例子吧: package com.cream.ice.jdbc; import java.sql.Connection; import ja ...
- jdbc基础 (三) 大文本、二进制数据处理
LOB (Large Objects) 分为:CLOB和BLOB,即大文本和大二进制数据 CLOB:用于存储大文本 BLOB:用于存储二进制数据,例如图像.声音.二进制文件 在mysql中,只有B ...
- jdbc基础 (二) 通过properties配置文件连接数据库
csdn博文地址:jdbc基础 (二) 通过properties配置文件连接数据库 上一篇描述了对mysql数据库的简单操作,下面来看一下开发中应该如何灵活应用. 因为jdbc对数据库的驱动加载.连接 ...
随机推荐
- python 函数默认值误区
当创建python函数时,默认值参数实在执行def语句的时候创建的也即是在创建该函数的时候,而不是在调用该函数的时候创建的. def append(x, lst = []): lst.append(x ...
- 监控室NTP/GPS同步时钟解决方案
深圳市立显电子有限公司,专业LED时钟生产厂家!--------[点击进入] 车站.机场.学校等场所监控室布置要求: 1.宜选择建筑物中环境噪声较小的声场所.如车站票务中心后台.机场保安值班室. ...
- 为什么你需要升级 pip
更新软件版本可以修复bug,增加新功能和提升性能.例如,NumPy 1.20 添加了类型注释,并在可能的情况下通过使用SIMD来提高性能.如果您要安装NumPy,则可能要安装最新版本. 相反,如果您使 ...
- linux 学习之xargs
xargs 可以将筛选结果作为执行条件 如 ls *.go | xargs rm -rf 删除当前目前所有后缀为go的文件 指定单行列数 cat test.txt | xargs -n2
- ACwing语法基础课第一节课例题与习题及个人总结
第一次课例题 若涉及到浮点数的计算,float一般是6到7位有效数字,double一般是15到16位有效数字,但是为了方便起见,建议直接设为double,因为若涉及浮点数的乘除运算,使用float类型 ...
- filter CTF
filter CTF 输入url http://dc1ce3ad-eed4-48fd-a068-71aef12f7654.node.vaala.ink?file=demo.php 参考题目filter ...
- 05.常用 API 第二部分
一.Object 类 是类层次结构的根 (父) 类. String toString () 返回该对象的字符串表示,其实该字符串内容就是对象的类型 + @ + 内存地址值. 由于 toString ...
- DB help
using Dapper; using System; using System.Collections; using System.Collections.Generic; using System ...
- Matlab %叁
###本章内容十分多 第三章:Variables and Data access Data Types numeric:double.single.int8(16.32.64bit[integer]) ...
- 源代码管理工具介绍(以GITHUB为例)
Github:全球最大的社交编程及代码托管网站,可以托管各种git库,并提供一个web界面 1.基本概念 仓库(Repository):用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库 ...