什么是JDBC

我们可以将JDBC看作是一组用于用JAVA操作数据库的API,通过这个API接口,可以连接到数据库,并且使用结构化查询语言(SQL)完成对数据库的查找,更新等操作。

JDBC连接的流程:

加载驱动

建立连接

准备SQL语句

执行SQL语句

处理结果

断开连接

JDBC连接MySQL

mysql的jdbc.properties文件配置

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE

jdbc.username=root

jdbc.password=password

例子:

public static Connection lianJie() throws ClassNotFoundException, SQLException {

//1.加载驱动

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

String url = "jdbc:mysql://localhost:3306/mysql?serverTimezone=GMT%2B8";

String user = "root";

String password = "123456";

//2.建立连接

Connection connections = DriverManager.getConnection(url, user, password);

//返回连接对象

return connections;

}

//调用它的方法如下:

public static void query(String query) throws SQLException, ClassNotFoundException {

//获取connection对象

Connection connection = DButil.lianJie();

//3.准备SQL语句

PreparedStatement pStatement = connection.prepareStatement(query);

//4.执行SQL语句

ResultSet resultSet = pStatement.executeQuery();

//检索此 ResultSet对象的列的数量,类型和属性。

ResultSetMetaData resultSetMetaData = resultSet.getMetaData();

//返回此 ResultSet对象中的列数。

int column = resultSetMetaData.getColumnCount();

System.out.println("序号" + "\t" + "姓名" + "\t" + "年龄" + "\t" + "课程");

//5.处理结果遍历要查询的数据

while (resultSet.next()) {

//遍历行数

for (int i = 1; i <= column; i++) {

System.out.print(resultSet.getObject(i) + "\t");

}

System.out.println();

}

//6.关闭连接

resultSet.close();

pStatement.close();

connection.close();

}

}

利用PreparedStatement来执行SQL插入语句,之后再将数据打印出来:

import java.sql.*;

import java.util.Scanner;

public class TestPreparedStatement {

public static void main (String[] args) throws SQLException {

Connection conn = getConnection();

String sql = "Insert into books values(?,?,?)";

//这里使用了PreparedStatement

PreparedStatement pstat = conn.prepareStatement(sql);

//从终端读取数据 并插入到表中

Scanner in = new Scanner(System.in);

while (in.hasNext()){

String parameter = in.nextLine();

if(parameter.equalsIgnoreCase("exit")){

break;

}

//分割字段

String[] parameters = parameter.trim().split(" ");

for(int i = 0;i

if(i==parameters.length-1) {

pstat.setDouble(i+1,Double.parseDouble(parameters[i]));

}

pstat.setString(i+1,parameters[i]);

}

if(pstat.executeUpdate()!=1){

System.out.println("插入失败");

}

}

//打印出插入的信息

sql = "select * from books";

pstat = conn.prepareStatement(sql);

boolean done = false;

ResultSet rs = pstat.executeQuery();

//在使用rs前,要先调用其next方法

while(rs.next()){

System.out.println(rs.getString("name")+" "

+ rs.getString("author")+" "

+ rs.getString("price") //会对数据类型进行字段转换

);

}

}

//该函数用于获取连接

public static Connection getConnection() {

Connection conn = null;

try {

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

String url = "jdbc:mysql://localhost:3306/testjdbc?useSSL=false&serverTimezone=Hongkong";

String username = "root";

String password = "613781zs";

conn = DriverManager.getConnection(url, username, password);

} catch (ClassNotFoundException | SQLException e) {

e.printStackTrace();

}finally {

return conn;

}

}

}

JDBC连接Oracle

Oracle的jdbc.properties文件配置

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver

jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl

jdbc.username=//用户名

jdbc.password=//密码

jdbc.dialect=org.hibernate.dialect.OracleDialect

具体例子:

import oracle.jdbc.driver.OracleDriver;

import java.sql.*;

import java.util.Properties;

/**

* Created by 10412 on 2016/12/27.

* JDBC的六大步骤

* JAVA连接Oracle的三种方式

*/

public class JdbcTest

