一、使用JDBC的步骤
加载JDBC驱动程序 → 建立数据库连接Connection → 创建执行SQL的语句Statement → 处理执行结果ResultSet → 释放资源
1、注册驱动 (只做一次)
方式一:Class.forName(“com.mysql.jdbc.Driver”);
推荐这种方式,不会对具体的驱动类产生依赖。
方式二:DriverManager.registerDriver(com.mysql.jdbc.Driver);
会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。
推荐这种方式,不会对具体的驱动类产生依赖。
方式二:DriverManager.registerDriver(com.mysql.jdbc.Driver);
会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。
2、建立连接
Connection conn = DriverManager.getConnection(url, user, password);
URL用于标识数据库的位置,通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:
其他参数如:useUnicode=true&characterEncoding=utf8
URL用于标识数据库的位置,通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:
其他参数如:useUnicode=true&characterEncoding=utf8
3、创建执行SQL语句的statement
//Statement
String id = "1";
String sql = "delete from table where id=" + id;
Statement st = conn.createStatement();
st.executeQuery(sql);
//存在sql注入的危险,如果用户传入的id为“1 or 1=1”,那么将删除表中的所有记录
//PreparedStatement 有效的防止sql注入(SQL语句在程序运行前已经进行了预编译,当运行时动态地把参数传给PreprareStatement时,即使参数里有敏感字符如 or '1=1'也数据库会作为一个参数一个字段的属性值来处理而不会作为一个SQL指令)
String sql = “insert into user (name,password) values(?,?)”;
PreparedStatement ps = conn.preparedStatement(sql);
ps.setString(1, “zhangsan”); //占位符顺序从1开始
ps.setString(2, “123456”); //也可以使用setObject
ps.executeQuery();
String id = "1";
String sql = "delete from table where id=" + id;
Statement st = conn.createStatement();
st.executeQuery(sql);
//存在sql注入的危险,如果用户传入的id为“1 or 1=1”,那么将删除表中的所有记录
//PreparedStatement 有效的防止sql注入(SQL语句在程序运行前已经进行了预编译,当运行时动态地把参数传给PreprareStatement时,即使参数里有敏感字符如 or '1=1'也数据库会作为一个参数一个字段的属性值来处理而不会作为一个SQL指令)
String sql = “insert into user (name,password) values(?,?)”;
PreparedStatement ps = conn.preparedStatement(sql);
ps.setString(1, “zhangsan”); //占位符顺序从1开始
ps.setString(2, “123456”); //也可以使用setObject
ps.executeQuery();
4、处理执行结果(ResultSet)
ResultSet rs = ps.executeQuery();
While(rs.next()){
rs.getString(“col_name”);
rs.getInt(1);
//…
}
While(rs.next()){
rs.getString(“col_name”);
rs.getInt(1);
//…
}
5、一定要释放资源
//数据库连接(Connection)非常耗资源,尽量晚创建,尽量早的释放
//都要加try catch 以防前面关闭出错,后面的就不执行了
//都要加try catch 以防前面关闭出错,后面的就不执行了
try{
//功能部分
}catch(Exception e){
e.printStackTrace();
}finally{
if(null != rs){
<!--[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:AllowPNG/> </o:OfficeDocumentSettings> </xml><![endif]-->if(null != stmt){
//功能部分
}catch(Exception e){
e.printStackTrace();
}finally{
if(null != rs){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}<!--[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:AllowPNG/> </o:OfficeDocumentSettings> </xml><![endif]-->if(null != stmt){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(null != conn){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
相关推荐
从最基础连接步骤到JDBC高级连接池等
主要介绍了java JDBC系列教程之JDBC类的简析与JDBC的基础操作,本文分步骤通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
适合刚刚入门javaweb学习的菜鸟 1.jdbc(baseDao+UserDao) ...1.jdbc:jdbc很详细(从头到尾的步骤)(适合jdbc基础不是很好的人群参考) 2.所用到的jar包(jstl+standard+mysql-connector-java-5.1.8-bin)
第十九章: JDBC基础 320 学习目标 320 JDBC的概念 321 连接数据库的几种方式 321 JAVA编程语言和JDBC 323 JDBC编程的步骤 323 实例分析 325 内容总结 335 独立实践 336 第二十章:高级JDBC 337 学习目标 337 使用...
详细的数据库连接步骤,使用Java初学者使用,有具体注释说明,零基础学习。
书中理论知识讲解透彻,实例开发步骤清晰,既适合初学者和具有一定Java编程经验的用户使用,也适合广大软件开发者和编程爱好者作为参考用书,同时也是大中专院校及社会培训机构的首选教材。 本书以Java为平台,结合...
书中理论知识讲解透彻,实例开发步骤清晰,既适合初学者和具有一定Java编程经验的用户使用,也适合广大软件开发者和编程爱好者作为参考用书,同时也是大中专院校及社会培训机构的首选教材。 本书以Java为平台,结合...
第四篇为“数据库访问技术”,主要讲述JDBC技术及JSP和Servlet如何通过JDBC访问数据库,以及如何改进数据库的访问和目前流行的Hibernate、iBATIS及Spring集成访问的支持;第五篇为“标签语言和表达式语言”,主要...
第二章 Using JDBC(JDBC的使用)167 第四章 JDBC Advanced Topics(JDBC高级特性)................170 第五章 JDBC2.0 Core Features(JDBC2.0 新特性)...............171 第六章 JDBC2.0 Standard Extensions...........
《Java JDK 7学习笔记》将IDE操作纳为教学内容之一,使读者能与实践结合,提供的视频教学能更清楚地帮助读者掌握操作步骤。 内容简介 书籍 计算机书籍 《java jdk 7学习笔记》是作者多年来教学实践经验的总结...
最后还给出了一个聊天程序实例和一个数据表操作窗口实例,将Swing、UDP、Java集合类、线程同步、接口和JDBC编程有机地结合起来,展示了开发一个简单程序的典型步骤。 《Java入门1·2·3:一个老鸟的Java学习心得》...
最后还给出了一个聊天程序实例和一个数据表操作窗口实例,将Swing、UDP、Java集合类、线程同步、接口和JDBC编程有机地结合起来,展示了开发一个简单程序的典型步骤。 本书适合广大想学习一门编程语言的读者、没有...
《跟我学Java Web》内容包括搭建Web开发环境、HTML相关技术基础知识、JavaScript相关技术基础知识、JSP技术基础知识、Servlet技术基础知识、搭建MySQL数据库开发环境、JDBC技术、JavaBean技术基础知识、Ajax技术基础...
第二章 Using JDBC(JDBC的使用)167 第四章 JDBC Advanced Topics(JDBC高级特性)................170 第五章 JDBC2.0 Core Features(JDBC2.0 新特性)...............171 第六章 JDBC2.0 Standard Extensions...........
学习java语言,并采用jdbc接口方式对数据库进行访问 实验内容与步骤 1、 以教科书第四章关于SQL语言相关内容为基础,课后查阅、自学ODBC接口有关内容,包括ODBC的体系结构、工作原理、数据访问过程、主要API接口的...
javaweblearnjavaweb学习Chapter1 建立一个基础的web项目 入门阶段Chapter2 设计了URL规范,设计基础的数据库表。 使用MVC框架,细化开发步骤。对服务层细化,使用Apache Commons DbUtiles优化JDBC,开发出一个轻量级...
《跟我学Java Web》内容包括搭建Web开发环境、HTML相关技术基础知识、JavaScript相关技术基础知识、JSP技术基础知识、Servlet技术基础知识、搭建MySQL数据库开发环境、JDBC技术、JavaBean技术基础知识、Ajax技术基础...
学生提问:老师,我想学习Java编程,到底是学习Eclipse好呢,还是学习JBuilder好呢? 21 1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 24 2.1.1 结构化程序设计简介 24 2.1.2 程序的三种...
第一章、学习基础知识 教程 1:构建简单的列表报告 任务 1:创建新项目 任务 2:创建新报告 任务 3:构建数据源 任务 4:构建数据集 任务 5:对报告进行布局 任务 6:对数据进行排序 任务 7:格式化...