当前位置:主页 > 查看内容

JDBC

发布时间:2021-07-15 00:00| 位朋友查看

简介:一、JDBC是什么 JDBC(Java Data Base Connectivity) 是 Java 访问数据库的标准规范程序员使用统一的代码便可以访问到不同的数据库。 二、普通方法使用JDBC连接数据库 public class jdbc { public static void main ( String [ ] args ) throws Exception { /……

一、JDBC是什么?

JDBC(Java Data Base Connectivity) 是 Java 访问数据库的标准规范,程序员使用统一的代码,便可以访问到不同的数据库。

二、普通方法使用JDBC连接数据库

public class jdbc {
    public static void main(String[] args) throws Exception{

       // 1.注册驱动(可以省略从jdbc3开始)
        Class.forName("com.mysql.jdbc.Driver");

       // 2.获取连接 connection连接对象
        String url="jdbc:mysql://localhost:3306/db1?characterEncoding=UTF-8";
        Connection connection=DriverManager.getConnection(url,"root","root");

       // 3.获取语句执行平台 Statement
        Statement statement=connection.createStatement();

		//4.传入需要执行的sql语句
         String sql="select  * from user ";
        //(ResultSet是结果集对象,只有查询的时候会使用到)
        ResultSet resultSet=statement.executeQuery(sql);
        // 处理结果集对象 用resultSet

        //while循环,遍历获取resultSet中的数据
        while (resultSet.next()){
            int id= resultSet.getInt("id");
            String name= resultSet.getString("name");
            System.out.println(id+name);
        }


        //关闭流,先开启的后关闭,跟栈的操作机制是一样的
        resultSet.close();
        statement.close();
        con.close();

    }

}

三、使用JDBC工具类连接数据库并进行一些列操作

JDBC工具类(JDBCUtils)

import java.sql.*;
import static java.lang.Class.forName;

public class JDBCUtils {
    // 1.将连接信息定义为 字符串常量
    public static final String DRIVERNAME = "com.mysql.jdbc.Driver";
    public static final String URL = "jdbc:mysql://localhost:3306/db1?characterEncoding=utf-8";
    public static final String User = "root";
    public static final String PASSWORD = "root";

    // 2.静态代码块(静态代码块是一定可以执行的)(注册驱动是可以省略的因此该代码块理论上来说是可以省略的)
    static {
        try {
            // 注册驱动
            Class.forName(DRIVERNAME);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    //3.获取连接的静态方法
    public static Connection getConnection(){
        try {
            //获取连接对象并返回
            Connection connection = DriverManager.getConnection(URL, User, PASSWORD);
            return connection;

        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }


    }

    //关闭资源的方法(重载方法,执行查询操作的时候关闭的内容需要多一个流)
    public static void close(Connection connection, Statement statement){
        if(connection !=null && statement !=null ){
            try{
                statement.close();
                connection.close();

            }catch (SQLException e){
                e.printStackTrace();
            }
        }
    }

    public static void close(ResultSet resultSet,Connection connection, Statement statement){
        if(connection !=null && statement !=null && resultSet !=null ){
            try{
                resultSet.close();
                statement.close();
                connection.close();

            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
}

通过JDBCUtils登录数据库

public class Test03 {
    public static void main(String[] args) throws SQLException {
    	//获取连接
        Connection connection= JDBCUtils.getConnection();

        // 使用?占位符的方式来设置参数
        String sql="select * from user where name=? and password=?";
        PreparedStatement preparedStatement=connection.prepareStatement(sql);

        //3.获取用户输入的用户名和密码
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入用户名:");
        String name=sc.nextLine();
        System.out.println("请输入密码:");
        String pass=sc.next();

        // 4.设置参数 使用setXXX(占位符的位置(整数),要设置的值)的方法设置占位符的参数
        preparedStatement.setString(1,name); //设置第一个问号值为name
        preparedStatement.setString(2,pass); //设置第二个问号值为pass

        // 5.执行查询
        ResultSet resultSet=preparedStatement.executeQuery();

        if(resultSet.next()){
            System.out.println("登录成功"+name);
        }else{
            System.out.println("登陆失败!");
        }
		// 6.关闭流操作(注意执行查询操作当中关闭流的时候多一个参数resultSet)
		JDBCUtils.close(connection,preparedStatement,resultSet);
		
    }
}

通过JDBCUtils向数据库中插入数据

public class Test04 {
    public static void main(String[] args) throws SQLException {
		//获取连接
        Connection connection = JDBCUtils.getConnection();
        
		// 使用?占位符的方式来设置参数
        String sql="insert into user values (?,?);";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);

        Scanner sc=new Scanner(System.in);
        System.out.println("请输入用户名:");
        String name=sc.nextLine();
        System.out.println("请输入密码:");
        String pass=sc.next();
        
		//设置参数 使用setXXX(占位符的位置(整数),要设置的值)的方法设置占位符的参数
        preparedStatement.setString(1, name);
        preparedStatement.setString(2, pass);
        //  执行插入
        System.out.println(sql);
		// 更新数据
        preparedStatement.executeUpdate();
        System.out.println("插入成功!");

		//关闭流
        JDBCUtils.close(connection,preparedStatement);
        
    }
}

;原文链接:https://blog.csdn.net/weixin_51483932/article/details/115739517
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