中软实习第二天:JDBC以及简单的增删改查

      简介:本文主要介绍本人在宁波中软实习第二天所学习和实践的内容,主要内容为JDBC连接数据库以及简单地对数据库进行增删改查操作。

1.JDBC七大步骤

    先简单介绍一下jdbc的七大步骤,依次为加载数据库驱动、连接数据库、定义操作的sql语句,创建数据库对象,执行数据库操作,操作结果集,释放资源 (关闭结果集->关闭数据库对象->断开连接)。

    下面先说一说每一个步骤要做的内容:

    1)加载数据库驱动

    加载数据库驱动是通过一个jar包,包的名称为mysql-connector-java-5.1.36.jar,调用里面的一个forName方法,代码如下:

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

    2)连接数据库

    连接数据库也是通过调用jar包里面的方法来实现,代码如下:

    Connection connection= DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/jdbc?useSSL=true&characterEncoding=utf-8&user=root&password=caiyuan");

    值得注意的是,这里的jdbc是我数据库的名字,root是登录账户,caiyuan是密码,每个人的都不一样。使用的数据库在上篇文章里有讲述。

    3)定义操作的sql语句

     定义sql语句就看情况来定义了,在需要对数据库进行操作的时候就定义相对应的语句,例如查询整个数据库:

    String sql="select * from tb1_users";

    4)创建数据库对象

    创建数据库对象可以在定义sql语句前进行,也可以在定义sql语句后进行,也是拿查询整个数据库来看:

    先定义sql语句:

String sql="select * from tb1_users";
PreparedStatement statement =connection.prepareStatement(sql);

    先创建数据库对象:

PreparedStatement statement=null;
String sql="select * from tb1_users";
statement =connection.prepareStatement(sql);

    5)执行数据库操作

    如果不需要返回结果,可以直接操作,statement.executeQuery();

    但是如果还要返回结果,就需要定义一个结果集了,然后再进行操作,ResultSet resultSet=statement.executeQuery();

    6)操作结果集

    在第五步的基础上对结果集进行操作,如果不返回结果,则不需要对结果集进行操作,否则需要一定的操作。比如查询整个数据库,这里我只做了一张简单的用户表。

while (resultSet.next()){
    System.out.println(resultSet.getInt(1));
    System.out.println(resultSet.getString(2));
    System.out.println(resultSet.getString(3));
} 

   这里就是对结果集进行遍历输出。

    7)释放资源

    每一次对数据库操作完成之后都要释放资源,如果有返回结果需要结果集的,需要先关闭结果集,然后关闭数据库对象,最后断开数据库连接;如果没有返回结果不需要结果集的,就只需要先关闭数据库对象,然后断开数据库连接就可以了。

   

2.JDBC实现

    下面我将附带上我这次实践运行成功的代码:

    1)数据库连接和释放

package com.util;

import java.sql.*;

public class DButil {
    public static Connection getconnect()
    {
        Connection connection=null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connection= DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/jdbc?useSSL=true&characterEncoding=utf-8&user=root&password=caiyuan");
//            System.out.println("创建连接成功");

        } catch (Exception e) {
            e.printStackTrace();
        }
        return connection;
    }
    public static void closeConn(Connection connection, PreparedStatement statement, ResultSet resultSet)
    {
        if(resultSet!=null){
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(statement!=null){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(connection!=null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
//        System.out.println("关闭成功");
    }
}

 

    2)数据库简单的增删改查操作

package com.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class user_util {
    //查询整个数据库
    public static void getselect()
    {
        Connection connection=DButil.getconnect();
        PreparedStatement statement=null;
        ResultSet resultSet=null;
        String sql="select * from tb1_users";
        try {
            statement =connection.prepareStatement(sql);
            resultSet=statement.executeQuery();
            while (resultSet.next()){
                System.out.println(resultSet.getInt(1));
                System.out.println(resultSet.getString(2));
                System.out.println(resultSet.getString(3));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DButil.closeConn(connection,statement,resultSet);
        }
    }
    //根据用户名查询数据库并且返回密码,用作登录
    public static String getSelect(String name)
    {
        Connection connection=DButil.getconnect();
        PreparedStatement statement=null;
        ResultSet resultSet=null;
        String sql="select * from tb1_users where userName=?";
        try {
            statement =connection.prepareStatement(sql);
            statement.setString(1,name);
            resultSet=statement.executeQuery();
//            int Id=resultSet.getInt(1);
//            String Name=resultSet.getString(2);
            while (resultSet.next()) {
                String Password = resultSet.getString(3);
                return Password;
            }

        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }finally {
            DButil.closeConn(connection,statement,resultSet);
        }
        return null;
    }
    //插入数据
    public static void getInsert()
    {
        Scanner sc = new Scanner(System.in);
        Connection connection=DButil.getconnect();
        PreparedStatement statement=null;
        ResultSet resultSet=null;
        String sql="insert into tb1_users(userName,passWord) value(?,?)";
        try {
            statement=connection.prepareStatement(sql);
            System.out.println("请输入要添加的用户名");
            String name=sc.nextLine();
            System.out.println("请输入密码");
            String password=sc.nextLine();
            statement.setString(1,name);
            statement.setString(2,password);
            statement.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            DButil.closeConn(connection,statement,resultSet);
        }
    }
    //删除数据
    public static void getDelate()
    {
        Scanner sc = new Scanner(System.in);
        Connection connection=DButil.getconnect();
        PreparedStatement statement=null;
        ResultSet resultSet=null;
        String sql="delete from tb1_users where id=?";
        try {
            statement=connection.prepareStatement(sql);
            System.out.println("请输入要删除的用户的ID");
            int id=sc.nextInt();
            statement.setInt(1,id);
            statement.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DButil.closeConn(connection,statement,resultSet);
        }
    }
    //修改数据
    public static void getUpdate()
    {
        Scanner sc = new Scanner(System.in);
        Connection connection=DButil.getconnect();
        PreparedStatement statement=null;
        ResultSet resultSet=null;
        String sql="update tb1_users set userName=?,passWord=? where id=?";
        try {
            statement=connection.prepareStatement(sql);
            System.out.println("请输入要修改的用户的ID");
            int id=sc.nextInt();
            System.out.println("请输入要修改之后的用户名");
            String name=sc.next();
            System.out.println("请输入密码");
            String password=sc.next();
            statement.setString(1,name);
            statement.setString(2,password);
            statement.setInt(3,id);
            statement.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DButil.closeConn(connection,statement,resultSet);
        }
    }
}

    3)实现函数

    实现的话只需要创建一个新的类写一个main函数调用这些方法就可以了,也确实比较简单,就不在这里给出代码了。

你可能感兴趣的:(中软实习第二天:JDBC以及简单的增删改查)