第一章 JDBC基础操作 ② 代码

1.jar包的安装与异常处理

1.1安装jar包

在这里插入图片描述

1.2 异常报错

在这里插入图片描述

在这里插入图片描述

3.异常处理

在这里插入图片描述
在这里插入图片描述

2.连接数据库

package com.yzh70721.test1JDBC;

import java.sql.*;
import java.util.Collection;

/**
 * @author: XYT
 * @create-date: 2022/7/21 11:32
 */
public class Test {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        test1();

    }

    //java连接数据库
    public static void test1() throws ClassNotFoundException, SQLException {
        //数据库驱动接口,可以创建数据库连接
        //Driver drever=null;

        //数据库连接接口,用于跟数据库之间搭建桥梁,并能创建命令执行对象
        Connection connection=null;
        //sql命令执行接口,用于执行增删改查语句。执行查询时会返回结果集对象
        Statement statement=null;
        //接口集接口,用于读取查询结果
        ResultSet resultSet=null;

        //数据库连接属性
        //url:数据库地址
        //useSSL:是否加密传输
        //characterEncoding:字符编码
        //severTimezone:时区
        String url="jdbc:mysql://localhost:3306/70713_db4?useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
        //user:数据库用户名
        String user="root";
        //password:数据库密码
        String password="123456";

        //使用java的驱动管理类加载数据据库驱动,从而获取连接对象
        //使用反射的方式,将驱动类加载到jvm中
        Class.forName("com.mysql.cj.jdbc.Driver");
        //使用数据库驱动管理类,获取连接对象
        Connection con= DriverManager.getConnection(url,user,password);
        System.out.println("数据库连接建立成功。。");
        con.close();
        System.out.println("数据库关闭成功。");


    }
}

在这里插入图片描述

3.调用数据库

package com.yzh70721.test1JDBC;

import java.awt.*;
import java.sql.*;
import java.util.Collection;

/**
 * @author: XYT
 * @create-date: 2022/7/21 11:32
 */
public class Test {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        test1();

    }

    //java连接数据库
    public static void test1() throws ClassNotFoundException, SQLException {
        //数据库驱动接口,可以创建数据库连接
        //Driver drever=null;

        //数据库连接接口,用于跟数据库之间搭建桥梁,并能创建命令执行对象
        Connection connection=null;
        //sql命令执行接口,用于执行增删改查语句。执行查询时会返回结果集对象
        Statement statement=null;
        //接口集接口,用于读取查询结果
        ResultSet resultSet=null;

        //数据库连接属性
        //url:数据库地址
        //useSSL:是否加密传输
        //characterEncoding:字符编码
        //severTimezone:时区
        String url="jdbc:mysql://localhost:3306/70713_db4?useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
        //user:数据库用户名
        String user="root";
        //password:数据库密码
        String password="123456";

        //使用java的驱动管理类加载数据据库驱动,从而获取连接对象
        //使用反射的方式,将驱动类加载到jvm中
        Class.forName("com.mysql.cj.jdbc.Driver");
        //使用数据库驱动管理类,获取连接对象
        Connection con= DriverManager.getConnection(url,user,password);
        System.out.println("数据库连接建立成功。。");


        //添加数据
        String sql="insert into student2"+
                "    (id,name,birthday,tall)"+
                "    values"+
                "    (1003,'王五','1999-10-08',1.7)";
        //通过连接对象,创建命令来执行对象
        statement=con.createStatement();
        //使用命令来执行对象,执行增删改操作。并接收返回的数据库行数
        int count=statement.executeUpdate(sql);
        System.out.println("插入的记录数:"+count);

        //查询数据
        sql="select id,name,birthday,tall from student2";
        //查询数据,并接收返回的结果集对象
        resultSet=statement.executeQuery(sql);
        //使用结果集对象,读取结果
        //next():是否有吓一条记录:true/false
        while(resultSet.next()){
            System.out.println("====================");
            //数据库中的index是从1开始的,到i结束。第一列不能调用???
            System.out.println(resultSet.getInt(1)+" "+resultSet.getString(2)+" "+resultSet.getString(3)+" "+resultSet.getFloat(4));
            System.out.println(resultSet.getString(1)+" "+resultSet.getString(2)+" "+resultSet.getString(3)+" "+resultSet.getString(4));
            System.out.println(resultSet.getObject("id")+" "+resultSet.getObject("name")+" "+resultSet.getObject("birthday")+" "+resultSet.getObject("tall"));
        }

        //关闭数据库连接,释放资源
        resultSet.close();
        statement.close();
        con.close();
        System.out.println("关闭数据库连接成功。。");
    }
}

