Java连接数据库(自学笔记)
一、六步骤
第一步:注册驱动,主要告诉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连接数据库(自学笔记)相关推荐
- 基于Java机器学习自学笔记(第81-87天:CNN卷积神经网络的入门到全代码编写)
注意:本篇为50天后的Java自学笔记扩充,内容不再是基础数据结构内容而是机器学习中的各种经典算法.这部分博客更侧重于笔记以方便自己的理解,自我知识的输出明显减少,若有错误欢迎指正! 目录 1. CN ...
- 基于 Java 机器学习自学笔记 (第63-65天:集成学习之AdaBoost)
注意:本篇为50天后的Java自学笔记扩充,内容不再是基础数据结构内容而是机器学习中的各种经典算法.这部分博客更侧重于笔记以方便自己的理解,自我知识的输出明显减少,若有错误欢迎指正! 目录 一.关于集 ...
- 基于 Java 机器学习自学笔记 (第61-62天:ID3决策树)
注意:本篇为50天后的Java自学笔记扩充,内容不再是基础数据结构内容而是机器学习中的各种经典算法.这部分博客更侧重于笔记以方便自己的理解,自我知识的输出明显减少,若有错误欢迎指正! 目录 一.关于决 ...
- JAVA入门自学笔记
本人做了几年电力行业,发觉IT行业更加有前景,故跳槽转到IT行业,先做了半年集成从硬件.数据库开始接触,现在慢慢的在看一些开源的社区工具,越发感觉有几年研发经历的重要性,遂抽空开始自学java,此笔记 ...
- JAVA基础自学笔记整理(一)某些数据类型的姿势
今天看了的视频中介绍了char 与 String 其实在学一点C之后,在去实践了一些JAVA(都是些抠脚的东西),我还天真的以为,JAVA中的字符串是只有String类型,诶,看来是我太天真了. 1. ...
- JAVA自学笔记07
JAVA自学笔记07 1.构造方法 1) 例如:Student s = new Student();//构造方法 System.out.println(s);// Student@e5bbd6 2)功 ...
- JAVA自学笔记24
JAVA自学笔记24 1.能使用同步代码块就使用同步代码块,除非锁对象是this,就可以考虑使用同步方法.静态方法的锁是类的字节码对象. 2.JDK5新特性 1)接口Lock void Lock()/ ...
- JAVA自学笔记22
JAVA自学笔记22 1.操作基本数据类型的流 DataInputStream DataOutputStream 数据输出流允许应用程序以适当方式将基本的Java数据类型写入输出流中.然后,应用程序可 ...
- 字节、阿里等大厂的技术如何?看看这些Java程序员的自学笔记
这份笔记涉及JVM.JAVA集合.JAVA多线程并发.JAVA基础.Spring原理.微服务.Netty与RPC.网络.日志.Kafka.RabbitMQ.Hbase.MongoDB.设计模式.负载均 ...
最新文章
- mysql驱动不支持批处理_ADO.NET 中可以发送包含多个SQL语句的批处理脚本到SQL Server,但是用MySQL的ODBC驱动不行...
- C/C++宏定义中#与##区别 .
- 贝叶斯优化python包_Bayesian2D-用贝叶斯优化方法求任意二维函数的最大值或最小值的软件包-Juhan Raidal...
- GFS(Genetic Fuzzy Systems)—— 基于专家先验规则库和遗传算法相结合的智能体决策算法
- 无人承运平台系统流程图
- BugkuCTF-WEB题速度要快
- Ajax在IE浏览器会出现中文乱码解决办法
- Android之Intent传递数据
- 第二次打开不是最大_第二次约会男生该干嘛,才能让关系更进一步?
- php中的冒泡排序和选择排序d
- C语言—黑客数字雨特效
- 代码 点胶gcode_Gcode代码解释
- java生成zipf分布_统计分布-Zipf分布
- Tkinter——②entry(文本框)和text(多行文本)
- python基本运算符号有哪些
- c++入门必学算法 质数筛
- 2022年驾驶员考试推土机司机多选题专项训练及答案
- c语言char+s+qwr的意思,qwr(qwr是什么意思)
- JavaEE - Linux基本使用和程序部署
- 科学技术史类毕业论文文献有哪些?