Eclipse使用JDBC小案例
JDBC(Java Database Connectivity:Java访问数据库的解决方案)定义一套标准接口,即访问数据库的通用API,不同数据库厂商根据各自数据的特点去实现这些接口。
JDBC是Java应用程序和数据库之间的通信桥梁,是Java应用程序访问数据库的通道。
1.JDBC标准主要有一株接口组成,其好处是统一了各种数据库的访问方式;
2.JDBC接口的实现类称为数据库驱动,由数据库厂商提供,使用JDBC必须要导入接口;
第1部分 JDBC工作过程:
1)加载驱动,建立连接;
2) 创建语句对象;
3) 执行SQL语句;
4) 处理结果集;
5) 关闭连接;
第2部分 JDBC具体使用步骤:
1) 导入JDBC驱动jar;
使用Maven可以便于导入jar包和移植
2) 注册JDBC驱动;
参数:“驱动程序类名”
Class.forName(“驱动程序类名”);
3) 获得Connection对象
需要三个参数:URL,username,password
连接数据库
4) 创建Statement(语句)对象
conn.createStatement()方法创建对象
用于执行SQL语句
execute(ddl) 执行任何语句,常用语执行DDL
executeUpdate(DML) 执行DML语句 ,如insert,update,delete
executeQuery(DQL) 执行DQL语句,如select
5) 处理SQL执行结果:
execute(DDL) 如果没有异常则成功;
executeUpdate(DML) 返回数字,表示更新“行”数量,抛出异常则失败;
executeQuery(DQL) 返回ResultSet(结果集)对象,代表2维查询结果;
使用for遍历处理,如果查询失败抛出异常!
6) 关闭数据连接,最后一定要关闭!
conn.close();
第3部分 小案例
3.1 创建一个表
注意:用String写SQL语句时换行时要注意加空格!
package kwin.jdbc; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
* jdbd使用
* @author KwinWei QQ:885251358
*
*/
public class JdbcDemo { public static void main(String[] args) {
try {
/*连接到数据库
*/
Class.forName("oracle.jdbc.OracleDriver");
//System.out.println("OK!");
/*不同的oracle的IP地址不同
* 主机名,端口号,SID
* url,username,password
*
* jdbc:oracle:thin 写错会找不到驱动
* 后半写错 连接不上数据库
*
* sqldeverment 连接右键可查看
* */
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String username = "system"; //用户名密码错误会拒绝连接
String password = "root"; //getConnection() 查找并尝试连接到数据库,如果不成功则会出现异常
Connection conn = DriverManager.getConnection(url,username,password);
//输出conn引用对象的实际类名
//证明:驱动程序提供了Connection接口的实现类
System.out.println(conn.getClass()); /*创建“语句”对象,执行SQL
* Statement接口
* Statement stmt = conn.createStatement();
* boolean flag = stmt.execute(sql); 什么语句都可以执行,一般执行DDL语句,;
* ResultSet rs = stmt.execute.Query(sql);执行dql语句,selecte,产生结果集;
* int flag = stmt.executeUpdate(sql);执行DML语句,delete,update
*
* 这三方法不要乱用,其实互换使用可以,但不建议;按建议使用方式来;
* */
Statement st = conn.createStatement();
String ddl1 = "CREATE TABLE kwinDemo( " +
" id NUMBER(4) ," +
" name VARCHAR2(40)," +
" gender VARCHAR2(1)" +
")";
boolean b = st.execute(ddl1);
//返回结果:true表示有结果集;false没有结果集;创建失败抛异常;
System.out.println(b); conn.close(); //最后一定要关闭连接 }catch(Exception e) {
e.printStackTrace();
} } }
3.2 执行DML语句,往表里插入数据
package kwin.jdbc; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement; /**
* 执行DML语句
* @author KwinWei QQ:885251358
*
*/
public class JdbcDemo2 { public static void main(String[] args) {
try{/*注册驱动*/
Class.forName("oracle.jdbc.OracleDriver");
//连接到数据库
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String username = "system";
String password = "root";
Connection conn = DriverManager.getConnection(url,username,password);
//System.out.println(conn.getClass()); //创建Statement
Statement st = conn.createStatement();
//执行DML,插入可以去SQL Dvelopment里查看
String dml = "insert into kwinDemo"
+ "(id,name) values(001,'Tom')";
int n = st.executeUpdate(dml);
System.out.println(n);
//关闭连接
conn.close(); }catch(Exception e) {
e.printStackTrace();
}
} }
Eclipse使用JDBC小案例的更多相关文章
- MVC 小案例 -- 信息管理
前几次更新博客都是每次周日晚上到周一,这次是周一晚上开始写,肯定也是有原因的!那就是我的 Tomact 忽然报错,无法启动,错误信息如下!同时我的 win10 也崩了,重启之后连 WIFI 的标志也不 ...
- spring boot入门小案例
spring boot 入门小案例搭建 (1) 在Eclipse中新建一个maven project项目,目录结构如下所示: cn.com.rxyb中存放spring boot的启动类,applica ...
- JSP +MySQL实现网站的登录与注册小案例
为了练手,我就自己试着做了一个网站的登录与注册的小案例.由于没有做美化处理,所以界面并不是很好看. 网站实现的功能如下: 用户首次注册功能 用户登录功能 项目目录展示: 下面我将会分模块展示 注册模块 ...
- Cookie小案例-----记住浏览过的商品记录
Cookie小案例------记住浏览过的商品记录 我们知道,这个功能在电商项目中非经常见.这里处理请求和页面显示都是由servlet实现,主要是为了体现cookie的作用, 实现功能例如以下: 1, ...
- Session小案例-----简单购物车的使用
Session小案例-----简单购物车的使用 同上篇一样,这里的处理请求和页面显示相同用的都是servlet. 功能实现例如以下: 1,显示站点的全部商品 2.用户点击购买后,可以记住用户选择的商品 ...
- 黑马day14 踢人小案例
本案例介绍: 使用监听器来实现踢人小案例,仅仅有管理员才有踢人的功能. 1.搭建开发环境,导入本案例须要的jar包.以及一个准备好的数据库工具类:提供数据源的方法...当中我已经在数据库中加入了三个用 ...
- Hibernate的介绍及入门小案例
1.Hibernate的诞生 在以前使用传统的JDBC开发应用系统时,如果是小型应用系统,并不觉得有什么麻烦,但是对于大型应用系统的开发,使用JDBC就会显得力不从心,例如对几十,几百张包含几十个字段 ...
- 机械表小案例之transform的应用
这个小案例主要是对transform的应用. 时钟的3个表针分别是3个png图片,通过setInterval来让图片转动.时,分,秒的转动角度分别是30,6,6度. 首先,通过new Date函数获取 ...
- shell讲解-小案例
shell讲解-小案例 一.文件拷贝输出检查 下面测试文件拷贝是否正常,如果cp命令并没有拷贝文件myfile到myfile.bak,则打印错误信息.注意错误信息中basename $0打印脚本名.如 ...
随机推荐
- WebApi发布到外网提示404问题
今天在做微信接口的对接,需要把webApi发布到服务器,放上去的时候,提示404 找了以后,发现了这段代码,粘贴上去就可以用了 在web.config添加如下节点 <system.webServ ...
- 事务的四大特性(ACID):
事务的四大特性(ACID): 1.原子性(Atomicity): 事务中所有操作是不可再分割的原子单元.事务中所有操作要么都执行成功,要么都执行失败. 2.一致性(Consistency): 事 ...
- 编辑器之神-vim的使用
vim即vi的升级版:在linux中,vi是vim的软链接,我们敲vi和vim出来的都是vim: 纯手打,如有错误,敬请指出. vi的三种模式及简单使用 vi三种模式 命令模式(默认):是文件的入口, ...
- 关于使用tradingview插件的一些心得
1.禁用自带的一些功能 disabled_features: [ // 开启图表功能的字符串文字 允许将用户设置保存到本地存储 'header_symbol_search', // 头部搜索 &quo ...
- 记录使用nodejs时,未正确使用import导致的错误
2019/04/08 今天看了es6入门,才发现以前碰到的关于import的错误,是因为使用了import,但nodejs默认不支持导致的. 如果想要使用es6的module功能,需要把整个文件的导入 ...
- 关于:target与定位动画的奇怪现象
今天在制作首页导航图特效demo时,无意发现一个奇怪的交互现象,故记录 经测试,简化了触发该现象的代码,如下: <!DOCTYPE html> <html> <head& ...
- 【刷题】【LeetCode】总
参考资料 用动画的形式呈现解LeetCode题目的思路 目录: 000-十大经典排序算法 001-两数之和-easy 暴力法(遍历):两遍哈希表:一遍哈希表 002- 003- 004- 005- 0 ...
- Python静态网页爬取:批量获取高清壁纸
前言 在设计爬虫项目的时候,首先要在脑内明确人工浏览页面获得图片时的步骤 一般地,我们去网上批量打开壁纸的时候一般操作如下: 1.打开壁纸网页 2.单击壁纸图(打开指定壁纸的页面) 3.选择分辨率(我 ...
- Luogu3732 [HAOI2017] 供给侧改革 【后缀数组】【线段树】【乱搞】
题目分析: 这道题我是乱搞的,因为他说$01$串是随机的. 那么我们可以猜测能够让LCP变大的地方很少.求出后缀数组之后可能让LCP变大的地方就等价于从大到小往height里动态加点同时维护这个点左右 ...
- 洛谷P1512伊甸园的日历游戏题解
题目 因为可能要参加qbxt的数论考试,所以最近要开始猛刷数论题了. 这是第一道,不过看样子并不想数论题啊,只是一个博弈论. 思路 一位著名老师说过,数学就是转化和化简,所以先考虑化简,先考虑化简年份 ...