实训日志 || JDBC理解

1、JDBC理解

JDBC( Java DataBase Connectivity )称为Java数据库连接,它是一种用于数据库访问的应用程序 API ,由一组用Java语言编写而成的类和接口组成,有了JDBC就可以用统一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。

JDBC是sun提供一套用于操作数据库的标准接口,不同的数据厂商都提供了一套JDBC接口的实现,达成一个jar包发布,这个包叫驱动包;
JDBC接口中提供了:
1.DriverManager:加载驱动并负责与数据库连接;
2.Connection:表示与数据库的连接,负责管理事务,创建执行SQL语句的对象Statement;
3.Statement:用来执行SQL语句,若执行的是查询语句,会得到查询的结果集ResultSet;
4.ResultSet:表示查询的结果集,遍历结果集可以获取查询的具体数据

 

2、JDBC的体系结构

JDBC结构可以划分为两层:一个是面向底层的的JDBC Driver interface(驱动程序管理接口),另一个是面向程序员的JDBC  API。

3、JDBC执行步骤

1)导入驱动jar包

2)加载驱动包

Class.forName("com.mysql.cj.jdbc.Driver");

3)获取连接(DriverManager提供了连接数据的方法getConnecttion(url,name,password)),返回Connection

 //建立连接地址(不同的数据库有不同的连接格式)
   String url="jdbc:mysql://localhost:3306/gcddb";
 //数据库账号
   String name = "root";
 //数据库密码
   String pwd = "123456";
 //获取连接          
   connection = DriverManager.getConnection(url,name,pwd);

4)定义SQL语句

 String sql  = "create table 数据库名(建表语句)"; //以创建表为例

5)获取PreparedStatement对象执行sql语句及相关方法


//PreparedStatement执行sql语句
ps = connection.prepareStatement(sql);

6)执行sql语句

 ps.execute();

7)处理结果

8)释放资源

    //释放资源
    try{
         if(connection!=null)
        {
            connection.close();
        }
         if(ps != null){
             ps.close();
        }
       }
        catch(Exception e){
             e.printStackTrace();

            }
***完整代码
package practice01;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
//创建表
public class DemoJDBC01 {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement ps = null;
        try{
            //1.加载驱动包(不同的数据库有不同的驱动包)
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.建立连接地址(不同的数据库有不同的连接格式)
            String url="jdbc:mysql://localhost:3306/gcddb";
            //3.数据库账号
            String name = "root";
            //4.数据库密码
            String pwd = "123456";
            //5.获取连接(DriverManager提供了连接数据的方法getConnecttion(url,name,password)),返回Connection
            connection = DriverManager.getConnection(url,name,pwd);
            String sql  = "create table myjdbc(id int primary key auto_increment,uname varchar(15),upwd varchar(10),money double)";
            //6.获取PreparedStatement对象执行sql语句及相关方法
            //PreparedStatement执行sql语句
             ps = connection.prepareStatement(sql);
            //7.执行sql
            ps.execute();
            System.out.println("连接成功");
        }catch(Exception e){
            System.out.println("连接失败");
        }finally {
            //释放资源
            try{
                if(connection!=null)
                {
                    connection.close();
                }
                if(ps != null){
                    ps.close();
                }
            }
            catch(Exception e){
                e.printStackTrace();

            }

        }
    }
}

4.JDBC数据库连接池

1)为什么需要数据库连接池

①传统的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载到内存中,再验证IP地址,用户名和密码。每次需要数据库连接的时候,就向数据库要求一个,频繁的进行数据库连接操作将占用很多的系统资源,容易造成服务器崩溃。
②每一次数据库连接,使用完后都得断开,如果程序出现异常而未能关闭,将导致数据库内存泄漏,最终将导致重启数据库。
③传统获取连接的方式,不能控制创建的连接数量,如连接过多,可能会导致MySQL崩溃。

2)连接步骤

*properties配置文件
driveName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:
name = root
password = 123456
maxActive = 5
maxWait = 8000;
*示例代码 
package day02;

import practice01.DBUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;

/**
 * 使用DBUtil对数据库进行操作
 */
//插入数据
public class DemoPreparedStatement01 {




    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement ps  = null;
        try {
            //插入数据
            //获取Connection
             conn = DBUtil.getConnection();
            String sql = "insert into myjdbc values(null,?,?,?)";
            //获取执行SQL的对象PreparedStatement
             ps = conn.prepareStatement(sql);
            ps.setString(1,"admin100");
            ps.setString(2,"00000");
            ps.setDouble(3,8000);
            ps.executeUpdate();
            System.out.println("插入成功");
        } catch (Exception e) {
            e.printStackTrace(); //日志跟踪
        } finally {

        }
    }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实训Java、MySQL和JDBC的目的是为了让学习者掌握以下技能和知识: 1. Java编程语言:Java是一种广泛应用于软件开发的高级编程语言。通过实训Java,你将学习Java的基本语法、面向对象编程思想、流程控制、异常处理等。这些知识将帮助你理解和编写Java程序。 2. MySQL数据库:MySQL是一种流行的关系型数据库管理系统。通过实训MySQL,你将学习数据库的基本概念、关系模型、SQL语言等。你将能够创建数据库表格、插入、更新、删除数据,并进行查询和优化。 3. JDBCJava Database Connectivity):JDBCJava提供的用于与数据库进行交互的API。通过实训JDBC,你将学习如何使用Java程序连接到数据库,并进行数据的读取和写入操作。你将了解连接池、事务处理等相关概念和技术。 通过实训Java、MySQL和JDBC,你将能够开发基于Java和MySQL的应用程序,例如二手车管理系统、学生信息管理系统等。这些实践项目将帮助你巩固所学知识并提升实际编程能力。 此外,通过实训Java、MySQL和JDBC,你还将培养解决问题、分析需求、设计系统的能力。这些技能对于日后从事软件开发或相关领域的工作都具有重要意义。 总而言之,实训Java、MySQL和JDBC的目的是为了让你掌握Java编程语言、MySQL数据库JDBC技术,以便于你能够开发基于这些技术的应用程序,并提升你的编程能力和解决问题的能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值