JDBC基本开发
JDBC基本开发步骤
一:注册驱动
方式一:DriverManager.registerDriver(new Driver()); //存在注册两次问题,性能较低,消耗资源
方式二:Class.forName("com.mysql.jdbc.Driver"); //开发中推荐
二:获取连接对象
//导入Java.sql包下COnnection
Connnection conn = DriverManager.getConnection();
三: 创建执行SQL语句的Statement对象
方式一:Statement stmt = conn.createStatement(); //存在SQL注入的问题,不推荐使用
方式二: Preparedstatement ps = conn.prepareStatement(); // 预编译对象,解决SQL注入问题
四:执行SQL语句
查询
ResultSet rs = ps.executeQuery(sql语句)
//判断结果是否存在结果 next()
while(rs.next()) {
//获取结果
getXxx(列的值)
getString(列的名)
}
增删改
executeUpdate(sql语句)
execute(sql) 结果是布尔类型,如果是查询操作返回true,增删改false
五:释放资源
查询: 关闭结果集 statement对象 connection对象
增删改: statement对象 connection对象
JDBC工具类编写
第一步:将工具类构造方法私有化
第二步:在工具类里面对外的访问方法,方法修饰为静态static的
public class JdbcUtils {
//工具类的构造方法私有化
private JdbcUtils() {
}
//提供一个获取连接对象的方法
public static Connection getConnection() throws Exception {
//1,注册驱动
//DriverManager.registerDriver(new Driver()); //硬编码
Class.forName("com.mysql.jdbc.Driver");
//2,获取连接对象
String url = "jdbc:mysql://localhost:3306/heimatmall";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
return conn;
}
//针对查询释放资源
public static void release(ResultSet rs,Statement stmt,Connection conn) {
if(rs != null) { //判断对象不为空
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rs = null; //Java自动垃圾机制,加快垃圾对象回收
}
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
stmt = null;
}
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn = null;
}
}
//针对增删改释放资源
public static void release(Statement stmt,Connection conn) {
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
stmt = null;
}
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn = null;
}
}
}
读取配置文件
方式一:使用Properties读取配置文件
步骤一:创建properties对象
步骤二:创建字节流对象,读取配置文件
步骤三: 将字节流对象传给properites对象。使用load方法关联
步骤四: 使用getProperty(“键的名字”)获取指定的值
public class MyJdbcUtils {
private static String driverName;
private static String url;
private static String user;
private static String password;
//工具类的构造方法私有化
private MyJdbcUtils() {
}
//静态代码块:随着类的加载而加载,并且只执行一次
static {
//注册驱动
try {
//System.out.println("开始执行静态代码块里面的代码....读取配置文件完成注册驱动");
//第一步:创建Properties对象
Properties prop = new Properties();
//第二步:创建一个 字节流对象,关联要读取的properties文件
FileInputStream fis = new FileInputStream("src/jdbc.properties");
//第三步:传入字节流对象给properties对象
prop.load(fis);
//第四步:获取数据
driverName = prop.getProperty("DriverName");
url = prop.getProperty("url");
user = prop.getProperty("user");
password = prop.getProperty("password");
//注册驱动
Class.forName(driverName);
} catch (Exception e) { //异常处理快捷键:alt++shift+z
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//提供一个获取连接对象的方法
public static Connection getConnection() throws Exception {
Connection conn = DriverManager.getConnection(url, user, password);
return conn;
}
//针对查询释放资源
public static void release(ResultSet rs,Statement stmt,Connection conn) {
if(rs != null) { //判断对象不为空
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rs = null; //Java自动垃圾机制,加快垃圾对象回收
}
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
stmt = null;
}
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn = null;
}
}
//针对增删改释放资源
public static void release(Statement stmt,Connection conn) {
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
stmt = null;
}
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn = null;
}
}
}
方式二:使用ResourceBundle对象读取
//扩展:使用ResourceBundle读取,注意:读取的目录是src下面的properties文件
ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
driverName = bundle.getString("DriverName");
url = bundle.getString("url");
user = bundle.getString("user");
password = bundle.getString("password");
Class.forName(driverName);
JDBC基本开发的更多相关文章
- (转)Spring+JDBC组合开发
http://blog.csdn.net/yerenyuan_pku/article/details/52882435 搭建和配置Spring与JDBC整合的环境 使用Spring+JDBC集成步骤如 ...
- 【总结】使用jdbc+servlet开发一个bug管理系统的经验总结
开发背景: 公司目前使用Teambition里面的task作为bug管理系统,既没有bug的当前状态,也不能写上bug的详细复现步骤,被assign了任务(该修复bug或者验证bug是否被修复)也没有 ...
- JDBC的开发步骤
一.JDBC概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问, 它由一组用Jav ...
- Spring + JDBC 组合开发集成步骤
1:配置数据源,如: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="h ...
- Spring笔记——Spring+JDBC组合开发
使用Spring+JDBC集成步骤如下: 1. 配置数据源 2. 配置事务.配置事务时,需要在xml配置文件中引入用于声明事务的tx命名空间,事务的配置方式有两种:注解方式和基于XML配置方式 ...
- Spring JDBC数据库开发
针对数据库操作,Spring框架提供了JdbcTemplate类. 1.Spring JDBC的配置 创建配置文件applicationContext.xml,添加如下代码: <!--配置数据源 ...
- DbUtils是Apache出品一款简化JDBC开发的工具类
DbUtils - DbUtils是Apache出品一款简化JDBC开发的工具类 - 使用DbUtils可以让我们JDBC的开发更加简单 - DbUtils的使用: ...
- 性能测试学习之路 (四)jmeter 脚本开发实战(JDBC &JMS &接口脚本 & 轻量级接口自动化测试框架)
1.业务级脚本开发 登录脚本->思路:在线程组下新建两个HTTP请求,一个是完成访问登录页,一个是完成登录的数据提交. 步骤如下: 1) 访问登录页 2) 提交登录数据的HTTP PS:对于 ...
- Java的JDBC操作
Java的JDBC操作 [TOC] 1.JDBC入门 1.1.什么是JDBC JDBC从物理结构上来说就是java语言访问数据库的一套接口集合,本质上是java语言根数据库之间的协议.JDBC提供一组 ...
随机推荐
- 201521123002 《Java程序设计》第2周学习总结
<Java程序设计>第2周学习总结 1. 本章学习总结 String 1.String类的对象是不可变(immutable)的 2.拼接(+号) "PG"+13; (一 ...
- 从GO内存模型与调用协议理解defer closure的坑
资料参考: 官网defer介绍: https://blog.golang.org/defer-panic-and-recover 深入解析go: 多值返回: https://tiancaiamao.g ...
- AJAX验证码检查
前言 对于验证码检查我们并不会陌生,我们在学习Session的时候已经使用过了验证码检查了.详细可参考:http://blog.csdn.net/hon_3y/article/details/5479 ...
- Java是如何解析xml文件的(DOM)
Java解析xml文件 在Java程序中读取xml文件的过程也称为"解析xml文件": 解析的目的: 获取 节点名和节点值 获取 属性名.属性值. 四中解析方式: DOM SAX ...
- 快速搞定用Vue+Webpack搭建前端项目(学习好久了,该写点东西了......)
现在开始安装环境 一.安装node.js 首先要安装node.js,去nodejs官网下载即可,地址:http://nodejs.cn/中文网. 安装完成后,打开终端(windows键+R)搜索cmd ...
- Dynamic web module 版本之间的区别
Servlet 3十二月2009开发平台标准版6,6可插性,易于开发,异步ser vlet,安全,文件上传Servlet 2.5九月2005开发平台标准版5,5需要平台标准版5,支持注释Servlet ...
- 初入ubuntu
登入root :su root 安装 vim: sudo apt-get install vim 安装 gcc(g++):sudo apt-get install gcc(g++) 非常实用的修改分辨 ...
- Apache Spark 2.2.0 中文文档 - Submitting Applications | ApacheCN
Submitting Applications 在 script in Spark的 bin 目录中的spark-submit 脚本用与在集群上启动应用程序.它可以通过一个统一的接口使用所有 Spar ...
- Mysql的排他锁和共享锁
今天看代码看到有select name from user where id = 1 for update,有点懵逼,完全没有见过,只能说自己见识少了,那就只能学习一下.先做一下基本知识了解(大部分都 ...
- jQuery中的常用内容总结(二)
jQuery中的常用内容总结(二) 转载请注明地址: http://www.cnblogs.com/funnyzpc/p/7571993.html 前言 距离上次博客更新已经有二十来天了(●′ω`●) ...