什么是JDBC

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

JDBC连接的流程:

  1. 加载驱动
  2. 建立连接
  3. 准备SQL语句
  4. 执行SQL语句
  5. 处理结果
  6. 断开连接

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<parameters.length;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连接MySQL、Oracle和SQL server的配置的更多相关文章

  1. 对于使用JDBC连接mysql数据时The server time zone value '¤¤°ê¼Ð·Ç®É¶¡'...的异常问题解决。

    相信很多小伙伴和我一样遇到了这类问题,在使用JDBC连接mysql数据库的时候发生SQLException如下所示的异常情况! java.sql.SQLException: The server ti ...

  2. MySql/Oracle和SQL Server的分页查

    假设当前是第PageNo页,每页有PageSize条记录,现在分别用Mysql.Oracle和SQL Server分页查询student表. 1.Mysql的分页查询: 1 SELECT 2 * 3 ...

  3. jdbc连接mysql/oracle数据库

    driver-class-name : com.mysql.jdbc.Driver url : jdbc:mysql://localhost:3306/数据库名 username:   root pa ...

  4. JDBC连接MYSQL,批量执行SQL语句或在执行一个SQL语句之前执行一个SQL语句

    conn = MysqlJdbcUtils.getConnection(); Statement ps=conn.createStatement(); ps.addBatch("trunca ...

  5. MyEclipse 2013配置JDBC连接mySQL||Tomcat 7.0 8.0 配置 JDBC |配置mysql-connector-java-5.1.16

    MyEclipse->Preferences->MyEclipse->Severs->Intergated Sandbox->Myeclipse Tomcat 7(或者T ...

  6. 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析

    对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...

  7. JDBC连接MySQL与Oracle

    JDBC连接MySQL .JDBC连接Oracle (跳转) JDBC连接MySQL import org.junit.Test; import java.sql.*; /** * JDBC连接MyS ...

  8. JDBC 连接Oracle 数据库,JDBC 连接Mysql 数据库

    首先是JDBC 连接Oracle  数据库 package com.util; import com.pojo.UserInfo; import java.sql.*; public class DB ...

  9. 基于TreeSoft实现mysql、oracle、sql server的数据同步

    一.为了解决数据同步汇聚,数据分发,数据转换,数据维护需求,TreeSoft推出了数据同步,数据处理等丰富功能 . TreeSoft作为中间传输载体负责连接各种数据源,为各种异构数据库之间架起沟通的桥 ...

随机推荐

  1. Xposed学习二:实现机制

    在上一篇我们学习了如何在AS中创建Xposed模块,本篇来分析下官方教程中redClock的实现原理.本系列文章基于version-51 public void handleLoadPackage(X ...

  2. Windows PE 第八章 延迟加载导入表

    延迟加载导入表 延迟加载导入表是PE中引入的专门用来描述与动态链接库延迟加载相关的数据,因为这些数据所引起的作用和结构与导入表数据基本一致,所以称为延迟加载导入表. 延迟加载导入表和导入表是相互分离的 ...

  3. 微信小程序中的加载更多(即列表分页)

    1.app.json中: "window": { "enablePullDownRefresh": true //是否开启当前页面下拉刷新 } 2.wxml中: ...

  4. 浅入浅出 MySQL 索引

    简单了解索引 首先,索引(Index)是什么?如果我直接告诉你索引是数据库管理系统中的一个有序的数据结构,你可能会有点懵逼. 为了避免这种情况,我打算举几个例子来帮助你更容易的认识索引. 我们查询字典 ...

  5. OOP第四章博客

    OOP第四章博客作业 (1)本单元作业架构设计 1)针对于第一次作业,我是将所给类进行了自己的封装,在MyUmlInteraction类里面进行关系的建立,这里把所给的UmlClass建立好,同时有i ...

  6. Java GUI学习,贪吃蛇小游戏

    JAVA GUI练习 贪吃蛇小游戏 前几天虽然生病了,但还是跟着狂神学习了GUI的方面,跟着练习了贪吃蛇的小项目,这里有狂神写的源码点我下载,还有我跟着敲的点我下载,嘿嘿,也就注释了下重要的地方,这方 ...

  7. Build 2021 :正式发布.NET 6 Preview4

    微软在不断推进.NET 6的可用性,昨晚的Build 2021大会上发布了Preview4, 这是一个很大的版本更新,带来大量的功能,以及接近最终的产品交付质量,不过,这并不意味着可以在生产环境使用了 ...

  8. dpkg -S /usr/lib/mate-notification-daemon/mate-notification-daemon

    # dpkg -S /usr/lib/mate-notification-daemon/mate-notification-daemonmate-notification-daemon: /usr/l ...

  9. mysql基础之查询缓存、存储引擎

    一.查询缓存 "查询缓存",就是将查询的结果缓存下载,如果查询语句完全相同,则直接返回缓存中的结果. 如果应用程序在某个场景中,需要经常执行大量的相同的查询,而且查询出的数据不会经 ...

  10. osi七层模型与tcp/ip四层模型的差别

    OSI 七层协议 应用层 表示层 会话层 运输层 网络层 数据链路层 物理层 TCP/IP 四层协议 应用层 运输层 网际层 网络接口层 五层协议: 应用层 为用户的应用进程提供服务 HTTP SMT ...