sql初——基础
1.JDBC:
- Java数据库连接(Java Database Connectivity,JDBC),是一种用于执行SQL语句的Java API,它由一组用Java编程语言编写的类和接口组成。
- JDBC为数据库开发人员提供了一个标准的API,使他们能够用纯Java API来编写数据库应用程序。
- 使用JDBC编写的程序能够自动地将SQL语句传送给相应的数据库管理系统。
- JDBC扩展了Java的功能,由于Java语言本身的特点,使得JDBC具有简单、健壮、安全、可移植、获取方便等优势。
2.JDBC API
| 接口/类 | 功能说明 |
|---|---|
| DriverManager | 数据库驱动管理类,用于加载和卸载各种驱动程序,并建立于数据库的连接 |
| Connection | 此接口用于连接数据库 |
| Statement | 此接口用于执行SQL语句并将数据检索到ResultSet中 |
| ResultSet | 结果集接口,提供检索SQL语句返回数据的各种方法 |
| PreparedStatement | 此接口用于执行预编译的SQL语句 |
| CallableStatement | 此接口用于执行SQL存储过程的语句 |
3.JDBC结构
1.JDBC API是Java开发工具包(JDK)的组成部份:
JDBC驱动程序管理器
JDBC驱动程序测试工具包
JDBC-ODBC桥
2.JDBC驱动程序管理器是JDBC体系结构的支柱,其主要作用是把Java应用程序连接到正确的JDBC驱动程序上。
3.JDBC驱动程序测试工具包为JDBC驱动程序的运行提供一定的可信度,只有通过JDBC驱动程序测试包的驱动程序才被认为是符合JDBC标准的。
4.JDBC-ODBC桥使ODBC驱动程序可被用作JDBC驱动程序。其目标是为方便实现访问某些不常见的DBMS,它的实现为JDBC的快速发展提供了一条途径
4.JDBC开发步骤
使用JDBC访问数据库的基本步骤一般如下:
- 加载JDBC驱动程序
- 创建数据库连接
- 创建Statement对象
- 执行SQL语句
- 处理返回结果
关闭创建的对象
5.有关next()
ResultSet是您访问数据库返回的数据表,也就是结果集合,一开始是处于第一行之前,即beforeFirst,第一次使用next()就将指针指向返回结果集的第一行。每使用一次next(),指针就指向下一行,这时候你就可以使用rs.getObject()或者getInt()或者getString()之类的方法返回该行的某一个字段的值,也就是getObject()方法里面的参数可以传递索引(索引由1开始),即如果你的数据库第一列的数据叫id,那你可以用getObject("id")或者getObject(1)得到你的rs目前指着的那一条数据的该列的值。当next()成功的时候其实会返回一个布尔值true,当指针指到最后一行的后面时候,即afterLast()就返回布尔值false。 所以第一次调用next()的时候应该是指向第一行数据。next()在指针指向第一行之前到最后一行之间的返回true的,也就是当你的指针已经指向到最后一行的数据集了,再用一次next()是返回true的,但此时再用一次next()就是false,因为执政已经到最后一行的后面了(也就是afterLast).
6.第一个程序代码:
import java.sql.*;
public class Four
{
private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static String url="jdbc:sqlserver://888888-pc:1433;DatabaseName=StudentScore";
private static String user="sa";
private static String password="###";
@SuppressWarnings("resource")
public static void main(String[] args)
{
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try
{
Class.forName(driver);
conn=DriverManager.getConnection(url,user,password);
//stmt=conn.createStatement();
/* stmt.executeUpdate("CREATE DATABASE HEO");//创建数据库
stmt.close();
conn.close();
*/
url="jdbc:sqlserver://888888-pc:1433;DatabaseName=HELLO";
conn=DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();//打开数据库
DatabaseMetaData meta=conn.getMetaData();//判断表是否存在
ResultSet set=meta.getTables(null, null, "test", null);
if(!set.next())//不存在就创建表
{
stmt.executeUpdate("CREATE TABLE test (sNo CHAR(20) NOT NULL PRIMARY KEY,sName char(20),sex CHAR(2) NOT NULL)");
}
// stmt.executeUpdate("INSERT INTO test(sNo,sName,sex) VALUES('2018','hi','男')");
//stmt.executeUpdate("INSERT INTO test(sNo,sName,sex) VALUES('2017','cs','女')");//插入数据
rs=stmt.executeQuery("SELECT *from test WHERE sName='sc'");//进行挑选
while(rs.next())
{
String no=rs.getString("sNo");
String name=rs.getString("sName");
String sex=rs.getString("sex");
System.out.println(no+" "+name+" "+sex+" ");
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(conn!=null) conn.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
sql初——基础的更多相关文章
- SQL server基础知识(表操作、数据约束、多表链接查询)
SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...
- 数据库开发基础-SQl Server 基础
SQL Server 基础 1.什么是SQL Server SQL:Structured Query Language 结构化查询语言 SQL Server是一个以客户/服务器(c/s)模式访问.使 ...
- 【SQL Server】SQL Server基础之存储过程
SQL Server基础之存储过程 阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储 ...
- Sql Server 基础知识
Sql Server 基础知识: http://blog.csdn.net/t6786780/article/details/4525652 Sql Server 语句大全: http://www.c ...
- Oracle数据库编程:PL/SQL编程基础
2.PL/SQL编程基础: PL/SQL块: declare 定义部分 begin 执行部分 exception 异 ...
- Oracle Pl/SQL编程基础
Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言控制结构, 良好的兼容性, 处理运行错误. Pl/SQL语言基础 sql是关系数据库的基本操作语言. s ...
- SQL Tuning 基础概述10 - 体会索引的常见执行计划
在<SQL Tuning 基础概述05 - Oracle 索引类型及介绍>的1.5小节,提到了几种"索引的常见执行计划": INDEX FULL SCAN:索引的全扫描 ...
- SQL数据库基础知识-巩固篇<一>
SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...
- oracle PL/SQL语法基础
目录 数据类型 定义变量 PL/SQL控制结构 参考资料 Oracle10g数据类型总结 PL/SQL之基础篇 数据类型 学习总结 字符类型 char.nchar.varchar.nvarchar:有 ...
随机推荐
- 修改gradle中央仓库,加快jar包下载速度
打开gradle项目的build.gradle文件 找到repositories,注释掉mavenCentral(),使用阿里云的仓库地址 repositories { //mavenCentral( ...
- UOJ Easy Round #5
Preface 本着刷遍(只刷一遍)各大OJ的原则我找到了一场UOJ的比赛 无奈UOJ一般的比赛难度太大,我就精选了UER中最简单的一场打了一下,就当是CSP前的练习吧 A. [UER #5]万圣节的 ...
- AtCoder Grand Contest 036
Preface 这篇已经鸽了好久的说,AGC037都打完了才回来补所以题目可能都记不大清楚了,如有错误请指正 这场感觉难度远高于上一场,从D开始就不会了,E没写(看了题解都不会写),F就是抄曲明姐姐的 ...
- 关于lambda总结-持续更新
阅读:https://blog.csdn.net/u013541140/article/details/102710138 1 public static void main(String[] arg ...
- 【linux】glibc升级
glibc升级 步骤如下: 1.下载解压glibc wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz tar zxvf glibc-2.18.ta ...
- Vue.js 源码分析(二十九) 高级应用 transition-group组件 详解
对于过度动画如果要同时渲染整个列表时,可以使用transition-group组件. transition-group组件的props和transition组件类似,不同点是transition-gr ...
- python asyncio call_soon, call_at, call_later
1. call_soon, 协程一运行就马上运行 def callback(sleep_times): print("success time {}".format(sleep_t ...
- CompletableFuture2
public class CompletableFuture2 { public static void main(String[] args) throws InterruptedException ...
- 《 .NET内存宝典》阅读指南 - 第1章
先发表生成URL以印在书里面.等书籍正式出版销售后会公开内容.
- Winform中设置ZedGraph因设置小刻度导致的竖直虚线显示过多
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...