JDBC

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.Statement;

public class jdbclearn {
    public static void main(String[] args) throws Exception {
        //导入驱动jar包,导入mysql的jar包
        //注册驱动
        //获取数据库连接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT",
                "root","root");//链接地址
        //成功完成连接,conn表示,连接对象

        String sql = "update account set balance = 3838 where id = 1";

        Statement statement =  conn.createStatement();//创建一个sql语句对象

        int count = statement.executeUpdate(sql);//我们执行的是增删改查方法,所以使用update

        System.out.println(count);//打印一下输出结果,结果为1说明成功了

        //最后释放资源


        //给account 表增删改查一条记录
        conn.close();//conn确保连接
        statement.close();//完成命令



    }
}

JDBC中最基本的一些操作,但是基本操作不规范
如下是规范写法:

package cn.itcast.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBC {

/*
增删改记录都用statement中的excuteUpdate就行,返回的是影响的行数
只有查这条记录有不同的地方,因为返回值中是个集合集
 */
    public static void main(String[] args) throws SQLException {
        Statement statement = null;//后面要在try的作用域里面,所以要提升他的作用范围
        Connection connection = null;//总不能放在try里面进行定义

        try{
            String sql = "insert into account(name,balance) values('王五',2500)";//双引号里套单引号当字符串
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT",
            "root","root");
            statement = connection.createStatement();
            int count = statement.executeUpdate(sql);//返回一个数字,int数字返回影响的行数

            if(count > 0){
                System.out.println("添加sql语句成功了");
            }
            else
                System.out.println("失败了大哥");
        }
        catch (Exception e){
            System.out.println(e.getMessage());
        }
        finally {
            if(statement != null) {//无论是statement还是connection都有肯能没执行就出现异常了,
                //所以判断一下,是不是空
                statement.close();
            }
            if(connection != null){
                connection.close();
            }


        }
    }
}

package cn.itcast.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBC {

/*
增删改记录都用statement中的excuteUpdate就行,返回的是影响的行数
只有查这条记录有不同的地方,因为返回值中是个集合集
 */
    public static void main(String[] args) throws SQLException {
        Statement statement = null;//后面要在try的作用域里面,所以要提升他的作用范围
        Connection connection = null;//总不能放在try里面进行定义

        try{
            String sql = "insert into account(name,balance) values('王五',2500)";//双引号里套单引号当字符串
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT",
            "root","root");
            statement = connection.createStatement();
            int count = statement.executeUpdate(sql);//返回一个数字,int数字返回影响的行数

            if(count > 0){
                System.out.println("添加sql语句成功了");
            }
            else
                System.out.println("失败了大哥");
        }
        catch (Exception e){
            System.out.println(e.getMessage());
        }
        finally {
            if(statement != null) {//无论是statement还是connection都有肯能没执行就出现异常了,
                //所以判断一下,是不是空
                statement.close();
            }
            if(connection != null){
                connection.close();
            }


        }
    }
}

修正后比较完美的代码

package cn.itcast.jdbc;

import java.sql.*;

public class JDBC3 {
    //当返回的是一个结果集,的时候,需要拿到结果集合的数据
    public static void main(String[] args) throws SQLException {
        Statement statement = null;//后面要在try的作用域里面,所以要提升他的作用范围
        Connection connection = null;//总不能放在try里面进行定义
        ResultSet resultSet = null;//结果结合也是资源

        try{
            String sql = "select * from account";//双引号里套单引号当字符串
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT",
                    "root","root");
            statement = connection.createStatement();
            resultSet = statement.executeQuery(sql);//返回一个结果集合


            /*
            resultSet集合,游标,会返回一个boolean值,判断当前行有没有数据
             */
            //处理结果集,结果集你不能全都显示出来吧
            while(resultSet.next()){//游标下移一行,判断有没有数据,集合集体,一定要不停后移
                int id = resultSet.getInt(1);//获取第一列的第一个(这时候是从1开始的)
                String name = resultSet.getString("name");//输入列的名字来获取数值也行
                int banlance = resultSet.getInt("balance");//使用列的下标或者,列的名字来获取都可以
                StringBuilder sb = new StringBuilder("");
                System.out.println(sb.append("id=").append(id).append(name).append(banlance).toString());
            }

        }
        catch (Exception e){
            System.out.println(e.getMessage());
        }
        finally {
            if(statement != null) {//无论是statement还是connection都有肯能没执行就出现异常了,
                //所以判断一下,是不是空
                statement.close();
            }
            if(connection != null){
                connection.close();
            }

            if(resultSet != null){
                resultSet.close();
            }


        }
    }
}

package cn.itcast.jdbc;

import java.sql.*;

public class JDBC3 {
    //当返回的是一个结果集,的时候,需要拿到结果集合的数据
    public static void main(String[] args) throws SQLException {
        //使用prepare方法,会比较麻烦,但是很安全,是预编译的数据类型,使用?作为占位符号,不会先给值
        /*
        SQL : SELECT * from user where usename = ? and password = ?
        connect.prepareStatement(String sql)中去将没赋值的sql句子放进来
        需要给?去赋值PrepareStatment里面的 void setXX(参数1,参数2)参数1是赋值位置,参数二是传什么值   
         */
        Statement statement = null;//后面要在try的作用域里面,所以要提升他的作用范围
        Connection connection = null;//总不能放在try里面进行定义
        ResultSet resultSet = null;//结果结合也是资源

        try{
            String sql = "select * from account";//双引号里套单引号当字符串
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT",
                    "root","root");
            statement = connection.createStatement();
            resultSet = statement.executeQuery(sql);//返回一个结果集合


            /*
            resultSet集合,游标,会返回一个boolean值,判断当前行有没有数据
             */
            //处理结果集,结果集你不能全都显示出来吧
            while(resultSet.next()){//游标下移一行,判断有没有数据,集合集体,一定要不停后移
                int id = resultSet.getInt(1);//获取第一列的第一个(这时候是从1开始的)
                String name = resultSet.getString("name");//输入列的名字来获取数值也行
                int banlance = resultSet.getInt("balance");//使用列的下标或者,列的名字来获取都可以
                StringBuilder sb = new StringBuilder("");
                System.out.println(sb.append("id=").append(id).append(name).append(banlance).toString());
            }

        }
        catch (Exception e){
            System.out.println(e.getMessage());
        }
        finally {
            if(statement != null) {//无论是statement还是connection都有肯能没执行就出现异常了,
                //所以判断一下,是不是空
                statement.close();
            }
            if(connection != null){
                connection.close();
            }

            if(resultSet != null){
                resultSet.close();
            }


        }
    }
}

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页