码迷,mamicode.com
首页 > 数据库 > 详细

JDBC详解

时间:2015-10-15 16:28:38      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:jdbc   数据库   

JDBC:

1、 DQL:数据库查询语言 
2、 DML:数据库操作语言 
3、 DDL:数据库定义语言 
4、 DCL:数据库控制语言 

1、创建:

--读取扎包 -- 接口 (driver驱动 driverManager驱动管理器)    --Class.forName("oracle.jdbc.driver.OracleDriver");

b 建立链接 --接口(Connection)   Connection connection = driverManager.getConnection("url","uname","password");

url -- jdbc:oracle:thin:@192.168.1.37:1521:orcl 
uname -- scott 
password -- tiger 

c 发送请求 -- sql语句( 大写的在数据库的执行程序中的执行模式比较快   SELECT * FROM EMP;--dql[执行计划])  接口(statement)

 Statement statement = connection.creatStatement(); 
 PreparedStatement pstmt = connection.preparedStatement(sql);<<---在使用sql时用占位符占位 会预编译sql语句 

d 返回结果 --Resultset   

Resultset resultset = statement.executeQuery(sql); 放回结果集 
int count = pstmt.executeUpdate();受影响的行数/不用使用sql在方法中 

e 处理结果 --循环读取  while(resultset.next())

    打印结果集:getInt         getString     getDate     getTime          getTimestamp获取年月日时分秒毫秒 
    在使用时可以直接使用列名找到相对应的sql查询语句,也可以使用索引,它的索引时从第1个开始(当列名不好获取而且列名不会改变的时候会用索引查找count(*)     用索引方便1,而用列名比较麻烦count(*)) 
f 关闭链接 --先打开的后关闭 .close(); 

2、关闭链接时不一定会关闭,需要以下几步:

a 作用域 
b 关闭链接时判断是否为空 

3、select * from emp for update; 可以直接在表中修改数据,但是有一个缺点,会锁全表数据,重启服务后又会锁住。会提交事务!事务会默认提交! 

4、在提交事务的时候,如果不更改默认值则会默认提交: 
connection.setAutoCommit(flase);需要手动提交   -〉〉〉 手动提交:connection.commit();/  connection.rollback(); 

只要是物理io就有延迟 

charSequence是String(不可变)Stringbuffer(线程不安全效率高)Stringbuilder(线程安全效率低)的父接口 

一般实现接口可序列化 (Serializable) 重写tosting equalse hushmap 

truncate table emp;删除某张表的内容 
MYSQL中插入数据时 如果有时间字段 在使用sql插入和jdbc插入时要使用NOW()来占位 
在使用sqlplus时使用getdate(); 


本文出自 “没有水勒鱼” 博客,转载请与作者联系!

JDBC详解

标签:jdbc   数据库   

原文地址:http://javaqun.blog.51cto.com/10687700/1703131

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!