今日知识

1. JDBC基本概念
2. 快速入门
3. 对JDBC中各个接口和类详解

JDBC:

1. 概念:Java DataBase Connectivity  Java 数据库连接, Java语言操作数据库
* JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
2. 快速入门
*步骤:
1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
1.复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
2.右键-->Add As Library
2. 注册驱动
3. 获取数据库连接对象 Connection
4. 定义sql
5. 获取执行sql语句的对象 Statement
6. 执行sql,接受返回结果
7. 处理结果
8. 释放资源
* 代码实现:
//1. 导入驱动jar包
//2.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//3.获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root");
//4.定义sql语句
String sql = "update account set balance = 500 where id = 1";
//5.获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//6.执行sql
int count = stmt.executeUpdate(sql);
//7.处理结果
System.out.println(count);
//8.释放资源
stmt.close();
conn.close();

JDBC:封装

1. 新建文件db.properties
//存放对应的键值对
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8
user=root
password=123456 2. JDBCUtils编写 public class JDBCUtils {
-- 获取Connection对象
public static Connection getConnection() throws Exception{
Connection connection = null;
//加载Driver类
Properties properties=new Properties();//获取键值对
//获取输入流,读取文件
properties.load(new FileReader("db.properties"));
String driver=properties.getProperty("driverClass");
String url=properties.getProperty("url");
String user=properties.getProperty("user");
String password=properties.getProperty("password");
//2. 注册驱动
Class.forName(driver);
// 3. 获取数据库连接对象 Connection
connection= DriverManager.getConnection(url,user,password);
return connection;
}
-- 释放资源
public static void releaseResource(Connection connection, Statement statement, ResultSet resultSet){
if (connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} }

对JDBC中各个接口和类详解

1. DriverManager:驱动管理对象
*功能
1. 注册驱动
Class.forName("com.mysql.jdbc.Driver");
2. 获取数据库连接
Connection connection= DriverManager.getConnection(url,user,password);
*参数:
* URL:指定的链接的路径
*url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8
* user:用户名
* password:密码
2. Connection
*功能:
1.获取执行SQL的对象
*PreparedStatement preparedStatement(String sql):
*Statement creatStatement();
2. 管理事务
1. 开启事务:*con.setAutoCommit(false):开启事务
2. 回滚:rollback;
*在catch中回滚事务
3. 提交事务:commit;
3. Statement:执行sql的对象
*功能:
1.boolean execute(String sql);//执行任意类型的sql语句
2. int executeUpdate(String sql);//执行任意类型的sql语句 执行DML(insert,update,delete),DDL(create,alter,drop)
* 返回值影响行数,可以通过返回值判断DML语句是否执行成功
3. ResultSet executeQuery(String sql):DQL(select)类型
4. ResultSet:
* 功能
*next():游标下移一个
*st.next():判断当前行是否是最后一行
*getXxx():获取值,Xxx代表获取的值的类型
getXxx(int i):获取值
i:代表列,第i列
例如:getString(1);
getXxx(String i):获取值
i:代表列的属性值
例如;getString("id"); 5. PreparedStatement
*功能:
使得sql执行语句分两步执行,防止用户使用sql的关键字达到非法访问数据库的目的
例如:
//2.定义sql语句
String sql="insert into account values(null,?,?)";
//定义sql语句执行对象,防止注入
PreparedStatement st=con.prepareStatement(sql);
//给? 赋值
st.setString(1, xxx);
st.setString(2, xxx);
//执行sql
rs=st.executeQuery(sql);

JDBC基础01的更多相关文章

  1. javascript基础01

    javascript基础01 Javascript能做些什么? 给予页面灵魂,让页面可以动起来,包括动态的数据,动态的标签,动态的样式等等. 如实现到轮播图.拖拽.放大镜等,而动态的数据就好比不像没有 ...

  2. Androd核心基础01

    Androd核心基础01包含的主要内容如下 Android版本简介 Android体系结构 JVM和DVM的区别 常见adb命令操作 Android工程目录结构 点击事件的四种形式 电话拨号器Demo ...

  3. java基础学习05(面向对象基础01)

    面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...

  4. jdbc基础 (五) 连接池与数据源 DBCP以及C3P0的使用

    一.连接池的概念和使用 在实际应用开发中,特别是在WEB应用系统中,如果JSP.Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接.打开数据库.存取数 ...

  5. jdbc基础 (四) 批处理

    批处理,就是字面上的意思,一次性处理一批sql语句. 直接看例子吧: package com.cream.ice.jdbc; import java.sql.Connection; import ja ...

  6. jdbc基础 (三) 大文本、二进制数据处理

    LOB (Large Objects)   分为:CLOB和BLOB,即大文本和大二进制数据 CLOB:用于存储大文本 BLOB:用于存储二进制数据,例如图像.声音.二进制文件 在mysql中,只有B ...

  7. jdbc基础 (二) 通过properties配置文件连接数据库

    csdn博文地址:jdbc基础 (二) 通过properties配置文件连接数据库 上一篇描述了对mysql数据库的简单操作,下面来看一下开发中应该如何灵活应用. 因为jdbc对数据库的驱动加载.连接 ...

  8. Linux基础01 学会使用命令帮助

    Linux基础01 学会使用命令帮助 概述 在linux终端,面对命令不知道怎么用,或不记得命令的拼写及参数时,我们需要求助于系统的帮助文档:linux系统内置的帮助文档很详细,通常能解决我们的问题, ...

  9. JDBC基础教程

    本文实例讲述了JDBC基础知识与技巧.分享给大家供大家参考.具体分析如下: 1.什么是JDBC? 通俗来讲JDBC技术就是通过java程序来发送SQL语句到数据库,数据库收到SQL语句后执行,把结果返 ...

随机推荐

  1. 【MySQL】ERROR 1005: Can't create table (errno: 150)的错误解决办法

    在mysql 中建立引用约束的时候会出现MySQL ERROR 1005: Can't create table (errno: 150)的错误信息结果是不能建立 引用约束. 出现问题的大致情况 1. ...

  2. UNIX SOCKET编程简介

    1  .  Layered Model of Networking Socket  编程的层次模型如下图所示,   最上面是应用层,应用层下面的是  SOCKET API  层,再下面是传输层和网络层 ...

  3. 团体程序设计天梯赛-练习集-L1-035. 情人节

    L1-035. 情人节 以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家.第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”.现给出此贴下点赞的朋友名单,请你找出那两位要请客 ...

  4. PAT_A1118#Birds in Forest

    Source: PAT A1118 Birds in Forest (25 分) Description: Some scientists took pictures of thousands of ...

  5. 【剑指Offer】51、构建乘积数组

      题目描述:   给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1].   其中B中的元素B[i]=A[0] * A[1]... * A[i-1] * A[i+1] ...

  6. kernel panic必备知识

    获得vmcore Kernel dump 是什么 Kdump – 捕捉kernel dump的工具 Kdump的工作原理 Kdump的配置 Dump分析的工具crash(1) 准备环境 根据vmcor ...

  7. python之testlink模块

    1.安装:pip install TestLink-API-Python-client >>>>>>待续

  8. Jquery向页面append新元素之后,如何解决事件的绑定问题?

    今天有get到一个新知识点,就是当我们向页面添加新的元素之后,加载之前的函数方法就对新元素失效了,下面我来说说如何解决这个问题的? 我先看jq api文档没有找到方法,无果只好到网上找些资料,果然找到 ...

  9. mysql 怎样先排序再分组

    权游游牧族:众所周知!一句SqL语句不能先排序再分组.所以这里给出几个案例 --表结构-- create table `shop` ( `id` int (10) PRIMARY KEY, `shop ...

  10. openldap+openssh+jumpserver实现跳板机监控系统

    首先感谢 http://www.jumpserver.org/ 提供的优秀跳板机系统. 我们把跳板机系统经过二次开发主要是 弃用角色功能使用ldap自动登录. 添加登录后临时认证. 上传下载我们自己在 ...