当前位置: 澳门新濠3559 > 编程 > 正文

特来简书分享,不同的数据库

时间:2019-10-07 13:11来源:编程
b数据库驱动:/b比如电脑上有网卡,但是必须装网卡驱动才可以用。数据库也一样。应用程序是无法从数据库里直接获取数据的,必须要提前装好一个驱动程序。 1.获取数据库连接 最近

<b>数据库驱动:</b>比如电脑上有网卡,但是必须装网卡驱动才可以用。数据库也一样。应用程序是无法从数据库里直接获取数据的,必须要提前装好一个驱动程序。

1.获取数据库连接

最近几个月使用jmeter经过学习有一些进展,特来简书分享。关于jmeter的其他所有功能会不定期更新。

javaweb学习总结(三十二)——JDBC学习入门

转自:

不同的数据库,对应有不同的驱动,在开发时如果要从不同的数据库取数据,那岂不是要学习多种数据库驱动?NO,SUN公司为了简化,统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。

(1)使用JDBC的准备环境:

  • 1):拷贝MySQL的JDBC驱动,到Java项目中:mysql-connector-java-5.1.26-bin.jar。(注意:是jar包,不是zip包.)
  • 2):选择jar,[buil path],把jar添加到classpath路径.

澳门新濠3559 1

驱动包.png

<b>jmeter是什么?</b>
apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

一、JDBC相关概念介绍

澳门新濠3559 2image.png

(2)DBC操作第一步:获取JDBC连接对象/Connection对象.

操作步骤(贾琏):

  • 1):加载注册驱动.
Class.forName("com.mysql.jdbc.Driver");

为什么说上述代码,在完成加载注册驱动?
上述代码的作用:
1):把com.mysql.jdbc.Driver这一份字节码加载进JVM.
2):当一份字节码被加载进JVM,就会执行其静态代码块。而其底层的静态代码块在完成注册驱动工作.

澳门新濠3559 3

加载注册驱动.png

  • 2):获取连接对象.

通过DriverManager的getConnection方法创建Connection对象.

Connection  conn = DriverManager.getConnection(url,username,password);
url=jdbc:mysql://localhost:3306/jdbcdemo
//如果连接的是本机的MySQL,并且端口是默认的3306,则可以简写:url=jdbc:mysql:///jdbcdemo
username=root
password=admin

可以通过 show processlist命令来查看有几个MySQL进程.

一、JDBC Request (查询数据库获取数据库数据)的使用

1.添加需要的驱动jar包(以MySQL为例)
方法1:直接将jar包复制到jmeter的lib目录
方法2:通过Test Plan索引jar包位置

澳门新濠3559 4

通过Test Plan索引jar包位置

1.1、数据库驱动

  这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡,同样道理,我们安装好数据库之后,我们的应用程序也是不能直接使用数据库的,必须要通过相应的数据库驱动程序,通过驱动程序去和数据库打交道,如下所示:

  澳门新濠3559 5

JDBC全称为:Java Data Base Connectivity(Java数据库连接),它主要由接口组成。组成JDBC的2个包:java.sqljavax.sql开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现。

(3)备注

  • 从Java6开始:JDBC4.0: (了解)JDBC4.0有一个新特性-无需加载注册驱动.

  • 规范要求:从JDBC 4.0所有的驱动都必须包括 META-INF/services/java.sql.Driver 文件。此文件包含 java.sql.Driver 的 JDBC 驱动程序实现的名称。
    程序会自动从 META-INF/services/java.sql.Driver去读取当前的驱动类的全限定名,此时程序员不再需要显示的编写 Class.forName("com.mysql.jdbc.Driver")代码.

  • 在Web开发中,还是得使用手动加载注册驱动.

  • PS:有的时候,MySQL的驱动类也也会看到使用org.gjt.mm.mysql.Driver的情况,org.gjt.mm.mysql.Driver是早期的驱动名称,后来就改名为com.mysql.jdbc.Driver,现在一般都推荐使用 com.mysql.jdbc.Driver。

  • 在最新版本的mysql jdbc驱动中,为了保持对老版本的兼容,仍然保留了org.gjt.mm.mysql.Driver,但是实际上 org.gjt.mm.mysql.Driver中调用了com.mysql.jdbc.Driver,因此现在这两个驱动没有什么区别。

