mysql jdbc数据库速成总结

第一步导图jar包 我们下载一个jar 按照我的习惯是把这个jar包放在桌面上 方便后续操作 

 然后对这个jar包ctrl + c复制 

接着我们在idea里面创建一个目录

我们命名为lib 然后在这个lib安ctrl + V进行粘贴  然后右键这个lib 找到添加为库

我的idea好像没有选择  只有添加为模块

点击确定我们的jar包就算导入好了

接下来我们就在src创建一个类就好了 我们可以直接把包名和类名都创建一下 com.guansuian.JDBCDemo 注意包名只有小写字母 然后这个类名的第一个首字母需要大写

我们使用刚刚我写在这里的英文就可以将类和包都创建好了

第一步注册包:
先创建一个主函数然后Class. forname("  ");

注意我们需要抛出一下异常 

throws Exception
package com.guansuian;

public class JDBCDemo {
    public static void main(String[] args) throws Exception {
        //1.注册驱动(这个其实在我看来就是报的意思)
        Class.forName("com.mysql.jdbc.Driver");
    }

}

然后我们需要登录,登录需要一个地址 如果我们登录的是系统第一个为我们创建的链接我们就不需要写链接的名字

在这里面有几个类

第一个

 

DriverManager是一个类(驱动管理类)

它可以实现

 

Connection类

 

  1. 获取执行SQL的对象

Connection conn = DriverManager.getConnection();

  1. 管理事物 常常和java里面的try catch搭配使用

小技巧:ctrl + alt + t这个是将某一段代码包裹起来的一句话 然后选择你想要选择的语句

 

 Statement

 

DDL:对标和库的增删改查操作

DML:对数据增删改操作

DQL:对数据的查询操作

package com.guansuian;

import org.junit.Test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
//statement类的操作

public class test1 {
    @Test
    public void testDML() throws Exception {
        //注册服务器
        // Class.forName("com.mysql.cj.jdbc.Driver");
        String url = "jdbc:mysql:///class?useSSL=false";//这个3306/后面就是创建数据库的名字,不是表的名字  这个可以直接不用写端口(前提是我们使用本机的端口)
        //注意我们使用这个为了不看键那行烦的注册 我们可以在class后面写上useSSL=false这个语句
        String user = "root";
        String password = "123456";
        Connection conn= DriverManager.getConnection(url,user,password);
        Statement stmt = conn.createStatement();
        String sql1 = "update user set name='hahaha' where id=1 "; //这个就是进行修改的操作 简单翻译一下就是 更新用户  设置名字为'?' 在哪里进行设置
        String sql2 = "update user set name='吴翔' where id = 5";
        try {
            //1.开启事物
            conn.setAutoCommit(false);
            int count1 = stmt.executeUpdate(sql1);
            int count2 = stmt.executeUpdate(sql2);
            //2.提交事物
            conn.commit();
        } catch (Exception e) {
            conn.rollback();
            throw new RuntimeException(e);
        }
        stmt.close();
        conn.close();
    }
    @Test
    public void testDDL() throws Exception {
        //注册服务器
        // Class.forName("com.mysql.cj.jdbc.Driver");
        String url = "jdbc:mysql:///class?useSSL=false";//这个3306/后面就是创建数据库的名字,不是表的名字  这个可以直接不用写端口(前提是我们使用本机的端口)
        //注意我们使用这个为了不看键那行烦的注册 我们可以在class后面写上useSSL=false这个语句
        String user = "root";
        String password = "123456";
        Connection conn= DriverManager.getConnection(url,user,password);
        Statement stmt = conn.createStatement();
        String sql1 = "update user set name='hahaha' where id=1 "; //这个就是进行修改的操作 简单翻译一下就是 更新用户  设置名字为'?' 在哪里进行设置
        String sql2 = "update user set name='吴翔' where id = 5";
        //下面这个语句是执行增加的语句
        String sql3 = "insert into user (id,name,password) values (6,'AA',123456)";
        String sql4 = "delete from user where id=1";

        try {
            //1.开启事物
            conn.setAutoCommit(false);
            int count1 = stmt.executeUpdate(sql1);
            int count2 = stmt.executeUpdate(sql2);
            //stmt.executeUpdate(sql3);
            stmt.executeUpdate(sql4);
            //2.提交事物
            conn.commit();
        } catch (Exception e) {
            conn.rollback();
            throw new RuntimeException(e);
        }
        stmt.close();
        conn.close();
    }

}

这个只是实现了增删改的操作

如果要实现查的还需要学习到一个类

这个ResulitSet就是进行一个查询结果的返回值

小技巧:

我们要打印每一个变量的时候我们可以使用变量名.sout这样就可以直接将我们需要的东西直接进行打印

在后续的编程中我们常用到一种分层的思想进行编程:

常常有这么几层:

1.pojo层(存放对象的包)

2.dao层(数据持久层:操作数据库)

3.service层(业务层:处理业务逻辑,调用dao层)

