`
jandroid
  • 浏览: 1935431 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JDBC学习笔记

 
阅读更多

JDBC笔记

一、CURD介绍

是指在计算处理时的增加(create)、查询(retrieve)(重新得到数据)、更新、和删除几个音讯的首写字母的简写。主要是用在描述软件系统中数据库或者持久层的基本操作功能。

二、JDBC基本概念

JDBC(JavaDataBaseConnectivity,Java数据库连接)是一种用于执行SQL语句的JAVAAPI。可以为多种关系数据库提供统一访问。它由一组用JAVA语言编写的类和接中组成。JDBC为工具/数据库开发人员提供了一个标准API,据此,可以构建更高级的工具和接口。使数据库开发人员能够用纯JAVAAPI编写数据库应用程序。同时,JDBC也是一个商标名。

三、JDBC驱动的分类

目前较为常见的JDBC驱动程序可以分为以下四类:

1.JDBC-ODBC桥连接

2.本地协议纯JAVA驱动程序

3.网络协议纯JAVA驱动程序

4.本地API

1、JDBC-ODBC桥连接方式操作数据库

A、配置数据源

控制面板à管理工具à数据源(ODBC)à用户DSN添加àSQLServerà完成à输入名称描述服务器(.代表本机)à选择一种登录模式à下一步à更改默认数据库à完成à测试

B、在程序中连接数据源

四步曲:

1、加载驱动

2、得到数据源

3、创建Statement或者PreparedStatement

4、执行CRUD

/**

*演示:JDBC-ODBC桥连接操作数据库

*1、配置数据源

*2、在程序中连接数据源

*/

packageclass16.test1;

importjava.sql.DriverManager;

importjava.sql.SQLException;

importjava.sql.*;

publicclassJDBCDemo01{

publicstaticvoidmain(String[]args)throwsSQLException{

Connectionct=null;

Statementsm=null;

try{

//1.加载驱动

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//2.得到连接。指定数据源。登录名,密码

ct=DriverManager

.getConnection("jdbc:odbc:Mytest","sa","123456");

//3.创建Statement或者PreparedStatement

//用处:主要是用于发送SQL语句

sm=ct.createStatement();

//插入记录

//inti=

//sm.executeUpdate("insertintoCoursevalues('010','JDBC','2','12-601')");

//if(i==1){

//System.out.println("添加成功");

//}

//else{

//System.out.println("添加失败");

//}

////删除记录

//inti=sm.executeUpdate("deletefromCoursewherecno='010'");

//

//if(i==1){

//System.out.println("删除成功");

//}

//else{

//System.out.println("删除失败");

//}

//修改记录

// inti=sm

// .executeUpdate("updateCoursesetcredit=3wherecno='009'");

//

// if(i==1){

// System.out.println("更新成功");

// }else{

// System.out.println("更新失败");

// }

//用executeQuery()查询返回一个ResultSet结果集

ResultSetrs=sm.executeQuery("select*fromCourse");

//因为rs是指向结果集中的第一行的前一行,可循环取出

while(rs.next()){

Stringcno=rs.getString(1);//列号根据数据类型取出相应的类型

Stringcname=rs.getString(2);

intcredit=rs.getInt(3);

Stringclassroom=rs.getString(4);

System.out.printf(cno+"/t"+cname+"/t"+credit+"/t"+classroom+"/n"); }

}catch(Exceptione){

e.printStackTrace();

}finally{//关闭资源,后创建先关闭

if(sm!=null){//加个if是为了让程序变得分健壮一些

sm.close();

}

if(ct!=null){

ct.close();

}

}

}

}

四、Statement与PreparedStatement的区别:

Statement与PreparedStatement都可以用于把SQL语句从JAVA程序中发送到指定数据库,并执行SQL语句,但他们也存在差别

a)直接使用Statement,驱动程序一般不会对SQL语句作处理,而是直接交给数据使用PreparedStatement形成一个预编译的过程,并且会对语句作字符集的转换(至少在SQLSERVER)中如此。

如此,有两个好处:对于多次重复执行的语句,使用PreparedStatement效率会更高一点。并且在这种情况下比较适合使用批处理,另外,可以比较好地解决系统的本地化问题

b)PreparedStatement还能有效的防止危险字符的注入,也就是SQL注入

在SQLSERVER中存在这样一种select*fromdbo.Coursewherecno='0320'or1='1'的危险语句。加上or1='1'前面条件怎么乱写都会出结果

预编译的解释

/**

*演示:用PreparedStatement执行操作数据库

*

*PreparedStatement的好处:执行查询效率高。

*能有效的防止危险字符的注入但需要使用?机制

*/

packageclass16.test1;

importjava.sql.*;

publicclassJDBCDemo02{

publicstaticvoidmain(String[]args){

Connectionct=null;

ResultSetrs=null;

PreparedStatementps=null;

try{

//1.加载驱动

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//2.得到连接

ct=DriverManager.getConnection("jdbc:odbc:Mytest","sa","123456");

//3.创建PreparedStatement对象

// //演示查询

// ps=ct.prepareStatement("select*fromCoursewherecno=?");

// ps.setString(1,"001");//可以对多个?赋值

// rs=ps.executeQuery();//执行查询

// while(rs.next()){//遍历结果集

// Stringcno=rs.getString(1);//列号

// Stringcname=rs.getString(2);

// intcredit=rs.getInt(3);

// Stringclassroom=rs.getString(4);

// System.out.printf(cno+"/t"+cname+"/t"+credit+"/t"+classroom+"/n");

// }

//演示插入

// ps=ct.prepareStatement("insertintoCoursevalues(?,?,?,?)");

// ps.setString(1,"011");

// ps.setString(2,"JDBC");

// ps.setInt(3,2);

// ps.setString(4,"3-301");

//演示删除

ps=ct.prepareStatement("deletefromCoursewherecno=?");

ps.setString(1,"010".trim());

inti=ps.executeUpdate();

if(i==1){

System.out.println("删除成功");

}

else{

System.out.println("删除失败");

}

}catch(Exceptione){

e.printStackTrace();

}

finally{//关闭资源

if(ps!=null){

try{

ps.close();

}catch(SQLExceptione){

e.printStackTrace();

}

} if(ct!=null){

try{

ct.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

}

}

}

2、JDBC连接方式

首先要加入JAR包

四步曲:

1、加载驱动

2、得到连接

3、创建Statement或者PreparedStatement

4、执行CRUD

几个不同:

加载驱动方式的不同:

Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver)

得到连接方式不同:

Connection ct=DriverManager.getConnection("jdbc:sqlserver://PC-201006071344:1433;databaseName=Ch03","sa","123456");

代码如下:

packageclass18.test1;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

publicclassJDBCDemo03{

publicstaticvoidmain(String[]args){

Connectionct=null;

ResultSetrs=null;

PreparedStatementps=null;

try{

//加载驱动

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//得到连接 ct=DriverManager.getConnection("jdbc:sqlserver://PC-201006071344:1433;databaseName=Ch03","sa","123456");

ps=ct.prepareStatement("select*fromCourse");

rs=ps.executeQuery();

while(rs.next()){

Stringcno=rs.getString(1);

Stringcname=rs.getString(2);

intcredit=rs.getInt(3);

Stringclassroom=rs.getString(4);

System.out.printf(cno+"/t"+cname+"/t"+credit+"/t"+classroom+"/n");

}

}catch(Exceptione){

e.printStackTrace();

}

finally{//关闭资源

try{

if(ps!=null)ps.close();

if(ct!=null)ct.close();

}catch(Exceptione2){

//TODO:handleexception

}

}

}

}

<!--EndFragment-->
分享到:
评论

相关推荐

    JDBC学习笔记--JDBC学习笔记

    JDBC学习笔记 JDBC(Java DataBase Connectivity)是一种Java程序语言访问数据库的标准接口。它使得Java程序可以连接到各种不同的数据库管理系统,例如Oracle、SQL Server、MySQL、DB2、Sybase等。 JDBC的概念 ...

    JDBC 学习笔记 JDBC 学习笔记

    **JDBC学习笔记** 在Java开发中,JDBC(Java Database Connectivity)是连接数据库的关键技术。它是Java API,允许Java程序与各种类型的数据库进行交互。本笔记将深入探讨JDBC的核心概念、工作原理以及实际应用。 ...

    jdbc学习笔记(PDF格式)

    ### JDBC学习笔记知识点详解 #### 一、JDBC原理概述 **JDBC**(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC...

    jdbc学习笔记完美版

    JDBC的学习笔记涵盖了从基本概念到实际操作的各个方面,对于初学者来说是一份很好的参考资料。通过学习JDBC,开发者能够有效地在Java应用程序中集成数据库功能,实现数据的增删改查以及与存储过程的交互。理解和掌握...

    jdbc 学习 笔记 代码例子4

    jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子

    JDBC学习笔记总结,可以看看

    "JDBC学习笔记总结" JDBC(Java Database Connectivity)是一种Java API,用于连接和操作关系数据库。下面是JDBC学习笔记的总结: 连接到数据库的方法 1. ODBC(Open Database Connectivity):是一个以C语言为...

    JDBC笔记_JDBC学习笔记_

    在本篇JDBC学习笔记中,我们将深入探讨JDBC的基础知识、核心概念以及实际应用。 一、JDBC基础 1. JDBC驱动程序:JDBC驱动是连接Java应用程序和数据库之间的桥梁。根据实现方式,JDBC驱动分为四种类型:类型1(JDBC...

    达内jdbc学习笔记

    总的来说,"达内jdbc学习笔记"涵盖了JDBC基础、数据库连接、SQL执行、结果集处理、事务管理和性能优化等多个关键知识点,对Java开发者来说是宝贵的参考资料。通过深入学习和实践,可以熟练地使用Java进行数据库操作...

    jdbc 学习 笔记 代码例子3

    jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子

    jdbc 学习 笔记 代码例子2

    jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子

    JDBC学习笔记(精华版)-1

    本篇JDBC学习笔记将深入探讨JDBC的核心概念、操作步骤以及最佳实践。 **一、JDBC基本概念** 1. **驱动程序**:JDBC驱动程序是Java应用程序与数据库之间的桥梁,分为四种类型:JDBC-ODBC桥接驱动、本地API驱动、...

    jdbc 学习 笔记 代码例子1

    jdbc学习用笔记和代码例子jdbc学习用笔记和代码例子jdbc学习用笔记和代码例子

    JDBC学习笔记(笔记+包含详细注释的代码)

    **JDBC学习笔记** Java Database Connectivity (JDBC) 是Java平台中用于与各种数据库进行交互的一组接口和类。它是Java SE的一部分,允许Java应用程序连接到数据库,执行SQL语句,处理结果集,并进行事务管理。这篇...

    JDBC 学习笔记+代码整理

    JDBC 学习笔记+代码整理

    传智播客视频Jdbc学习笔记

    ### 传智播客JDBC学习笔记精要 #### JDBC简述与连接 JDBC(Java Database Connectivity)是Java中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。在传智播客的JDBC...

    JDBC学习笔记教程文档

    **JDBC学习笔记教程文档** **一、JDBC概述** 1.1 **什么是JDBC** JDBC(Java Database Connectivity)是Java语言与各种数据库交互的一种标准接口,由Sun Microsystems公司开发,它允许Java应用程序通过Java代码来...

    JDBC学习笔记.txt

    JDBC学习笔记.txt

    配套学习资料:Java开发 - 尚硅谷JDBC学习笔记

    Java开发 - 尚硅谷JDBC学习笔记是一套深入解析Java数据库连接(JDBC)技术的教程,涵盖了从基础到进阶的各种知识点。JDBC是Java编程语言中用于访问数据库的标准应用编程接口,它允许程序员使用Java来执行SQL语句,...

Global site tag (gtag.js) - Google Analytics