{

public static void main(String[] args) {

Connection connect = null;

Statement statement = null;

ResultSet resultSet = null;

try {

//第一步:注册驱动

//第一种方式:类加载(常用)

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

//第二种方式:利用Driver对象

Driver driver = new OracleDriver();

DriverManager.deregisterDriver(driver);

//第三种方式:利用系统参数 需在idea中配置program arguments为下面的参数

//-Djdbc.drivers = oracle.jdbc.OracleDriver

//第二步:获取连接

//第一种方式:利用DriverManager(常用)

//connect = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "你的oracle数据库用户名", "用户名密码");

connect = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "tiger");

//第二种方式:直接使用Driver

// Properties pro = new Properties();

// pro.put("user", "scott");

// pro.put("password", "tiger");

// connect = driver.connect("jdbc:oracle:thin:@127.0.0.1:1521:XE", pro);

//测试connect正确与否

System.out.println(connect);

System.out.println("链接成功");

//第三步:获取执行sql语句对象

//第一种方式:statement

statement = connect.createStatement();

//第二种方式:PreStatement

//PreparedStatement preState = connect.prepareStatement("select * from student");

//第四步:执行sql语句

//第一种方式:

resultSet = statement.executeQuery("select * from student");

//第二种方式:

// preState.setInt(1, 2);//1是指sql语句中第一个?, 2是指第一个?的values值

//resultSet = preState.executeQuery(); //执行查询语句

//查询任何语句,如果有结果集,返回true,没有的话返回false,注意如果是插入一条数据的话,虽然是没有结果集,返回false,但是却能成功的插入一条数据

// boolean execute = preState.execute();

// System.out.println(execute);

//第五步:处理结果集

while (resultSet.next())

{

int id = resultSet.getInt("SNO");

String name = resultSet.getString("SNAME");

String sex = resultSet.getString("SSEX");

System.out.println(id+" "+name+" "+sex); //打印输出结果集

}

} catch (Exception e) {

e.printStackTrace();

}finally {

//第六步:关闭资源

try {

if (resultSet!=null) resultSet.close();

if (statement!=null) statement.close();

if (connect!=null) connect.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

JDBC连接SQL Server

import java.sql.*;

public class Main {

public static void main(String []args) {

String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";

String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=你的数据库名称";

String userName="sa(你的管理员名称)";

String userPwd="你的密码";

try

{

Class.forName(driverName);

Connection dbConn=DriverManager.getConnection(dbURL,userName,userPwd);

System.out.println("success!");

}

catch(Exception e)

{

e.printStackTrace();

System.out.print("fail!");

}

}

}

说明:

在SQL Server 2000 中加载驱动和URL路径的语句是:

String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";

String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sample";

而sql server 2005 中加载驱动和url的语句则为

String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample";

各关系型数据库的默认端口号

MySQL:3306

Oracle:1521

SQL Server:1433

jdbc连接oracle mysql_JDBC连接MySQL、Oracle和SQL server的配置相关推荐

  1. sql oracle 自增长字段,在Oracle、MySQL、MS SQL Server中创设自动增长字段

    在Oracle.MySQL.MS SQL Server中创建自动增长字段 好吧,今天面试有道题,要各个数据库怎么建立自增长字段,顺便复习一下吧,最近面试很多数据库问题... 一:Oracle Orac ...

  2. mysql 1326_Mysql应用SQL Server 出现Error: 1326错误(管理器无法连接远程数据库)问题解决方案...

    <Mysql应用SQL Server 出现Error: 1326错误(管理器无法连接远程数据库)问题解决方案>要点: 本文介绍了Mysql应用SQL Server 出现Error: 132 ...

  3. 成功解决无法连接到YLMF-201404228CG,在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败

    成功解决无法连接到YLMF-201404228CG,在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败 ...

  4. 在与SQL server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且SQL server已配置为允许远程连接。error40 错误53

    目录 项目场景: 问题描述: 原因分析: 解决方案: 1,开启SQL server 服务 菜单-->Microsoft SQL Server 2014-->SQL Server 2014 ...

  5. 在与SQL Server建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且SQL Server已配置为允许远程连接。(provider:命名管道提供程序,

    无法连接到(local). 其他信息: 在与SQL Server建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且SQL Server已配置为允许远程连接 ...

  6. 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。

    在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. 在使用G2服务时,测试服务器 ...

  7. 若要连接到此服务器,必须使用sql server management studio 或 sql server 管理对象(smo)

    SQL2000远程连接MSSQL 2005数据库的时候,会出现若要连接到此服务器,必须使用sql server management studio 或 sql server 管理对象(smo). 原因 ...

  8. python oracle 运维,mysql oracle python连接

    #encoding:utf-8 #dataProc #auth xiajikun import sys # oracle库连接模块 import cx_Oracle # mysql库连接 import ...

  9. jpa oracle mysql,oracle+jpa和mysql+mybatis的混合多数据源配置例子

    最近在学习的时候看到了多数据源这一章,回想以前做的所有项目用到了MySQL,Oracle,Mybatis,SpringJpa等等. 这里不评论各自的优缺点,也不推荐该使用哪一种.大部分的文章都是单一技 ...

  10. oracle数据库需要的端口号,SQL Server数据库、MySQL、Oracle数据库各自的默认端口号...

    我们今天主要向大家讲述的是SQL Server数据库.MySQL.Oracle数据库各自的默认端口号,以下就是对SQL Server数据库.MySQL.Oracle数据库各自的默认端口号的描述,望在你 ...

最新文章

  1. SpringMVC 返回json
  2. 人为何会发烧,超过42°C会怎样?
  3. Tomcat安装及配置教程(超详细的图文教程)(亲测)
  4. RedisManager使用手册(二) -- 配置文件详解
  5. 服务器运维监控指标,运维体系~指标监控~Prometheus监控告警与日志
  6. 信息学奥赛一本通C++语言——1107:校门外的树
  7. NLP《词汇表示方法(五)GloVe》
  8. r语言 求平方和_R语言 第3章 R语言常用的数据管理(10)
  9. Mysql数据库课程设计
  10. M/M/1 排队论模型
  11. 计算机基础第四章excel,计算机基础第4次作业 第四章 Excel知识题
  12. U盘使用终极攻略,看你知道多少
  13. 复数基础——二次公式的复根,复平面上标复数值点_7
  14. 学术篇 | 不同需求的认知控制揭示了语义记忆和情景记忆提取共享的神经机制
  15. 影子卫士汉化语言包 res.ini
  16. 影响力最大化概述——《社会网络节点影响力分析研究》内容简述
  17. Tita OKR:掌握大局的仪表盘
  18. ZCMU-1133- 第九章:致我们终将逝去的青春
  19. python能安装到d盘吗_第一课:python安装
  20. 密码学安全性证明中的挑战者和攻击者

热门文章

  1. 最小堆最大堆的详细解读
  2. 基于LOAM框架的激光SLAM开源程序汇总
  3. Sci-Hub又又又被起诉了!这个论文免费下载网站也太难了...
  4. 实锤了!Chrome存在严重漏洞!
  5. RGPNET: A real-time general purpose semantic segmentation(复杂环境下实时通用语义分割网络)
  6. 【2019-08-18】时间是有密度的
  7. 辗转相除法 两个数的最大公约数
  8. 简单Java类和数据库操作及javafx的结合小项目(二)
  9. 使用其它模块的头文件
  10. mariadb配置允许远程访问方式