澳门新濠3559 6

注册驱动规范.png

二、配置JDBC Connection Configuration

重要参数说明:
Variable Name:数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。
Database URL:数据库url,jdbc:mysql://主机ip或者机器名称:mysql监听的端口号/数据库名称, 如:jdbc:mysql://localhost:3306/test
JDBC Driver class:JDBC驱动
username:数据库登陆的用户名
passwrod:数据库登陆的密码

填写后大致如下:

澳门新濠3559 7

JDBC Request

1.2、JDBC介绍

  SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范(接口),称之为JDBC。这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc加载具体的驱动,就可以操作数据库。

如下图所示:

  澳门新濠3559 8

  JDBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成。
  组成JDBC的2个包:
   java.sql
   javax.sql
  开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动)。

澳门新濠3559 9第一个JDBC程序.png

2.JDBC常用的API

三、配置JDBC Request

重要的参数说明:
Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致
Query:填写的sql语句未尾不要加“;”
Parameter valus:参数值
Parameter types:参数类型,可参考:Javadoc for java.sql.Types
Variable names:保存sql语句返回结果的变量名
Result variable name:创建一个对象变量,保存所有返回的结果
Query timeout特来简书分享,不同的数据库。:查询超时时间
Handle result set:定义如何处理由callable statements语句返回的结果

澳门新濠3559 10

配置JDBC Request

 二、编写JDBC程序

  1. 先把库和表建出来。

(1)操作JDBC的步骤口诀:

贾琏欲执事:
1:载注册驱动.
2:获取接对象.
3:创建/获取句对象.
4:行SQL语句.
5:放资源.

四、Variables names 参数使用方法:

