什么是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. POJ1042 贪心钓鱼

    题意:       你有H小时(H*12个单位)时间去用,有n个鱼池在一条直线上,一开始你在1的位置,可以选择在某些鱼池上钓鱼,但是如果持续在一个鱼池上钓鱼钓鱼速度回成线性减少,初始每个时间单位钓fi ...

  2. Swift系列四 - 枚举

    适度给类型起别名能够让代码更加易懂,开发效率更高,可维护性更好. 一.typealias(别名) typealias用来给类型起别名. typealias Byte = Int8 typealias ...

  3. Day007 数组的声明与创建

    数组 数组的定义 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成. 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 数组声 ...

  4. Day001 Typora Markdown语法学习

    # Markdown语法 ## 标题 ### 三级标题 #### 四级标题 注:最多支持到六级标题 ## 字体 **hello,world!** *hello,world!* ***hello,wor ...

  5. CRM系统有哪几种常见类型?

    随着市场的快速变化,客户开始变得越来越重要,因此CRM客户管理系统开始逐渐被企业所认可.从CRM系统进入中国市场到现在十余年的发展中,越来越多的CRM厂商开始出现.为了满足不同行业.不同类型的企业的需 ...

  6. [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]

    [Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...

  7. Linux下script命令录制、回放和共享终端操作script -t 2> timing.log -a output.session # 开始录制

    Linux下script命令录制.回放和共享终端操作 [日期:2018-09-04] 来源:cnblogs.com/f-ck-need-u  作者:骏马金龙 [字体:大 中 小]   另一篇终端会话共 ...

  8. CentOS 8 配置 VNC Server

    CentOS 8 配置 VNC Server 2020-12-31 | 标签: centos, vnc 前言 CentOS 8 配置 VNC Server, 使用户可以远程访问,本例介绍安装和配置流程 ...

  9. CentOS6 YUM 源失效问题解决办法

    问题解决 网站好不容易找到一个 Yum 源还能用,地址:https://vault.centos.org/6.9/ 操作简单,把CentOS-Base.repo 里面的东西全部删掉,添加如下内容即可. ...

  10. 分布式存储ceph---ceph概念及原理(1)

    一.Ceph简介: Ceph是一种为优秀的性能.可靠性和可扩展性而设计的统一的.分布式文件系统.ceph 的统一体现在可以提供文件系统.块存储和对象存储,分布式体现在可以动态扩展.在国内一些公司的云环 ...