1.基本功能:

Java通过JDBC完成:

2.基本类型,通常用最后一种

3.JDBC简介

Java连接SQL例子:

参考:http://blog.chinaunix.net/uid-20726500-id-3876569.html

1.加载驱动

2.获取连接

3.连接实例:

定义:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 //DbManage.java

import java.sql.*;

public class DbManage {

public boolean InitDb(){

//初始化驱动

try {

//Class-SQL Server

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//Class-MySQL

//Class.forName("com.mysql.jdbc.Driver");

//Class-Oracle

//Class.forName("oracle.jdbc.driver.OracleDriver");

    } catch (ClassNotFoundException ec) {
System.out.println("Error 1: ");
System.out.println(ec.getMessage());
}
catch(Exception e){
System.out.println("Error 2: ");
System.out.println(e.getMessage());
} //获取数据连接
/*url的填写遵循各自规范
--通用
jdbc:subprotocol:other stuff,其中subprotocol之连接到特定的数据库,sutff不固定
--mysql
jdbc:mysql://hostname:port/databasename
--oracle
jdbc:oracle:thin:@hostname:port:databasename
*/
//url
String url = "jdbc:sqlserver://localhost:49838;databaseName=HAMSDb;IntegratedSecurity=True";
//这里的端口要查看具体电脑,最后一个选项是用Windows验证的方式去连接到数据库服务器,不需要用户名和密码。官方推荐方式
//String user = ""; //用户名
//String pass = ""; //密码
try {
/*获取连接*/
//标准的连接方式:DriverManager.getConnection(url, user, pass);
Connection cn = DriverManager.getConnection(url); /*使用Statement操作数据库*/
Statement st = cn.createStatement();
//使用结果集查询表结果
ResultSet resultQuery = st.executeQuery("select * from Devices");

// while(resultQuery.next()){

// System.out.println("Key: " + resultQuery.getInt(1) + "Id: " + resultQuery.getString(2));

// }//while

        //excute执行,但是这里的返回值boolean中的true和false不代表执行成功或者失败,表示是否有ResultSet对象返回,这点要注意!
/*
boolean b = st.execute("insert into aTest(ID, Name) values(3, 'ccc')");
if (b) {
System.out.println("有ResultSet对象返回,下面可以用ResultSet获取返回的结果集。");
}
*/ } catch (SQLException e) {
System.out.println("Error 3: ");
System.out.println(e.getMessage());
} return true;
}

}

123456789101112 package com.company.project.jdbctest;

//Print.java

public class Print {

public static void main(String[] args) {
// TODO Auto-generated method stub
//原始方法
DbManage d = new DbManage();
d.InitDb();
}

}

4.excuteUpdate语句

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 package com.company.project.jdbctest;

//InitDataBase.java

import java.io.FileInputStream;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.util.*;

public class InitDataBase {

//url

private String url;

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

//forClassName
private String forClassName;
public String getForClassName() {
return forClassName;
} public void setForClassName(String forClassName) {
this.forClassName = forClassName;
} //Connection
private Connection conn;
public Connection getConn() {
return conn;
}
public void setConn(Connection conn) {
this.conn = conn;
}
//构造
public InitDataBase(){}; //读取配置文件
public void ReadPropertyFile(){
/*读取ini文件获取配置*/
try{
//读取配置文件
Properties p = new Properties();
p.load(new FileInputStream("Properties//mysqlconfig.ini")); //读取sqlClassForName
setForClassName(p.getProperty("classForName")); //读取url
setUrl(p.getProperty("url"));
}
catch(Exception e){
e.getMessage();
System.out.println("Load Properties Failed!");
}
} public void ConnectionSQL(){
try {
/*开始连接数据库*/
ReadPropertyFile(); //加载类
Class.forName(getForClassName());
//获取连接
conn = DriverManager.getConnection(getUrl());
} catch (ClassNotFoundException eof) {
// TODO Auto-generated catch block
eof.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
} }

}

12345678910111213141516171819202122232425 package com.company.project.jdbctest;

//ExcuteDDL.java

import java.sql.Connection;

import java.sql.SQLException;

import java.sql.Statement;

//执行DDL语句

public class ExcuteDDL {

public void createTable(String strSql){

//获取连接

InitDataBase idb = new InitDataBase();

idb.ConnectionSQL();

Connection cn = idb.getConn();

try {

Statement st = cn.createStatement();

st.executeUpdate(strSql);

    } catch (SQLException e) {
// TODO Auto-generated catch block
e.getMessage();
System.out.println("ExcuteDDL Error !");
} }

}

12345678910111213 package com.company.project.jdbctest;

//Print.java

public class Print {

public static void main(String[] args) {
//ExcuteDDL
ExcuteDDL ed = new ExcuteDDL();
//只执行一次
//ed.createTable("create table excuteddl_test(ID int, NAME varchar(32))");
System.out.println("create table successful!");
}

}

5.PreparedStatement语句

12345678910111213141516171819202122232425262728293031 package com.company.project.jdbctest;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

//PrepareStatementTest.java