jmeter官网给的解释是:如果给这个参数设置了值,它会保存sql语句返回的数据和返回数据的总行数。假如,sql语句返回2行,3列,且variables names设置为A,,C,那么如下变量会被设置为:
A_#=2 (总行数)  
A_1=第1列, 第1行  
A_2=第1列, 第2行   
C_#=2 (总行数)   
C_1=第3列, 第1行  
C_2=第3列, 第2行
如果返回结果为0,那么A_#和C_#会被设置为0,其它变量不会设置值。
如果第一次返回6行数据,第二次只返回3行数据,那么第一次那多的3行数据变量会被清除。
可以使用${A_#澳门新濠3559,}、${A_1}...来获取相应的值

示例
sql查询出的结果,取id=27,version_no=58

澳门新濠3559 11

示例

澳门新濠3559 12

Paste_Image.png

澳门新濠3559 13

Paste_Image.png

澳门新濠3559 14

Paste_Image.png

2.1、搭建实验环境    

  1、在mysql中创建一个库,并创建user表和插入表的数据。

  SQL脚本如下:

澳门新濠3559 15

 1 create database jdbcStudy character set utf8 collate utf8_general_ci;
 2 
 3 use jdbcStudy;
 4 
 5 create table users(
 6     id int primary key,
 7     name varchar(40),
 8     password varchar(40),
 9     email varchar(60),
10     birthday date
11 );
12 
13 insert into users(id,name,password,email,birthday) values(1,'zhansan','123456','zs@sina.com','1980-12-04');
14 insert into users(id,name,password,email,birthday) values(2,'lisi','123456','lisi@sina.com','1981-12-04');
15 insert into users(id,name,password,email,birthday) values(3,'wangwu','123456','wangwu@sina.com','1979-12-04');

澳门新濠3559 16

  2、新建一个Java工程,并导入数据驱动。
  澳门新濠3559 17

  3、编写程序从user表中读取数据,并打印在命令行窗口中。
  具体代码如下:

澳门新濠3559 18

 1 package me.gacl.demo;
 2 import java.sql.Connection;
 3 import java.sql.DriverManager;
 4 import java.sql.ResultSet;
 5 import java.sql.Statement;
 6 
 7 public class JdbcFirstDemo {
 8 
 9     public static void main(String[] args) throws Exception {
10         //要连接的数据库URL
11         String url = "jdbc:mysql://localhost:3306/jdbcStudy";
12         //连接的数据库时使用的用户名
13         String username = "root";
14         //连接的数据库时使用的密码
15         String password = "XDP";
16         
17         //1.加载驱动
18         //DriverManager.registerDriver(new com.mysql.jdbc.Driver());不推荐使用这种方式来加载驱动
19         Class.forName("com.mysql.jdbc.Driver");//推荐使用这种方式来加载驱动
20         //2.获取与数据库的链接
21         Connection conn = DriverManager.getConnection(url, username, password);
22         
23         //3.获取用于向数据库发送sql语句的statement
24         Statement st = conn.createStatement();
25         
26         String sql = "select id,name,password,email,birthday from users";
27         //4.向数据库发sql,并获取代表结果集的resultset
28         ResultSet rs = st.executeQuery(sql);
29         
30         //5.取出结果集的数据
31         while(rs.next()){
32             System.out.println("id="   rs.getObject("id"));
33             System.out.println("name="   rs.getObject("name"));
34             System.out.println("password="   rs.getObject("password"));
35             System.out.println("email="   rs.getObject("email"));
36             System.out.println("birthday="   rs.getObject("birthday"));
37         }
38         
39         //6.关闭链接,释放资源
40         rs.close();
41         st.close();
42         conn.close();
43     }
44 }

澳门新濠3559 19

运行结果如下:

  澳门新濠3559 20

(2)重要接口

  • Connection接口: 表示JDBC的连接对象.
    常用方法:
Statement createStatement()          //:创建一个静态的语句对象.
PreparedStatement prepareStatement(String sql)  //:创建一个预编译语句对象. 此时参数sql:表示带有占位符(?)的SQL语句的模板.
close()://释放资源
  • Statement接口: 静态SQL语句并返回它所生成结果.
    常用方法:
int executeUpdate(String sql)://执行DDL/DML语句.
      //若当前SQL是DDL语句,则返回0.
      //若当前SQL是DML语句,则返回受影响的行数.
ResultSet executeQuery(String sql)//:执行DQL语句,返回结果集.
close()//:释放资源
  • PreparedStatement接口:是Statemen接口的子接口-->享有Statement中的方法.表示预编译的 SQL 语句的对象

常用方法:

void setXxx(int parameterIndex,Xxx value)//:设置第几个占位符的真正参数值.
int executeUpdate()://执行DDL/DML语句. 注意:没有参数
      若当前SQL是DDL语句,则返回0.
      若当前SQL是DML语句,则返回受影响的行数.
ResultSet executeQuery()//:执行DQL语句,返回结果集.
//close():释放资源
//Xxx表示数据类型,比如String,int,long,Date等.
  • ResultSet接口:通过执行DQL语句查询之后的结果对象.封装了查询之后的所有数据.

    ResultSet 对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集

常用方法:

boolean next()://判断当前光标是否能向下移动,如果能向下移动返回true,并同时将光标移动到下一行.
Xxx getXxx(int columnIndex)://取出当前光标所在行的第columnIndex列的数据(columnIndex从1开始算).
Xxx getXxx(String columnName)://取出当前光标所在行的列名为columnName列的数据,columnName可以是别名.
//Xxx表示数据类型,比如String,int,long,Date等. 推荐使用列名来取数据.
close()://释放资源

2.2、DriverManager类讲解

  Jdbc程序中的DriverManager用于加载驱动,并创建与数据库的链接,这个API的常用方法:

  1. DriverManager.registerDriver(new Driver())
  2. DriverManager.getConnection(url, user, password),

  注意:在实际开发中并不推荐采用registerDriver方法注册驱动。原因有二:
    1、查看Driver的源代码可以看到,如果采用此种方式,会导致驱动程序注册两次,也就是在内存中会有两个Driver对象。
    2、程序依赖mysql的api,脱离mysql的jar包,程序将无法编译,将来程序切换底层数据库将会非常麻烦。

  推荐方式:Class.forName("com.mysql.jdbc.Driver");
  采用此种方式不会导致驱动对象在内存中重复出现,并且采用此种方式,程序仅仅只需要一个字符串,不需要依赖具体的驱动,使程序的灵活性更高。

create database jdbc character set utf8 collate utf8_general_ci;use jdbc;create table users( id int primary key, name varchar, password varchar, email varchar, birthday date);insert into users(id,name,password,email,birthday) values(1,'zs','123456','zs@sina.com','1980-12-04');insert into users(id,name,password,email,birthday) values(2,'lisi','123456','lisi@sina.com','1981-12-04');insert into users(id,name,password,email,birthday) values(3,'wangwu','123456','wangwu@sina.com','1991-2-14');

3.SQL语言的分类

SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML*,数据定义语言DDL,数据控制语言DCL

    1. 数据查询语言DQL:数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询块: SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>
    1. 数据操纵语言DML 数据操纵语言DML主要有三种形式: 1) 插入:INSERT 2) 更新:UPDATE 3) 删除:DELETE
    1. 数据定义语言DDL:数据定义语言DDL用来创建数据库中的各种对象-----表、视图、 索引、同义词、聚簇等如: CREATE TABLE/VIEW/INDEX/SYN/CLUSTER | | | | | 表 视图 索引 同义词 簇
      DDL操作是隐性提交的!不能rollback
    1. 数据控制语言DCL: 数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制 数据库操纵事务发生的时间及效果,对数据库实行监视等。

