目录

  • IDEA 链接mysql 数据库示例
  • 方法一
  • 方法二


IDEA 链接mysql 数据库示例

如果还没有mysql插件可以上mysql插件 上这里我的另一篇里面有详细说明。
今天主要说有了这个驱动 如何使用的问题。
有两个办法先上第一段源码奉上

方法一

package Links;

import com.mysql.cj.jdbc.ConnectionImpl;
import com.mysql.cj.protocol.Resultset;

import java.sql.*;

/**
 * @Author: 冀十三
 * @DescIption: 描述
 * @Date:2021--06--08--13:01
 */
public class ConnectionSql {
    private final static  String ACCOUNT = "root";
    private final static  String PASSWORD = "root";
    //这里先声明一个 Connection 类的对象赋值为空留着待用
    Connection connection= null;
    public ConnectionSql()  {

        try {
            //第一步加载驱动
            Class.forName("com.mysql.jdbc.Driver");//我现在连接的是mysql 这段代码是固定的
            System.out.println("数据库连接成功");//显示一下是否可以执行成功

        // 加载驱动完成之后
        String  url = "jdbc:mysql://localhost:3306/school?characterEncoding=utf-8&useSSL=false";
        //括号里三个属性分别是数据库地址,数据库的登录账号以及密码
            connection = DriverManager.getConnection(url,ACCOUNT,PASSWORD);

            //我这里已经连接成功了现在我让他执行一个查询语句
            //首先创建执行环境
            Statement statement = connection.createStatement();
            // 这里执行的是查询语句
            ResultSet resultSet = statement.executeQuery(" SELECT * FROM `school`.`user` WHERE `uid`=2");
            while (resultSet.next()){
                System.out.println(resultSet.getString("uname"));//输出查到的用户名字
                System.out.println(resultSet.getString("upass"));//输出查到的用户密码
                System.out.println(resultSet.getInt("uid"));//输出查到的用户ID
            }
        } catch (Exception e){
            e.printStackTrace();
        }
    }
}

这里我们看一下数据库对比结果

idea es数据库 idea写数据库_jdbc

idea es数据库 idea写数据库_jdbc_02


这里报了一串红字

Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class iscom.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual load。

意思是现在这个驱动已经过时了

只需要把

com.mysql.jdbc.Driver更换成

com.mysql.cj.jdbc.Driver就可以了

这里是已经成功。
但是有一个问题。
如果说更换了数据库不用mysql 改用Oracle了。或者更换数据库了那么我们就得改代码了很麻烦。
所以可以写一个文件将数据库信息封装起来。然后直接调用。改的时候只需要更改封装的数据就好了。

方法二

在当前工程下的src右键创建一个File 名字叫做db.properties这个一定不要错。
上代码

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/school?characterEncoding=utf-8&useSSL=false
username=root
password=root

注意:这个里面不支持备注并且=俩边都不可以有空 然后我们可以写一个工具类。链接数据库的时候直接调用这个类方法。
上代码

package Links;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * @Author: 冀十三
 * @DescIption: 描述
 * @Date:2021--06--09--13:13
 */
public class JDBCUtils {

    //私有化连接方法所需呀的四个属性
    private static  String driver;
    private static  String url;
    private static  String username;
    private static  String password;

    //写一个静态代码块用来加载驱动
    static {
        //首先读取写的db.properties文件
        InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("db.properties");
        //添加Properties类的对象
        Properties properties = new Properties();

        //加载驱动
        try {
            //加载流文件
            properties.load(is);
            driver = properties.getProperty("driver");
            url = properties.getProperty("url");
            username = properties.getProperty("username");
            password = properties.getProperty("password");
            Class.forName(driver);//调用驱动
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    //静态代码块里面获得链接所需要的四样接下里就可写链接方法了
    public static Connection getConnection(){
        try {  
            return  DriverManager.getConnection(url,username,password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    //最后再写一个执行完成的释放资源的方法
    public static void close(Connection coon, Statement statement, ResultSet resultSet){//我们创建了三个这里释放三个

        try {
            if (resultSet != null) {
                resultSet.close();
                resultSet = null;
            }if (statement != null) {
                statement.close();
                statement = null;
            }if (coon != null) {
                coon.close();
                coon=null;
            }
        }
        catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

这就算一个链接数据库的完整的类了。两个方法都是静态。可以直接通过类名来调用。