一、六步骤

第一步:注册驱动,主要告诉Java程序连接哪种数据库,如MySql、Orcale等,我自己连接的是MySql数据库。

Driver driver = new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(driver);

第二步:获取连接,使JVM的进程和数据之间的通道打开。

String url = "jdbc:mysql://localhost:3306/dlb_mysql";
            String user = "root";
            String password = "123456";
            conn = DriverManager.getConnection(url, user, password);

url中:  jdbc:mysql://     协议

localhost       本机ip地址,如果连接其他电脑,换成对应的ip,如193.168.88.22

3306:    MySql数据库的端口号

dlb_mysql:    我自己电脑上的数据库名称,可以换成对应的数据库名称。

user:   用户名

password:   密码

第三步:获取数据库操作对象:state = conn.createStatement()。

第四步:执行Sql语句。

第五步:处理查询结果集。

第六步:释放资源:

全部代码如下:

import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;public class JDBCTest01{public static void main(String []args){Connection conn = null;Statement state = null;try{//1.注册驱动Driver driver = new com.mysql.jdbc.Driver();DriverManager.registerDriver(driver);//2.获取链接String url = "jdbc:mysql://localhost:3306/dlb_mysql";String user = "root";String password = "123456";conn = DriverManager.getConnection(url, user, password);System.out.println(conn);//3.获取数据库操作对象state = conn.createStatement();//4.执行sql语句String s = "insert into dept values('512','刘亦菲','西北大学')";//专门执行DML语句//返回值时影响数据库中的记录条数int count = state.executeUpdate(s);System.out.println(count==1 ?"保存成功" : "保存失败");//5.处理查询结果集}catch(SQLException e){e.printStackTrace();} finally{//6.释放资源,遵循从小到大依次关闭,并且对其分别try...catchtry{if(state != null){state.close();}}catch( SQLException e){e.printStackTrace();}try{if(conn != null){conn.close();}}catch( SQLException e){e.printStackTrace();}}}}

二、注册驱动的第二种方法(比较常用)。

上面注册驱动我们用的是这两句

Driver driver = new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(driver);

我们打开Mysql驱动中的Driver.class文件

看到源码    我们会发现有个静态代码块,里面执行的就是上面注册驱动的那两句,所以我们可以用这里的静态代码块来替代。

用在这句Class.forName("com.mysql.jdbc.Driver")代替,进行了类加载,静态代码块执行,无需接收返回值。

代码如下:跟上面的代码块就只有注册驱动那里发生连变化,进行了替代。

import java.sql.*;public class JDBCTest02{public static void main(String []args){Connection conn = null;Statement state = null;try{//1.注册驱动//Driver driver = new com.mysql.jdbc.Driver();//DriverManager.registerDriver(driver);Class.forName("com.mysql.jdbc.Driver");//进行了类加载,静态代码块执行,无需接收返回值//2.获取链接String url = "jdbc:mysql://localhost:3306/dlb_mysql";String user = "root";String password = "123456";conn = DriverManager.getConnection(url, user, password);System.out.println(conn);//3.获取数据库操作对象state = conn.createStatement();//4.执行sql语句String s = "insert into dept values('522','刘亦菲','西北大学')";//专门执行DML语句//返回值时影响数据库中的记录条数int count = state.executeUpdate(s);System.out.println(count==1 ?"保存成功" : "保存失败");//5.处理查询结果集}catch(ClassNotFoundException e){e.printStackTrace();}catch(SQLException e){e.printStackTrace();} finally{//6.释放资源,遵循从小到大依次关闭,并且对其分别try...catchtry{if(state != null){state.close();}}catch( SQLException e){e.printStackTrace();}try{if(conn != null){conn.close();}}catch( SQLException e){e.printStackTrace();}}}}

3.用配置文件中读取数据库连接信息

代码如下:

import java.sql.*;
import java.util.*;public class JDBCTest03{public static void main(String []args){Connection conn = null;Statement state = null;try{ResourceBundle bundle = ResourceBundle.getBundle("jdbc");//1.注册成功String driver = bundle.getString("driver");Class.forName(driver);//进行了类加载,无需接收返回值//2.获取链接String url = bundle.getString("url");String user = bundle.getString("user");String password = bundle.getString("password");conn = DriverManager.getConnection(url, user, password);System.out.println(conn);//3.获取数据库操作对象state = conn.createStatement();//4.执行sql语句String s = "insert into dept values('523','刘亦菲','西北大学')";//专门执行DML语句//返回值时影响数据库中的记录条数int count = state.executeUpdate(s);System.out.println(count==1 ?"保存成功" : "保存失败");//5.处理查询结果集}catch(ClassNotFoundException e){e.printStackTrace();}catch(SQLException e){e.printStackTrace();} finally{//6.释放资源,遵循从小到大依次关闭,并且对其分别try...catchtry{if(state != null){state.close();}}catch( SQLException e){e.printStackTrace();}try{if(conn != null){conn.close();}}catch( SQLException e){e.printStackTrace();}}}}

Java连接数据库(自学笔记)相关推荐

  1. 基于Java机器学习自学笔记(第81-87天:CNN卷积神经网络的入门到全代码编写)

    注意:本篇为50天后的Java自学笔记扩充,内容不再是基础数据结构内容而是机器学习中的各种经典算法.这部分博客更侧重于笔记以方便自己的理解,自我知识的输出明显减少,若有错误欢迎指正! 目录 1. CN ...

  2. 基于 Java 机器学习自学笔记 (第63-65天:集成学习之AdaBoost)

    注意:本篇为50天后的Java自学笔记扩充,内容不再是基础数据结构内容而是机器学习中的各种经典算法.这部分博客更侧重于笔记以方便自己的理解,自我知识的输出明显减少,若有错误欢迎指正! 目录 一.关于集 ...

  3. 基于 Java 机器学习自学笔记 (第61-62天:ID3决策树)

    注意:本篇为50天后的Java自学笔记扩充,内容不再是基础数据结构内容而是机器学习中的各种经典算法.这部分博客更侧重于笔记以方便自己的理解,自我知识的输出明显减少,若有错误欢迎指正! 目录 一.关于决 ...

  4. JAVA入门自学笔记

    本人做了几年电力行业,发觉IT行业更加有前景,故跳槽转到IT行业,先做了半年集成从硬件.数据库开始接触,现在慢慢的在看一些开源的社区工具,越发感觉有几年研发经历的重要性,遂抽空开始自学java,此笔记 ...

  5. JAVA基础自学笔记整理(一)某些数据类型的姿势

    今天看了的视频中介绍了char 与 String 其实在学一点C之后,在去实践了一些JAVA(都是些抠脚的东西),我还天真的以为,JAVA中的字符串是只有String类型,诶,看来是我太天真了. 1. ...

  6. JAVA自学笔记07

    JAVA自学笔记07 1.构造方法 1) 例如:Student s = new Student();//构造方法 System.out.println(s);// Student@e5bbd6 2)功 ...

  7. JAVA自学笔记24

    JAVA自学笔记24 1.能使用同步代码块就使用同步代码块,除非锁对象是this,就可以考虑使用同步方法.静态方法的锁是类的字节码对象. 2.JDK5新特性 1)接口Lock void Lock()/ ...

  8. JAVA自学笔记22

    JAVA自学笔记22 1.操作基本数据类型的流 DataInputStream DataOutputStream 数据输出流允许应用程序以适当方式将基本的Java数据类型写入输出流中.然后,应用程序可 ...

  9. 字节、阿里等大厂的技术如何?看看这些Java程序员的自学笔记

    这份笔记涉及JVM.JAVA集合.JAVA多线程并发.JAVA基础.Spring原理.微服务.Netty与RPC.网络.日志.Kafka.RabbitMQ.Hbase.MongoDB.设计模式.负载均 ...

最新文章

  1. mysql驱动不支持批处理_ADO.NET 中可以发送包含多个SQL语句的批处理脚本到SQL Server,但是用MySQL的ODBC驱动不行...
  2. C/C++宏定义中#与##区别 .
  3. 贝叶斯优化python包_Bayesian2D-用贝叶斯优化方法求任意二维函数的最大值或最小值的软件包-Juhan Raidal...
  4. GFS(Genetic Fuzzy Systems)—— 基于专家先验规则库和遗传算法相结合的智能体决策算法
  5. 无人承运平台系统流程图
  6. BugkuCTF-WEB题速度要快
  7. Ajax在IE浏览器会出现中文乱码解决办法
  8. Android之Intent传递数据
  9. 第二次打开不是最大_第二次约会男生该干嘛,才能让关系更进一步?
  10. php中的冒泡排序和选择排序d
  11. C语言—黑客数字雨特效
  12. 代码 点胶gcode_Gcode代码解释
  13. java生成zipf分布_统计分布-Zipf分布
  14. Tkinter——②entry(文本框)和text(多行文本)
  15. python基本运算符号有哪些
  16. c++入门必学算法 质数筛
  17. 2022年驾驶员考试推土机司机多选题专项训练及答案
  18. c语言char+s+qwr的意思,qwr(qwr是什么意思)
  19. JavaEE - Linux基本使用和程序部署
  20. 科学技术史类毕业论文文献有哪些?

热门文章

  1. Axure预览和发布时去掉左上角的标识
  2. 二手车电商三国杀,广告大战究竟该不该打?
  3. 第三部分:(主从)复合句——第三章:状语从句
  4. document在方法外获取对象无法获取数据
  5. HTML+CSS+JavaScript简单实现时钟
  6. JPEG-LS压缩算法研究
  7. Web 攻防之业务安全:登录失败信息测试.
  8. 百格活动教你16种策略,从活动策划小白进阶为活动策划大神!
  9. 百度乐播音乐真实地址查找api接口
  10. 《Node.js》中间件和洋葱圈模型