如:

  1. GRANT:授权。
  2. ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。 回滚---ROLLBACK 回滚命令使数据库状态回到上次最后提交的状态。其格式为: SQL>ROLLBACK;
  3. COMMIT [WORK]:提交。

2.3、数据库URL讲解

  URL用于标识数据库的位置,通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:

  澳门新濠3559 21

  常用数据库URL地址的写法:

  • Oracle写法:jdbc:oracle:thin:@localhost:1521:sid
  • SqlServer写法:jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sid
  • MySql写法:jdbc:mysql://localhost:3306/sid

  如果连接的是本地的Mysql数据库,并且连接使用的端口是3306,那么的url地址可以简写为: jdbc:mysql:///数据库

<b>mysql驱动链接: 密码: i28u</b>

4.JDBC的DDL(创建表和异常处理)

需求:
创建一张t_student表:id/name/age:

CREATE TABLE `t_student` (`id` bigint(20) PRIMARY KEY AUTO_INCREMENT,`name` varchar(20),`age` int(11));
  • 创建一张表
public void createTable() throws Exception{
        String sql="CREATE TABLE `t_student` (`id` BIGINT (20) PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR (20),`age` INT (11))";
        //1.加载注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.获取连接对象
        Connection conn=DriverManager.getConnection("jdbc:mysql:///jarry","root","123456");
        //3.创建/获取语句对象
        Statement st=conn.createStatement();
        //4.执行SQL语句
        st.executeUpdate(sql);
        st.close();
        conn.close();
    }
  • 如何正确的处理JDBC异常
    public void createTableException(){
        String sql="CREATE TABLE `t_student` (`id1` BIGINT (20) PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR (20),`age` INT (11))";
        //声明资源
        Connection conn = null;
        Statement st = null;
        try{
            //可能出现异常
            Class.forName("com.mysql.jdbc.Driver");
            conn=DriverManager.getConnection("jdbc:mysql:///jarry","root","123456");
            st=conn.createStatement();
            st.executeUpdate(sql);

        }catch(Exception e){
            e.printStackTrace();
        }finally{
            //释放资源
            try {
                if(st!=null){
                    st.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }finally {
                try {
                    if(conn!=null){
                        conn.close();
                    }
                } catch (Exception e3) {
                    e3.printStackTrace();
                }
            }
        }
    }
  • 使用Java7的自动资源关闭
    public void createEXceptionByJava7(){
        String sql="CREATE TABLE `t_student` (`id2` BIGINT (20) PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR (20),`age` INT (11))";
        try {
            //1.获取连接对象
            Connection conn=DriverManager.getConnection("jdbc:mysql:///jarry","root","123456");
            //2.创建/获取语句对象
            Statement st=conn.createStatement();
            //3.执行SQL语句,可能会出现异常
            st.executeUpdate(sql);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

2.4、Connection类讲解

  Jdbc程序中的Connection,它用于代表数据库的链接,Collection是数据库编程中最重要的一个对象,客户端与数据库所有交互都是通过connection对象完成的,这个对象的常用方法:

  • createStatement():创建向数据库发送sql的statement对象。
  • prepareStatement(sql) :创建向数据库发送预编译sql的PrepareSatement对象。
  • prepareCall(sql):创建执行存储过程的callableStatement对象。
  • setAutoCommit(boolean autoCommit):设置事务是否自动提交。
  • commit() :在链接上提交事务。
  • rollback() :在此链接上回滚事务。
  1. 读取数据库里users表的内容

5.JDBC的DML操作(增、删、改)

  • 增加
    public void insert() throws Exception{
        String sql="INSERT INTO t_student(name,age) VALUES('jarry',20)";
        //1.加载注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.获取连接对象
        Connection conn=DriverManager.getConnection("jdbc:mysql:///jarry","root","123456");
        //3.创建/获取语句对象
        Statement st=conn.createStatement();
        //4.执行SQL
        st.execute(sql);
        //5.释放资源
        st.close();
        conn.close();
    }
  • 修改
public void update()throws Exception{
        String sql="UPDATE t_student SET name='jihang' ,age=18 WHERE name='jarry'";
        //1.加载注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.获取连接对象
        Connection conn=DriverManager.getConnection("jdbc:mysql:///jarry","root","123456");
        //3.创建/获取语句对象
        Statement st=conn.createStatement();
        //4.执行SQL
        st.execute(sql);
        //5.释放资源
        st.close();
        conn.close();
    }
  • 删除
public void delete()throws Exception{
        String sql="DELETE FROM t_student WHERE name ='jihang'";
        //1.加载注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.获取连接对象
        Connection conn=DriverManager.getConnection("jdbc:mysql:///jarry","root","123456");
        //3.创建/获取语句对象
        Statement st=conn.createStatement();
        //4.执行SQL
        st.execute(sql);
        //5.释放资源
        st.close();
        conn.close();
    }

发现:执行DDL和DML的语句的操作模板是一模一样的,仅仅是SQL语句不一样.

2.5、Statement类讲解

  Jdbc程序中的Statement对象用于向数据库发送SQL语句, Statement对象常用方法:

  • executeQuery(String sql) :用于向数据发送查询语句。
  • executeUpdate(String sql):用于向数据库发送insert、update或delete语句
  • execute(String sql):用于向数据库发送任意sql语句
  • addBatch(String sql) :把多条sql语句放到一个批处理中。
  • executeBatch():向数据库发送一批sql语句执行。

6.JDBC的DQL操作(查询)

  • 查询总数
// 查询数量
    public void queryCount() throws Exception {
        String sql = "SELECT COUNT(id) count FROM t_product";
        // 加载注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 获取连接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql:///jarry",
                "root", "123456");
        // 创建/获取语句对象
        Statement st = conn.createStatement();
        // 执行
        ResultSet rs = st.executeQuery(sql);
        if (rs.next()) {
            long rows = rs.getLong("count");
            //long rows = rs.getLong(1);
            System.out.println(rows);
        }
        rs.close();
        st.close();
        conn.close();
    }
  • 查询单个细节
//查询单个细节
    public void querySingle() throws Exception {
        String sql = "SELECT * FROM t_product WHERE id =1";
        // 加载注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 获取连接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql:///jarry",
                "root", "123456");
        // 创建/获取语句对象
        Statement st = conn.createStatement();
        // 执行
        ResultSet rs = st.executeQuery(sql);
        if (rs.next()) {
            long rows = rs.getLong("id");
            String name = rs.getString("name");
            String salePrice = rs.getString("sale_price");
            long type = rs.getInt("type");
            System.out.println(rows "--" name "--" salePrice "--" type);
        }
        rs.close();
        st.close();
        conn.close();
    }
  • 查询全部细节
//查询全部细节
    public void queryAll() throws Exception {
        String sql = "SELECT * FROM t_product";
        // 加载注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 获取连接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql:///jarry",
                "root", "123456");
        // 创建/获取语句对象
        Statement st = conn.createStatement();
        // 执行
        ResultSet rs = st.executeQuery(sql);
        while (rs.next()) {
            long rows = rs.getLong("id");
            String name = rs.getString("name");
            String salePrice = rs.getString("sale_price");
            long type = rs.getInt("type");
            System.out.println(rows "--" name "--" salePrice "--" type);
        }
        rs.close();
        st.close();
        conn.close();
    }

