zoukankan      html  css  js  c++  java
  • JDBC概念&第一个JDBC程序

    1、JDBC概念

    Java DataBase Connectivity  Java数据库连接,Java语言操作数据库

     

     JDBC的本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类

    Person接口  Worker类  Person p = new Worker();  p.eat();

    JDBC中也是这样的,真正是驱动jar包中的实现类定义的实现方法。

     2、JDBC执行的步骤

    (1)导入驱动jar包

      * 复制mysql-connector-java-5.1.44.jar到项目的libs目录下

      * 右键--> add as Library(这样就能将jar包加入到项目中)

    (2)注册驱动(让程序知道是哪个驱动包)

    (3)获取数据库链接对象Connection

    (4)定义sql

    (5)获取执行sql语句的对象,Satement

    (6)执行sql,接受返回结果

    (7)处理结果

    (8)释放资源

    • 释放ResultSet, Statement,Connection.
    • 数据库连接(Connection)是非常稀有的资源,用完后必须马上释放,如果Connection不能及时正确的关闭将导致系统宕机。Connection的使用原则是尽量晚创建,尽量早的释放。

     3.第一个JDBC程序

    准备工作:创建测试数据库

    	CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci;
    	 
    	USE jdbcStudy;
    	 
    	CREATE TABLE `users` (
    	  `id` INT NOT NULL,
    	  `name` VARCHAR(40) NOT NULL,
    	  `password` VARCHAR(40) NOT NULL,
    	  `email` VARCHAR(60) NOT NULL,
    	  `birthday` DATE,
    	  PRIMARY KEY(`id`)
    	) ENGINE=INNODB DEFAULT CHARSET=utf8;
    	 
    	INSERT INTO users
    	VALUES(1,'zhangsan','123456','zs@sina.com','1980-12-04'),
    	(2,'lisi','123456','lisi@sina.com','1981-12-04'),
    	(3,'wangwu','123456','wangwu@sina.com','1979-12-04');
    	 
    

    编写测试代码

    package cn.company.jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class JdbcDemo1 {
        public static void main(String[] args) throws Exception {
            // 1. 导入驱动jar包
            // 2.注册驱动
            Class.forName("com.mysql.jdbc.Driver");   // 固定写法,使用反射加载驱动
            // 3.获取数据库的连接对象
            // useUnicode=true设置字符集编码
            // characterEncoding=utf8使用utf8
            // &useSSL=true使用安全连接
            String url = "jdbc:mysql://localhost:3306/jdbcStudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
            String username = "root";
            String password = "123456";
            Connection connection  = DriverManager.getConnection(url,username,password);
    
            // 4.执行sql的对象
            // Statement:执行sql的对象
            Statement statement = connection.createStatement();
            // 5. 定义一个sql语句
            String sql = "select * from users";
            // 返回结果集,结果集中封装了所有查询回来的对象
            ResultSet resultSet = statement.executeQuery(sql);
    
            while(resultSet.next()) {
                System.out.println("id="+resultSet.getObject("id"));
                System.out.println("name="+resultSet.getObject("name"));
                System.out.println("pwd="+resultSet.getObject("password"));
                System.out.println("email="+resultSet.getObject("email"));
                System.out.println("birthday="+resultSet.getObject("birthday"));
                System.out.println("---");
            }
    
            // 6.释放连接
            resultSet.close();
            statement.close();
            connection.close();
        }
    }
    

      

     运行结果:

  • 相关阅读:
    303. Range Sum Query
    【Leetcode】292. Nim Game
    【c++】函数默认参数
    [err]default argument given for parameter 3 of '***'
    [err]multiple definition of `***'
    【leetcode】290. Word Pattern
    【leetcode】283. Move Zeroes
    【leetcode】278. First Bad Version
    【leetcode】268. Missing Number
    【leetcode】263. Ugly Number
  • 原文地址:https://www.cnblogs.com/GumpYan/p/14059800.html
Copyright © 2011-2022 走看看