JDBC 简介和基本使用
2017-07-06 22:00
405 查看
最近复习javaWeb相关的一些东西,今天看JDBC连接数据库的一些操作。回头来重新学习一次数据的东西。
1.什么是JDBC?
JDBC 全称是java database Connectivity 就是java数据库连接。
JDBC 连接数据库步骤:
1.导入jar包
2.加载驱动类:Class.forName("类名");
3.给出url,username,password
4.使用DriverManager 类得到Connection
在导入包后写出来代码:
JDBC原理:
早期SUN公司为各大数据库厂商提供了一种数据库标准,给所有的数据库厂商来实现,从而达到让数据库连接统一起来的目的。这样从而有了JDBC这套接口标准。其他数据库厂商分别实现对不同的数据库的操作,从而方便用户的操作。(mysql、oralce等的驱动就是这套接口的实现)
其实上述两个语句是有关系的:
在DriverManager 类中有个方法:registerDriver();
我们可以通过注册的方法来加载驱动(和上述的方式一样):
注意:jdbc4.0后在每个驱动的jar包中,在META-INF目录下的services目录下提供了一个名为Driver的文件,文件的内容就是这个接口的实现。所以对于jdbc4.0以后的jar也可以不写Class.forName("com.mysql.jdbc.Driver");这句。
如图:
我们为了代码的兼容性,我们以后自己要是写代码,最好加上上述加载Driver驱动的代码。这样就可以获得连接Connection的连接。这个连接是JDBC的一个接口,我们获取到这个实现就可以做其他的数据库操作了。
jdbc协议:
jdbc:厂商的名称:子协议(厂商自己规定)---> 如:jdbc:mysql://localhost:3306/mydb
对于mysql子协议的规定格式://主机:端口号/数据库名称。
有些数据库的URL后边还有一些其他的东西,是设置数据库连接的一些参数。
数据库的增删改
上面我们知道了数据库的连接,下面在了解一个Statement,这个类用来对数据库进行一些操作。
1.通过Connection 获取一个Statement对象
2.调用他的方法executeUpsate(String sql);这个方式可以执行数据库操作的DML、DDL、语句。
这样就完成了数据库的一次操作:
查询语句执行(查询道理上应该是返回一个数据的表,和数据库的表类似的一个东西。):
stmt.executeQuery(String);
String sql = "select * from teacher”;
ResultSet rs =
b049
stmt.executeQuery(sql);
上述就可以完成我们一次查询,最后我们处理查询的结果。ResultSet提供了一些列的方法用来操作查询到的数据库表。如next(),方法用来让这个结果的值向下移动一行,一系列的getXxx();方法用来获取不同数据值。
查询:
这样就完成了查询操作。
最后的操作:
关闭的数据的连接,一般的服务器和数据库不在一个电脑上,有一个网络连接,最后我们要关闭连接。关闭资源的技巧,到关:先打开的后关闭,注意:Connection这个连接一定要关闭。这个东西不关闭时间长了就会耗费大量资源,导致出问题。
如上的操作,关闭则这样:
rs.close();
stmt.close();
con.close();
1.什么是JDBC?
JDBC 全称是java database Connectivity 就是java数据库连接。
JDBC 连接数据库步骤:
1.导入jar包
2.加载驱动类:Class.forName("类名");
3.给出url,username,password
4.使用DriverManager 类得到Connection
在导入包后写出来代码:
try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/mydb3"; String username = "root"; String password = "123456"; Connection con = DriverManager.getConnection(url,username,password); System.out.println("conn:"+con); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }正常情况下就可以获取到数据库的连接。
JDBC原理:
早期SUN公司为各大数据库厂商提供了一种数据库标准,给所有的数据库厂商来实现,从而达到让数据库连接统一起来的目的。这样从而有了JDBC这套接口标准。其他数据库厂商分别实现对不同的数据库的操作,从而方便用户的操作。(mysql、oralce等的驱动就是这套接口的实现)
Class.forName("com.mysql.jdbc.Driver");这句话用来加载mysql数据库的驱动。(注册驱动类)
Connection con = DriverManager.getConnection(url,username,password);这句话获取连接。上述两个语句实现了数据库的连接,但是上述两个语句没有相互的关系?
其实上述两个语句是有关系的:
在DriverManager 类中有个方法:registerDriver();
我们可以通过注册的方法来加载驱动(和上述的方式一样):
com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver()'; DrvierManager.registerDriver(driver); Connection con = DriverManager.getConnection("","","");这样我们就可以看到他们之前有了关系。那么为什么上述方式可以达到同样的效果呢?以为我们在Class.forName("com.mysql.jdbc.Driver");这个类的时候执行了一些静态代码块,静态代码块已经帮我们完成了注册(我们在com.mysql.jdbc.Driver这个类中发现)
static { try { java.sql.DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeException("Can't register driver!"); } }可以看出上述代码完成了注册。其实其他实现了JDBC接口Driver的数据库的厂商都是这种做法。
注意:jdbc4.0后在每个驱动的jar包中,在META-INF目录下的services目录下提供了一个名为Driver的文件,文件的内容就是这个接口的实现。所以对于jdbc4.0以后的jar也可以不写Class.forName("com.mysql.jdbc.Driver");这句。
如图:
我们为了代码的兼容性,我们以后自己要是写代码,最好加上上述加载Driver驱动的代码。这样就可以获得连接Connection的连接。这个连接是JDBC的一个接口,我们获取到这个实现就可以做其他的数据库操作了。
jdbc协议:
jdbc:厂商的名称:子协议(厂商自己规定)---> 如:jdbc:mysql://localhost:3306/mydb
对于mysql子协议的规定格式://主机:端口号/数据库名称。
有些数据库的URL后边还有一些其他的东西,是设置数据库连接的一些参数。
数据库的增删改
上面我们知道了数据库的连接,下面在了解一个Statement,这个类用来对数据库进行一些操作。
1.通过Connection 获取一个Statement对象
2.调用他的方法executeUpsate(String sql);这个方式可以执行数据库操作的DML、DDL、语句。
这样就完成了数据库的一次操作:
try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/mydb3"; String username = "root"; String password = "liuxiaolong"; Connection con = DriverManager.getConnection(url,username,password); System.out.println("conn:"+con); Statement stmt = con.createStatement(); String sql = "insert into teacher values('7','heihei','计算机科学技术','24')"; int count = stmt.executeUpdate(sql); System.out.println("count:"+count); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }结果表示插入了一个行到数据库中:
count:1stmt.executeUpdate(String sql); 这个方式可以执行insert,update,delete等sql语句。这样就可以完成增删改。
查询语句执行(查询道理上应该是返回一个数据的表,和数据库的表类似的一个东西。):
stmt.executeQuery(String);
String sql = "select * from teacher”;
ResultSet rs =
b049
stmt.executeQuery(sql);
上述就可以完成我们一次查询,最后我们处理查询的结果。ResultSet提供了一些列的方法用来操作查询到的数据库表。如next(),方法用来让这个结果的值向下移动一行,一系列的getXxx();方法用来获取不同数据值。
查询:
try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/mydb3"; String username = "root"; String password = "liuxiaolong"; Connection con = DriverManager.getConnection(url,username,password); System.out.println("conn:"+con); Statement stmt = con.createStatement(); String sql3 = "select * from teacher"; ResultSet rs = stmt.executeQuery(sql3); while(rs.next()){ int no = rs.getInt("t_id"); String name = rs.getString("name"); String expert = rs.getString("expert"); System.out.println(no+"-"+name+"-"+expert); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }查询结果:
这样就完成了查询操作。
最后的操作:
关闭的数据的连接,一般的服务器和数据库不在一个电脑上,有一个网络连接,最后我们要关闭连接。关闭资源的技巧,到关:先打开的后关闭,注意:Connection这个连接一定要关闭。这个东西不关闭时间长了就会耗费大量资源,导致出问题。
如上的操作,关闭则这样:
rs.close();
stmt.close();
con.close();
相关文章推荐
- J2EE入门视频教程第八讲——Hibernate简介及基本使用
- 文字编辑器FCKeditor 简介以及基本配置和使用方法
- [JDBC技术]2.JDBC基本使用步骤(中)
- pin 的使用简介 ——环境设置 基本工具的使用 相关知识
- Android中蓝牙的基本使用----BluetoothAdapter类简介
- Hsqldb简介和基本使用
- MyEclipse使用Java 通过JDBC连接MySQL数据库的基本测试
- MongoDB入门1――简介、安装及基本使用
- sqlserver profiler基本使用方法简介
- jdbc的基本使用
- [JDBC技术]2.JDBC基本使用步骤(上)
- Hsqldb简介和基本使用(一)
- H2数据库在JAVA(JDBC)中的基本使用
- [JDBC技术]2.JDBC基本使用步骤(上)
- JDBC的基本使用
- Hsqldb简介和基本使用
- Vim的基本使用简介
- Pyke 简介 (5) :使用 Pyke 的基本步调
- MongoDB入门1——简介、安装及基本使用
- MyEclipse使用Java 通过JDBC连接MySQL数据库的基本测试