2.6、ResultSet类讲解

  Jdbc程序中的ResultSet用于代表Sql语句的执行结果。Resultset封装执行结果时,采用的类似于表格的方式。ResultSet 对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。
  ResultSet既然用于封装执行结果的,所以该对象提供的都是用于获取数据的get方法:
  获取任意类型的数据
    getObject(int index)
    getObject(string columnName)
  获取指定类型的数据,例如:
    getString(int index)
    getString(String columnName)

  ResultSet还提供了对结果集进行滚动的方法:

  • next():移动到下一行
  • Previous():移动到前一行
  • absolute(int row):移动到指定行
  • beforeFirst():移动resultSet的最前面。
  • afterLast() :移动到resultSet的最后面。
package cn.itcast.demo;import java.sql.*;public class Test { public static void main(String[] args) throws SQLException { String url = "jdbc:mysql://localhost:3306/jdbc"; String username = "root"; String password = "root"; //1.JDBC不能直接操作数据库,所以一开始是先加载驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver; //2.获取链接 Connection conn = DriverManager.getConnection(url, username, password); //4.向数据库发送sql语句,获取数据库返回的结果集 Statement st = conn.createStatement(); ResultSet rs = st.executeQuery("select * from users"); //5.从结果集中获取数据 while ) { System.out.println(rs.getInt; System.out.println(rs.getString; System.out.println(rs.getString("password")); System.out.println(rs.getString; System.out.println(rs.getDate("birthday")); } //6.释放资源 rs.close(); st.close(); conn.close(); }}

7.SQL和Java的对应类型

java.util.Date和java.sql.Date有什么关系:
java.sql.Date是java.util.Date的子类.

澳门新濠3559 22

Date的数据关系.png

澳门新濠3559 23

数据库和java的数据类型.png

澳门新濠3559 24

数据库的对应类型.png

JavaWeb-目录

2.7、释放资源

  Jdbc程序运行完后,切记要释放程序在运行过程中,创建的那些与数据库进行交互的对象,这些对象通常是ResultSet, Statement和Connection对象,特别是Connection对象,它是非常稀有的资源,用完后必须马上释放,如果Connection不能及时、正确的关闭,极易导致系统宕机。Connection的使用原则是尽量晚创建,尽量早的释放。
  为确保资源释放代码能运行,资源释放代码也一定要放在finally语句中。

编辑:编程 本文来源:特来简书分享,不同的数据库

关键词: 澳门新濠3559