zoukankan      html  css  js  c++  java
  • Java数据库连接方法

    推荐使用方法二,更便于使用

    方法一、直接连接,不封装到工具类中,主要步骤:

    导入jar包:mysql-connector-java-5.1.46-bin.jar(点击跳转到下载界面),可到下面网站下载最新版https://dev.mysql.com/downloads/connector/,放在WebRoot/WEB-INF/lib/下(非maven项目)

    方法:

        1.加载驱动//com.mysql.jdbc.Driver

        2.获取连接 Connection对象
      
        3.获取用于向数据库发送SQL的Statement对象
      
        4.执行sql,获取数据,解析数据
      
        5.关闭连接,释放资源

    将下面代码放到运行方法里即可

     1            /* 协议:子协议://主机:端口/数据库名 */  
     2 String url = "jdbc:mysql://localhost:3306/jdbctest";  
     3   
     4 // 声明对象,url(数据库地址),user(数据库用户名),password(数据库密码)、connection(连接器)、statement(编译sql)、resutlSet(结果集)
     5 String user = "root";  
     6 String password = "root";  
     7   
     8 Connection connection = null;  
     9 Statement statement = null;  
    10 ResultSet resultSet = null;  
    11 try {  
    12     // 1.加载驱动//com.mysql.jdbc.Driver  
    13     /* 
    14      * DriverManager.registerDriver(new 
    15      * Driver());用这种方法会加载两次驱动,也就是说会创建两个drive对象 
    16      */  
    17     Class.forName("com.mysql.jdbc.Driver");  
    18     // 2.获取连接  
    19     connection = DriverManager.getConnection(url, user, password);  
    20   
    21     // 3.获取用于向数据库发送SQL的Statement对象  
    22     statement = connection.createStatement();  
    23   
    24     // 4.执行sql,获取数据  
    25     resultSet = statement.executeQuery("SELECT * FROM users;");  
    26   
    27     // 解析数据  
    28     while (resultSet.next()) {  
    29         int id = resultSet.getInt("id");  
    30         String name = resultSet.getString("name");  
    31         String psd = resultSet.getString("password");  
    32         String email = resultSet.getString("email");  
    33         String birthday = resultSet.getString("birthday");  
    34   
    35         System.out.println(id + " " + name + " " + psd + " " + email  
    36                 + " " + birthday);  
    37     }  
    38 } catch (ClassNotFoundException e) {  
    39     e.printStackTrace();  
    40 } catch (SQLException e) {  
    41     e.printStackTrace();  
    42 } finally {    
    43   
    44                       //5.关闭连接,释放资源  
    45     if (resultSet != null) {  
    46         try {  
    47             resultSet.close();  
    48         } catch (SQLException e) {  
    49             // TODO Auto-generated catch block  
    50             e.printStackTrace();  
    51         }  
    52         resultSet = null;  
    53     }  
    54   
    55     if (statement != null) {  
    56         try {  
    57             statement.close();  
    58         } catch (SQLException e) {  
    59             // TODO Auto-generated catch block  
    60             e.printStackTrace();  
    61         }  
    62         statement = null;  
    63     }  
    64   
    65     if (connection != null) {  
    66         try {  
    67             connection.close();  
    68         } catch (SQLException e) {  
    69             // TODO Auto-generated catch block  
    70             e.printStackTrace();  
    71         }  
    72         connection = null;  
    73     }  
    74 } 

    方法二、将数据库连接封装成一个工具类

    这样做的好处是,在实际开发中,就能做到,改一处即可修改全局。

    1.建一个名为db.properties的配置文件,放于src/

    url=jdbc:mysql://localhost:3306/jdbctest  
    username=root  
    password=root  
    driver=com.mysql.jdbc.Driver

    2.工具类:

     1 import java.io.IOException;
     2 import java.sql.Connection;
     3 import java.sql.DriverManager;
     4 import java.sql.ResultSet;
     5 import java.sql.SQLException;
     6 import java.sql.Statement;
     7 import java.util.Properties;
     8 
     9 public class JdbcUtil {
    10     
    11     //私有静态变量,用以读取配置文件
    12     private static Properties config=new Properties();
    13     
    14     static{
    15         try {
    16             //配置资源文件
    17             config.load(JdbcUtil.class.getClassLoader().getResourceAsStream("db.properties"));
    18             
    19             //加载驱动
    20             Class.forName(config.getProperty("driver"));
    21         } catch (IOException e) {
    22             e.printStackTrace();
    23         } catch (ClassNotFoundException e) {
    24             e.printStackTrace();
    25         }
    26     }
    27     
    28     public static  Connection getConnection(){
    29         Connection connection=null;
    30         try {
    31             connection=DriverManager.getConnection(config.getProperty("url"),config.getProperty("username"),config.getProperty("password"));
    32         } catch (SQLException e) {
    33             e.printStackTrace();
    34         }
    35         
    36         return connection;
    37     }
    38     //用以关闭连接,释放资源
    39     public static void releaseConn(Connection connection, Statement statement,
    40             ResultSet resultSet) {
    41         if(resultSet!=null){
    42             try {
    43                 resultSet.close();
    44             } catch (SQLException e) {
    45                 e.printStackTrace();
    46             }
    47             resultSet=null;
    48         }
    49         
    50         if(statement!=null){
    51             try {
    52                 statement.close();
    53             } catch (SQLException e) {
    54                 e.printStackTrace();
    55             }
    56             statement=null;
    57         }
    58         
    59         if(connection!=null){
    60             try {
    61                 connection.close();
    62             } catch (SQLException e) {
    63                 e.printStackTrace();
    64             }
    65             connection=null;
    66         }
    67     }
    68     
    69 
    70 }

    3.使用实例:(将下面代码放入运行方法中即可)

     1         Connection connection = null;
     2         Statement statement = null;
     3         ResultSet resultSet = null;
     4         try {
     5             // 调用工具类中的静态方法来获取连接
     6             connection = JdbcUtil.getConnection();
     7             statement = connection.createStatement();
     8             resultSet = statement.executeQuery("select * from users");
     9             while (resultSet.next()) {
    10                 int id = resultSet.getInt("id");
    11                 String name = resultSet.getString("name");
    12                 String psd = resultSet.getString("password");
    13                 String email = resultSet.getString("email");
    14                 String birthday = resultSet.getString("birthday");
    15 
    16                 System.out.println(id + " " + name + " " + psd + " " + email
    17                         + " " + birthday);
    18 
    19             }
    20         } catch (Exception e) {
    21             e.printStackTrace();
    22         } finally {
    23             // 调用工具类中的静态方法来关闭连接,释放资源
    24             JdbcUtil.releaseConn(connection, statement, resultSet);
    25         }
    26     }
  • 相关阅读:
    站立会议(二)
    站立会议(一)
    买书优惠问题
    软件的NABCD----安装部分
    你的灯亮着吗读书笔记(一)
    软件工程概论---环状二维数组最大子数组和
    梦断代码读书笔记(三)
    梦断代码读书笔记(二)
    课程作业3.10
    软件工程作业提交3.06
  • 原文地址:https://www.cnblogs.com/superslow/p/8858713.html
Copyright © 2011-2022 走看看