4.controller层(控制层,调用业务方法,将数据返回给前端界面)

第一对于业务层:
这个就和之前我些项目的时候进行的文件操作一样,首先需要进行文件资料的导入

并将这个资料导入到一个集合中(输入数据)

小技巧:ctrl + w就是将整个句子进行扩张

完整的增删改查的操作:

package com.guansuian;

import org.junit.Test;

import java.sql.*;
import java.util.Scanner;
//statement类的操作

public class test1 {
    //这个方法是修改方法
    @Test
    public void fix() throws Exception {

        String url = "jdbc:mysql:///class?useSSL=false";
        String user = "root";
        String password = "123456";
        Connection conn= DriverManager.getConnection(url,user,password);
        Statement stmt = conn.createStatement();
        String sql1 = "update user set name='hahaha' where id=1 ";
        String sql2 = "update user set name='吴翔' where id = 2";
        try {
            //1.开启事物
            conn.setAutoCommit(false);
            int count1 = stmt.executeUpdate(sql1);
            int count2 = stmt.executeUpdate(sql2);
            if(count1>0 && count2 > 0){
                System.out.println("修改成功");
            }else{
                System.out.println("修改失败");
            }
            //2.提交事物
            conn.commit();
        } catch (Exception e) {
            conn.rollback();
            throw new RuntimeException(e);
        }
        stmt.close();
        conn.close();
    }
    //增加操作
    @Test
    public void add() throws Exception {
        //注册服务器
        // Class.forName("com.mysql.cj.jdbc.Driver");
        String url = "jdbc:mysql:///class?useSSL=false";//这个3306/后面就是创建数据库的名字,不是表的名字  这个可以直接不用写端口(前提是我们使用本机的端口)
        //注意我们使用这个为了不看键那行烦的注册 我们可以在class后面写上useSSL=false这个语句
        String user = "root";
        String password = "123456";
        Connection conn= DriverManager.getConnection(url,user,password);
        Statement stmt = conn.createStatement();

        //下面这个语句是执行增加的语句
        String sql1 = "insert into user (id,name,password) values (1,'关岁安',123456)";
        String sql2= "insert into user (id,name,password) values (2,'郑美玲',123456)";
        String sql3= "insert into user (id,name,password) values (3,'刘欣',123456)";
        String sql4= "insert into user (id,name,password) values (4,'邓凯',123456)";
        String sql5= "insert into user (id,name,password) values (5,'邓志豪',123456)";
        String sql6= "insert into user (id,name,password) values (6,'陈归鸿',123456)";
        try {
            //1.开启事物
            conn.setAutoCommit(false);
            stmt.executeUpdate(sql1);
            stmt.executeUpdate(sql2);
            stmt.executeUpdate(sql3);
            stmt.executeUpdate(sql4);
            stmt.executeUpdate(sql5);
            stmt.executeUpdate(sql6);
            //2.提交事物
            conn.commit();
        } catch (Exception e) {
            conn.rollback();
            throw new RuntimeException(e);
        }
        stmt.close();
        conn.close();
    }
    //删除操作
    @Test
    public void detele() throws Exception {
        //注册服务器
        // Class.forName("com.mysql.cj.jdbc.Driver");
        String url = "jdbc:mysql:///class?useSSL=false";//这个3306/后面就是创建数据库的名字,不是表的名字  这个可以直接不用写端口(前提是我们使用本机的端口)
        //注意我们使用这个为了不看键那行烦的注册 我们可以在class后面写上useSSL=false这个语句
        String user = "root";
        String password = "123456";
        Connection conn= DriverManager.getConnection(url,user,password);
        Statement stmt = conn.createStatement();

        //下面这个语句是执行增加的语句
        String sql1 = "delete from user where id=6";
        try {
            //1.开启事物
            conn.setAutoCommit(false);
            stmt.executeUpdate(sql1);
            //2.提交事物
            conn.commit();
        } catch (Exception e) {
            conn.rollback();
            throw new RuntimeException(e);
        }
        stmt.close();
        conn.close();
    }
    //查询操作

    @Test
    public void equry() throws Exception {
        String url = "jdbc:mysql:///class?useSSL=false";
        String user = "root";
        String password = "123456";
        Connection conn= DriverManager.getConnection(url,user,password);
        Statement stmt = conn.createStatement();
        String sql1 = "SELECT *FROM `user`";
        ResultSet res = stmt.executeQuery(sql1);
        try {
            //1.开启事物
            conn.setAutoCommit(false);

            while(res.next()){
                int id = res.getInt(1);
                String name = res.getString(2);
                String password1 = res.getString(3);
                System.out.print("id:  " + id +"    ");
                System.out.print("name:  " +name+"    ");
                System.out.println("password1:  " + password1);
            }
            //2.提交事物
            conn.commit();
        } catch (Exception e) {
            conn.rollback();
            throw new RuntimeException(e);
        }
        stmt.close();
        conn.close();
        res.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白色的风扇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值