3.1 异常处理

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4.数据库操作:增删改查

参考代码:

package com.yzh7.test2;

import org.junit.*;

import java.sql.*;
import java.util.Scanner;

/**
 * @author: hy
 * @create: 2022-07-21 11:35:03
 */
public class MyTest {
    //四大金刚(数据库连接四大属性)
    //mysql8 驱动类
    private String driver="com.mysql.cj.jdbc.Driver";
    //数据库连接地址
    //useSSL,characterEncoding,serverTimezone
    private String url="jdbc:mysql://localhost:3306/0720_db?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
    //数据库账号
    private String user="root";
    //数据库密码
    private String password="123456";

    @Test
    public void testInsert(){
        System.out.println("测试数据库插入。。。");
        //junit test方法不能使用scanner
        //Scanner sc = new Scanner(System.in);

        //定义连接对象
        Connection con = null;
        //命令执行对象
        Statement st = null;
        //ResultSet rs = null;

        //5.定义插入sql
        String account = "王大锤";
        int money = 100;
        String sql = "insert into bank " +
                "     (account,money)" +
                "     values" +
                "     ('"+account+"',"+money+")";

        try {
            //1.添加jar
            //2.加载驱动类
            Class.forName(driver);
            //3.使用驱动管理类获取连接对象
            con = DriverManager.getConnection(url,user,password);
            //4.创建sql命令执行对象
            st = con.createStatement();
            //6.执行增删改sql,接受执行结果,并输出
            int count = st.executeUpdate(sql);
            System.out.println("记录数:"+count);

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            //7.关闭数据库相关对象
            if(st!=null){
                try {
                    st.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if(con!=null) {
                try {
                    con.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }
    }

    @Test
    public void testUpdate(){
        System.out.println("测试数据库修改...");
        //1.添加jar
        //2.加载驱动类
        //3.使用驱动管理类获取连接对象
        //4.创建sql命令执行对象
        //5.定义修改sql
        //6.执行增删改sql
        //7.关闭数据库相关对象

        //定义连接对象
        Connection con = null;
        //命令执行对象
        Statement st = null;
        //ResultSet rs = null;

        //5.定义插入sql
        int bid = 4;
        String account = "穆念慈";
        int money = 1000;
        String sql ="update bank" +
                "    set account='"+account+"'," +
                "        money = "+money+
                "     where bid = "+bid;
        System.out.println(sql);

        try {
            //1.添加jar
            //2.加载驱动类
            Class.forName(driver);
            //3.使用驱动管理类获取连接对象
            con = DriverManager.getConnection(url,user,password);
            //4.创建sql命令执行对象
            st = con.createStatement();
            //6.执行增删改sql,接受执行结果,并输出
            int count = st.executeUpdate(sql);
            System.out.println("记录数:"+count);

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            //7.关闭数据库相关对象
            if(st!=null){
                try {
                    st.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if(con!=null) {
                try {
                    con.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }
    }

    @Test
    public void testDelete(){
        System.out.println("测试数据库删除...");
        //1.添加jar
        //2.加载驱动类
        //3.使用驱动管理类获取连接对象
        //4.创建sql命令执行对象
        //5.定义删除sql
        //6.执行增删改sql
        //7.关闭数据库相关对象

        //定义连接对象
        Connection con = null;
        //命令执行对象
        Statement st = null;
        //ResultSet rs = null;

        //5.定义插入sql
        int bid = 8;

        String sql ="delete from bank where bid = "+bid;
        System.out.println(sql);

        try {
            //1.添加jar
            //2.加载驱动类
            Class.forName(driver);
            //3.使用驱动管理类获取连接对象
            con = DriverManager.getConnection(url,user,password);
            //4.创建sql命令执行对象
            st = con.createStatement();
            //6.执行增删改sql,接受执行结果,并输出
            int count = st.executeUpdate(sql);
            System.out.println("记录数:"+count);

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            //7.关闭数据库相关对象
            if(st!=null){
                try {
                    st.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if(con!=null) {
                try {
                    con.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }
    }

    @Test
    public void testQuery(){
        System.out.println("测试数据库查询。。。");
        //1.添加jar
        //2.加载驱动类
        //3.使用驱动管理类获取连接对象
        //4.创建sql命令执行对象
        //5.定义查询sql
        //6.执行查询sql,接受返回的结果集对象
        //7.使用结果集对象遍历数据
        //8.关闭数据库相关对象

        //定义连接对象
        Connection con = null;
        //命令执行对象
        Statement st = null;
        //结果集对象
        ResultSet rs = null;

        //5.定义插入sql
        String sql ="select bid,account,money from bank";
        System.out.println(sql);

        try {
            //1.添加jar
            //2.加载驱动类
            Class.forName(driver);
            //3.使用驱动管理类获取连接对象
            con = DriverManager.getConnection(url,user,password);
            //4.创建sql命令执行对象
            st = con.createStatement();
            //6.执行查询sql,接受返回的结果集对象
            rs = st.executeQuery(sql);
            //7.使用结果集对象遍历数据
            while (rs.next()){
                for (int i=1;i<=3;i++){
                    System.out.print(rs.getObject(i)+" ");
                }
                System.out.println();
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            //7.关闭数据库相关对象
            if(rs!=null){
                try {
                    rs.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if(st!=null){
                try {
                    st.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if(con!=null) {
                try {
                    con.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }
    }

}

5.定义包2

封装成包:

package com.yzh7.util;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * @author: hy
 * @create: 2022-07-21 12:00:29
 */
public class BaseDAO {
    //四大金刚(数据库连接四大属性)
    //mysql8 驱动类
    private static String driver="com.mysql.cj.jdbc.Driver";
    //数据库连接地址
    //useSSL,characterEncoding,serverTimezone
    private static String url="jdbc:mysql://localhost:3306/0720_db?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
    //数据库账号
    private static String user="root";
    //数据库密码
    private static String password="123456";

    //获取连接
    public static Connection getConnection(){
        Connection con = null;

        //TODO

        return con;
    }

    //关闭数据库对象
    public static void closeAll(Connection con, Statement st, ResultSet rs){
        //TODO
    }

    //增删改方法
    public static int executeUpdate(String sql){
        Connection con = null;
        Statement st =null;
        int count = 0;

        //TODO

        return count;
    }
}

调用包:

package com.yzh7.test2;

import com.yzh7.util.BaseDAO;
import org.junit.Test;

import java.sql.*;

/**
 * @author: hy
 * @create: 2022-07-21 11:35:03
 */
public class MyTest2 {

    @Test
    public void testInsert(){
        System.out.println("测试数据库插入。。。");
        //5.定义插入sql
        String account = "王大锤";
        int money = 100;
        String sql = "insert into bank " +
                "     (account,money)" +
                "     values" +
                "     ('"+account+"',"+money+")";
        int count = BaseDAO.executeUpdate(sql);
        System.out.println("记录数:"+count);
    }

    @Test
    public void testUpdate(){
        System.out.println("测试数据库修改...");
        //1.添加jar
        //2.加载驱动类
        //3.使用驱动管理类获取连接对象
        //4.创建sql命令执行对象
        //5.定义修改sql
        //6.执行增删改sql
        //7.关闭数据库相关对象


    }

    @Test
    public void testDelete(){
        System.out.println("测试数据库删除...");
        //1.添加jar
        //2.加载驱动类
        //3.使用驱动管理类获取连接对象
        //4.创建sql命令执行对象
        //5.定义删除sql
        //6.执行增删改sql
        //7.关闭数据库相关对象


    }

    @Test
    public void testQuery(){
        System.out.println("测试数据库查询。。。");
        //1.添加jar
        //2.加载驱动类
        //3.使用驱动管理类获取连接对象
        //4.创建sql命令执行对象
        //5.定义查询sql
        //6.执行查询sql,接受返回的结果集对象
        //7.使用结果集对象遍历数据
        //8.关闭数据库相关对象

        //定义连接对象
        Connection con = null;
        //命令执行对象
        Statement st = null;
        //结果集对象
        ResultSet rs = null;

        //5.定义插入sql
        String sql ="select bid,account,money from bank";
        System.out.println(sql);


    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值