public class PrepareStatementTest {

public void insertOneH(){

//获取连接

InitDataBase idb = new InitDataBase();

idb.ConnectionSQL();

Connection cn = idb.getConn();

//

String strSql = "insert into excuteddl_test(ID, NAME) values(?, ?)";

try {

PreparedStatement ps = cn.prepareStatement(strSql);

        //执行
for (int i = 0; i < 100; i++) {
ps.setString(1, i+"");
ps.setString(2, "name"+i+"");
ps.executeUpdate();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

1234567891011 package com.company.project.jdbctest;

//Print.java

public class Print {

public static void main(String[] args) {
PrepareStatementTest pst = new PrepareStatementTest();
pst.insertOneH();
System.out.println("create table successful!");
}

}

6.使用CallableStatement调用存储过程

19.JDBC和数据库访问.md的更多相关文章

  1. Spring JDBC主从数据库访问配置

    通过昨天学习的自定义配置注释的知识,探索了解一下web主从数据库的配置: 背景:主从数据库:主要是数据上的读写分离: 数据库的读写分离的好处? 1. 将读操作和写操作分离到不同的数据库上,避免主服务器 ...

  2. 中间件学习之RMI+JDBC远端数据库的访问

    问题: RMI+JDBC远端数据库的访问.实现简单的成绩查询系统(创建表,录入成绩,查询成绩等).在服务器端,通过JDBC访问数据库.客户端调用服务端提供的各种数据库操作. 环境准备: (1).确保J ...

  3. 前段时间,接手一个项目使用的是原始的jdbc作为数据库的访问,发布到服务器上在运行了一段时间之后总是会出现无法访问的情况,登录到服务器,查看tomcat日志发现总是报如下的错误。    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected est

    前段时间,接手一个项目使用的是原始的jdbc作为数据库的访问,发布到服务器上在运行了一段时间之后总是会出现无法访问的情况,登录到服务器,查看tomcat日志发现总是报如下的错误. Caused by: ...

  4. SpringBoot实战(四)之使用JDBC和Spring访问数据库

    这里演示的是h2databse示例,所以简单的介绍普及下h2database相关知识 H2数据库是一个开源的关系型数据库. H2是一个嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提 ...

  5. 三种数据库访问——Spring JDBC

    本篇随笔是上两篇的延续:三种数据库访问——原生JDBC:数据库连接池:Druid Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要 ...

  6. 三种数据库访问——原生JDBC

    原生的JDBC编程主要分一下几个步骤: (原生的JDBC编程指,仅应用java.sql包下的接口和数据库驱动类编程,而不借助任何框架) 1. 加载JDBC驱动程序: 2. 负责管理JDBC驱动程序的类 ...

  7. springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验--异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档---jpa访问数据库及page进行分页---整合redis---定时任务

    springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验-- 异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档 ...

  8. JDBC连接数据库,数据库访问层

    为什么需要JDBC JDBC API DriverManager JDBC驱动 JDBC的功能 JDBC步骤 数据访问层DAO DAO模式的组成 DAO模式的实际应用 为什么需要JDBC? JDBC是 ...

  9. jdbc操作数据库(详细)

    JDBC是由java编程语言编写的类及接口组成,同时它为程序开发人员提供了一组用于实现对数据库访问的JDBC API,并支持SQL语言.利用JDBC可以将JAVA代码连接到oracle.DB2.SQL ...

随机推荐

  1. VS远程调试与附加调试

    使用场景 假如你要开发的程序需要运行在独特的硬件上,比如:服务器,然而这个"独特的硬件"却不能给你装VS,这时候远程调试就登场了. 测试工具/环境一览 Key Value VS版本 ...

  2. Java 10 - Java Character类

    Java Character类 使用字符时,我们通常使用的是内置数据类型char. 实例 char ch = 'a'; // Unicode for uppercase Greek omega cha ...

  3. Could not resolve all files for configuration;Andriod在build.gradle添加compile files()报错

    在build.gradle中添加个 compile files('libs/alipaySdk-20170922.jar') 就一直报这个错误 Error:Could not resolve all ...

  4. Windows如何后台运行bat文件(没有命令提示符框)

    怎么让bat文件在后台无声无息无影无形地运行呢? 用start/min命令去运行bat文件,电脑的任务栏下仍然会有相关的图标,以下的办法可以达到目的. 方法一: bat里有隐藏窗口的命令,很简单,只需 ...

  5. 剑指offer(一):二维数组中的查找

    说明: 1.本系列是根据<剑指Offer>这个系列做的一个小笔记. 2.直接动力是因为师兄师姐找工作很难,而且机械出生的我面试算法更难. 3.刚开始准备刷LeetCode.LintCode ...

  6. 使用idea创建maven多模块项目

    前言 参看:http://blog.csdn.net/zht666/article/details/19040733 使用Maven管理项目时,往往需要创建多个模块,模块之间存在相互引用的关系.对于M ...

  7. hwclock

    查看.设定硬件时钟.该时钟由主机板的晶振及相关电路提供,需要主机板氧化银电池提供动力. 通过命令 hwclock 访问硬件时钟获取时间信息.该命令可以显示当前时间.重新设置时间.读取系统时间.设定系统 ...

  8. vnc操作指南

    启动 vncserver : vncserver : -geometry 1905x1005 停止: ps aux | grep vnc kill pid 或者 vncserver -

  9. 44.scrapy爬取链家网站二手房信息-2

    全面采集二手房数据: 网站二手房总数据量为27650条,但有的参数字段会出现一些问题,因为只给返回100页数据,具体查看就需要去细分请求url参数去请求网站数据.我这里大概的获取了一下筛选条件参数,一 ...

  10. 36.scrapy框架采集全球玻璃网数据

    1.采集目标地址 https://www.glass.cn/gongying/sellindex.aspx 网站比较简单,没什么大的需要注意的问题.2.通过分析测试 https://www.glass ...