java_第一年_JDBC(1)
JDBC(Java Data Base Connectivity),用于实现java语言编程与数据库连接的API。
数据库驱动:应用程序并不能直接使用数据库,而需要通过相应的数据库驱动程序后再操作数据库;而JDBC就是实现应用程序去加载具体的驱动;
应用程序---JDBC--->驱动程序-->数据库
建立JDBC连接:
- 导入JDBC包:
import java.sql.*
- 注册JDBC驱动程序并创建连接对象conn:
Class.forName("com.mysql.jdbc.Driver");//加载驱动
Connection conn = null;
conn = DriverManager.getConnection("jdbc:mysql://hostname:port/db_name","db_username","db_password");//获取链接
conn.close();
这样,我们的JDBC连接即已建好。
交互
连接建立后,通常通过JDBC Statement、CallableStatement和PrepareStatement这3个接口进行交互。
而创建这3种接口的方法分别是Connection类中的createStatement()、prepareStatement(sql)、prepareCall(sql)方法;除了这3种方法外,Connection类还提供了
setAutoCommit(boolean autoCommit)方法:是否事务自动提交;
commit()方法:提交事务;
roolback()方法:回滚事务
- Statement:用于使用静态SQL语句,不能接受参数;
创建Statement对象:
Statement stmt = null;
try{
stmt = conn.createStatement();
}catch(SQLException e){
...
}finally{
...
}
该对象常用的方法:
boolean execute(String SQL ):检索SQL运行后结果是否存在,有则返回true,没有则返回false;
int executeUpdate(String SQL):检索SQL语句所影响的行数,常用于会影响多行改动的SQL语句,如INSERT、UPDATE、DELETE;
ResultSet executeQuery(String SQL):返回运行后的结果集合,常用于SELECT;
addBatch(String sql):把多条sql语句放到一个批处理中;
executeBatch():批量处理一批sql语句;
关闭Statement对象:
finally{
stmt.close();
}
- PreparedStatement:扩展了Statement接口,可支持动态,可接受参数,参数类型只使用IN;
创建PreparedStatement对象:
PreparedStatement pstmt = null;
try{
String SQL = "Update employees SET age = ? WHERE id = ?";
pstmt = conn.prepareStatement(SQL);
...
}catch{
...
}finally{
pstmt.close();
}
其中?即表示要输入的参数。通过stmt.setXXX(number,value);输入参数,其中XXX表示参数数值类型,number表示?在程序出现的位置,从1开始计数;value表示输入参数的值;
Statement对象可用的方法都可以使用。
- CallableStatement:相比于PreparedStatement对象,其参数类型有IN、OUT、INOUT三种;
创建CallableStatement对象:
CallableStatement cstmt = null;
try{
String strSQL = "{call getEmpName(?,?)}";
cstmte = conn.prepareCall(SQL);
...
}catch(SQLException e){
...
}finally{
cstmt.close();
}
对比前面的3种方法,CallcbleStatement多了一种方法:registerOutParameter(),该方法将JDBC数据类型绑定到存储过程并返回预期数据类型。
getXXX()
方法从OUT
参数中检索该值。 此方法将检索到的SQL类型的值转换为对应的Java数据类型。
java_第一年_JDBC(1)的更多相关文章
- java_第一年_JDBC(7)
Commons-dbutils是一个开源的JDBC工具类库,对JDBC进行封装,简化编码的工作量,包含的API: org.apache.commons.dbutils.QueryRunner org. ...
- java_第一年_JDBC(2)
上篇说到,通过JDBC可实现java编程程序和mysql数据库进行连接并交互,而交互后所形成的结果集是通过ResultSet对象来操作的. 创建ResultSet对象: stmt = conn.cre ...
- java_第一年_JDBC(6)
DataBaseMetaData对象:由Connection.getDataBaseMetaData()方法获得,可以用来获取数据库的元数据,提供的方法有: getURL():返回一个String类, ...
- java_第一年_JDBC(5)
事务概念:事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功: 开始事务:start transaction 提交事务:commit 回滚事务:rollback 事务的四大特 ...
- java_第一年_JDBC(4)
注:该篇只是为了小白的我熟悉下JDBC的代码,练习篇 在mysql中建test测试库,并创建一张employees表,加入一些数据如下图: 通过JDBC连接对表中数据进行添加: package lzj ...
- java_第一年_JDBC(3)
事务 我们在通过JDBC连接数据库并开始交互时,默认情况下是自动提交的,有时由于为了保持业务流程的完整性.提高性能或是使用分布式事务,需要启动支持事务,此时的方法是调用Connection对象的set ...
- java_第一年_JavaWeb(14)
EL :EL表达式主要用于获取数据.执行运算.获取对象.调用java方法: 获取数据 语法:"${标识符}" 会调用pageContext.findAttribute方法,从pag ...
- java_第一年_JavaWeb(13)
JSTL标签库——核心标签库 为了弥补html标签的不足,为了更加方便地在jsp页面中使用java逻辑代码,JSTL标签库因运而生,而其中的佼佼者,被恩宠最多的就是核心标签库了: 核心标签库从功能上可 ...
- java_第一年_JavaWeb(11)
自定义标签:主要是用来移除JSP页面中的java代码. 先从一个简单的案例了解其怎么移除代码: 一个正常的jsp页面: <%@ page language="java" pa ...
随机推荐
- Java验证身份证是否合法
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; im ...
- Windows环境下MySQL面试技巧
对话一: 面试官:重新安装mysql卡在最后一步,怎么解决? 应聘者:第一次安装完mysql,由于各种原因需要重新安装是经常遇到的问题,解决方案如下. 1)在注册表里搜索my ...
- js中的“==”与“===”的区别
console(34 == "34") 输出true console(34 === "34") 输出false 因此,== 只判断值,不判断类型,实际上里 ...
- wkhtmltopdfhtml php生成pdf快照,网页截图,网页快照完整版 (原)
首先,安装(linux安装为例) 1.下载wkhtmltopdf wget http://download.gna.org/wkhtmltopdf/obsolete/linux/wkhtmltopdf ...
- C++入门经典-例5.15-回收动态内存的一般处理步骤
1:正确的步骤应该是如下代码所示: // 5.15.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostrea ...
- Tracer使用
1.选择event List可以迅速完成操作,而选择simulation就会一步一步地执行操作,但是如果都点了下方的Delete删了记录的话,所有的机器都是该整个流程执行完毕的结果.
- Golang协程实现流量统计系统(3)
进程.线程.协程 - 进程:太重 - 线程:上下文切换开销太大 - 协程:轻量级的线程,简洁的并发模式 Golang协程:goroutine Hello world package main impo ...
- spark 笔记 15: ShuffleManager,shuffle map两端的stage/task的桥梁
无论是Hadoop还是spark,shuffle操作都是决定其性能的重要因素.在不能减少shuffle的情况下,使用一个好的shuffle管理器也是优化性能的重要手段. ShuffleManager的 ...
- 利用docker启动 wordpress
网上有很多教程哈,我只是记录自己怎么玩的,没啥教学意义 查看镜像说明的mysql/data目录,方便挂载 [root@docker ~]# docker inspect -f {{.Config.Vo ...
- 三步解决IDEA系列开发工具 RubyMine、IntelliJ IDEA 卡顿问题
近日有小伙伴跟我反映说自己的开发工具很卡,有没有什么解决方案?答案是当然有啦!接下来看看怎么设置! 1.打开RubyMine,或IDEA,上边工具栏选择Help,下拉选择Edit Custom VM ...