今天复习了JDBC的内容,古人说温故知新,真的深有体会了。所以决定用自已的话在此记下,如有不对之处,请高手指教。

  JDBC连接数据库,采用的是面向接口编程。接口在java.sql和javax.sql包里。

不同的数据库厂商提供不同的驱动jar包,具体的实现方法都在jar包里。连接数据库步骤比较固定,以下示例是连接Oracle

//1,jdbc.properties文件

driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:BDQN
username=wjb
password=wjb

//2,读取properties文件

package cn.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties; public class ConfigManager {
//读取jdbc.properties配置文件,单例模式 private static ConfigManager configManager;
private static Properties properties; //单例模式必须用private构造方法,不能用public
private ConfigManager(){
String configFile = "jdbc.properties";
properties = new Properties();
InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
try {
properties.load(is);
} catch (IOException e) {
e.printStackTrace();
}
} //提供一个入口获取ConfigManager,这个方法可以严格控制实例生成的个数
public static ConfigManager getInstance(){
//如果为空就创建一个自已的构造方法,获取ConfigManager
if(configManager == null){
configManager = new ConfigManager();
}
return configManager;
} //以上只是获取了properties的KEY值,下面这个方法获取对应的value值
public String getString (String key){
return properties.getProperty(key);
} }

//3,连接数据库的基类 

package cn.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import cn.pojo.Dancer;
import cn.util.ConfigManager; public class BaseDao {
Connection connection = null;
ResultSet rs = null;
PreparedStatement pst = null; //连接数据库的方法
public boolean getConnection(){
String driver = ConfigManager.getInstance().getString("driverClassName");
String url = ConfigManager.getInstance().getString("url");
String username = ConfigManager.getInstance().getString("username");
String password = ConfigManager.getInstance().getString("password"); try {
Class.forName(driver);
connection = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} return true;
} //增删改
public int executeUpdate(String sql,Object[] param){
int row = 0;
if(this.getConnection()){
try {
pst = connection.prepareStatement(sql);
for(int i = 0;i<param.length;i++){
pst.setObject(i+1, param[i]);
}
row = pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
return row;
} //查询
public ResultSet executeQuery(String sql,Object[] param){
if(this.getConnection()){
try {
pst = connection.prepareStatement(sql);
for(int i=0;i<param.length;i++){
pst.setObject(i+1, param[i]);
}
rs = pst.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
} return rs;
} }

JDBC总结的更多相关文章

  1. Java数据库连接技术——JDBC

    大家好,今天我们学习了Java如何连接数据库.之前学过.net语言的数据库操作,感觉就是一通百通,大同小异. JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力. JDBC API ...

  2. 玩转spring boot——结合AngularJs和JDBC

    参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...

  3. [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...

  4. JDBC MySQL 多表关联查询查询

    public static void main(String[] args) throws Exception{ Class.forName("com.mysql.jdbc.Driver&q ...

  5. JDBC增加删除修改

    一.配置程序--让我们程序能找到数据库的驱动jar包 1.把.jar文件复制到项目中去,整合的时候方便. 2.在eclipse项目右击"构建路径"--"配置构建路径&qu ...

  6. JDBC简介

    jdbc连接数据库的四个对象 DriverManager  驱动类   DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 ...

  7. JDBC Tutorials: Commit or Rollback transaction in finally block

    http://skeletoncoder.blogspot.com/2006/10/jdbc-tutorials-commit-or-rollback.html JDBC Tutorials: Com ...

  8. FineReport如何用JDBC连接阿里云ADS数据库

    在使用FineReport连接阿里云的ADS(AnalyticDB)数据库,很多时候在测试连接时就失败了.此时,该如何连接ADS数据库呢? 我们只需要手动将连接ads数据库需要使用到的jar放置到%F ...

  9. JDBC基础

    今天看了看JDBC(Java DataBase Connectivity)总结一下 关于JDBC 加载JDBC驱动 建立数据库连接 创建一个Statement或者PreparedStatement 获 ...

  10. Spring学习记录(十四)---JDBC基本操作

    先看一些定义: 在Spring JDBC模块中,所有的类可以被分到四个单独的包:1.core即核心包,它包含了JDBC的核心功能.此包内有很多重要的类,包括:JdbcTemplate类.SimpleJ ...

随机推荐

  1. CentOS7下搭建邮件服务器(dovecot + postfix + SSL)

    CentOS   花了基本上两天的时间去配置CentOS7下的邮件服务器.其中艰辛太多了,一定得总结下. 本文的目的在于通过一系列配置,在CentOS 7下搭建dovecot + postfix + ...

  2. mysql安装使用笔记

    mysql2008年被sun公司10亿美元收购, 后sun被oracle收购. widenius : 维德纽斯重新写的mysql的分支 mariaDB. 白发程序员, 是由 瑞典mysql AB公司开 ...

  3. C#使用Quartz.NET详细讲解

    Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不牺牲 ...

  4. Shell入门教程:Shell的基本结构

    shell程序的基本组成结构 shell结构大体是由设定变量.内置命令.shell的语法结构.函数组成. 使用实例说明:test.sh #!/bin/bash #说明使用/bin/bash作为这个脚本 ...

  5. linux下 chown命令

    对Document/ 目录下的所有文件与子目录执行相同的所有者变更,修改所有者为users用户组的username用户 chown -R username:users Document/ userna ...

  6. 【转】sed 简明教程

    本文转自:http://coolshell.cn/articles/9104.html awk于1977年出生,今年36岁本命年,sed比awk大2-3岁,awk就像林妹妹,sed就是宝玉哥哥了.所以 ...

  7. selenium+testng+ant+jenkins 手记

    会不会搭建测试平台是一般测试工程师和高级测试工程师分水岭 ----tobecrazy 我们项目有现成的测试平台,使用的是selenium grid+testng+ant+jenkins+VM 但是我平 ...

  8. ABAP 分货日报表

    *&---------------------------------------------------------------------* *& Report  ZSDR031 ...

  9. xml引用实体dtd不能成功的问题

    你没有错,现在的浏览器都不怎么支持实体引用了,这是个无奈的现实.我记得上回试过,好像如果DTD不是单独的文件而是内置到XML里面的话,实体还可以显示的.你可以试一下 <?xml version= ...

  10. 配置VNC

    VNC连接Linux桌面,要想连接Linux远程桌面,按照下面的步骤,非常简单.快速,Linux配置VNC(以RedHat.CentOS.Fedora系列为例). 工具/原料 Linux平台安装VNC ...