MYSQL - JDBC连接

使用JDBC进行MYSQL数据库连接

一共有六个步骤

1. 加载注册驱动

使用IDEA建立maven工程时,可以直接在pom文件中进行mysql驱动包的导入;若不使用maven进行jar包导入,可自行进行添加;

MySQL驱动的maven坐标:

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>8.0.23</version>
</dependency>

在resources文件夹下建立database.properties文件,将数据库信息写入:

driver = com.mysql.cj.jdbc.Driver
url = jdbc:mysql://localhost:3306/zzu?serverTimezone=UTC&characterEncoding=utf-8
user = root
password = XXXX

在util工具类中,利用静态代码块进行驱动的注册

static{
    pro = new Properties();
    try{
        pro.load(jdbcutils.class.getClassLoader().getResourceAsStream("database.properties"));
        Class.forName(pro.getProperty("driver"));
    }catch(Exception exce){
        exce.printStackTrace();
    }
}

2. 获取连接

在util工具类中,利用静态方法getConnection来生成数据库连接

   public static Connection getConnection(Connection conn){
    if(conn == null){
        try{
            conn = DriverManager.getConnection(pro.getProperty("url"),
                    pro.getProperty("user"),pro.getProperty("password"));
        }catch (Exception e){
            System.out.println("获取连接出错");
        }
    }
    return conn;
}

在主函数中,使用工具类util的静态方法getConnection来获取数据库连接

 Connection conn = null;
 conn = jdbcutils.getConnection(conn);

3. 获取PreparedStatement

利用获取的conn连接来进行PreparedStatem获取

PreparedStatement prop = conn.prepareStatement("select * from userinfo");

4. 执行SQL语句

使用prop进行SQL语句的执行

ResultSet rs = prop.executeQuery();

5. 遍历结果集

使用ResultSet的next()方法来进行结果集的遍历

//括号中的参数名称与数据库表的列名一一对应
while(rs.next()){
        int id = rs.getInt("id");
        String college = rs.getString("college");
        String name = rs.getString("name");
        int picId = rs.getInt("pic_id");
        System.out.println(id + " " + college + " " + name + " " +picId );
        }

6. 关闭连接

在最后进行数据库连接的关闭

在工具类utils中进行数据库关闭静态方法的设计

//先开后关的原则
private static void connClose(Connection conn, ResultSet rs,PreparedStatement prep){

    if(rs != null){
        try{
            rs.close();
        }catch (SQLException exception){
            exception.printStackTrace();
        }finally {
            rs = null;
        }
    }

    if(prep != null){
        try{
            prep.close();
        }catch (SQLException exception){
            exception.printStackTrace();
        }finally {
            prep = null;
        }
    }

    if(conn != null){
        try{
            conn.close();
        }catch (SQLException exception){
            exception.printStackTrace();
        }finally {
            conn = null;
        }
    }
}

通过以上六个步骤可以获取到数据库中的数据,注意数据库配置中的驱动URL时区问题

posted @ 2021-04-06 13:29  慕冰  阅读(61)  评论(0编辑  收藏  举报