java连接mysql数据库学习示例

时间:2021-08-20 10:29:18
代码如下:

package sns.team6.util;

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 链接数据库的工具类
 * 
 * @author 徐锐
 * 
 */
public class DBHelper {

 // mysql驱动路径
 private static final String driver = "com.mysql.jdbc.Driver";
 // 数据库的连接路径
 private static final String url = "jdbc:mysql://localhost:3306/snsteam6";

 /**
  * 连接数据库的对象
  * 
  * @return
  */
 public static Connection getConnection() {
  Connection conn = null;
  try {
   Class.forName(driver);
   conn = DriverManager.getConnection(url, "root", "root");
  } catch (Exception e) {
   e.printStackTrace();
  }
  return conn;
 }

 /**
  * 关闭打开的资源
  * 
  * @param conn
  * @param pst
  * @param rst
  */
 public static void closeInfo(Connection conn, PreparedStatement pst,
   ResultSet rst) {
  try {
   if (rst != null) {
    rst.close();
    rst = null;
   }
   if (pst != null) {
    pst.close();
    pst = null;
   }
   if (conn != null) {
    conn.close();
    conn = null;
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 /**
  * 获取结果集对象
  * 
  * @param sql
  * @param params
  * @return
  */
 public static ResultSet resultSet(String sql, Object[] params) {

  // 数据库的链接对象
  Connection conn = null;
  // 数据库的操作对象
  PreparedStatement pst = null;
  // 结果对象
  ResultSet rst = null;
  try {

   // 数据库的链接对象
   conn = DBHelper.getConnection();
   // 数据库的操作对象
   pst = conn.prepareStatement(sql);
   // 判断是否有参数
   if (params != null && params.length > 0) {
    for (int i = 0; i < params.length; i++) {
     // 给操作对象赋值
     pst.setObject(i + 1, params[i]);
    }
   }
   // 获取结果对象
   rst = pst.executeQuery();
  } catch (SQLException e) {
   rst = null;
   e.printStackTrace();
  }
  return rst;
 }

 /**
  * 获取添加的结果对象
  * 
  * @param sql
  * @param params
  * @return
  */
 public static boolean result(String sql, Object[] params) {

  boolean flag = false;
  // 数据库的链接对象
  Connection conn = null;
  // 数据库的操作对象
  PreparedStatement pst = null;
  try {
   // 数据库的链接对象
   conn = DBHelper.getConnection();
   // 数据库的操作对象
   pst = conn.prepareStatement(sql);
   // 判断是否有参数
   if (params != null && params.length > 0) {
    for (int i = 0; i < params.length; i++) {
     // 给操作对象赋值
     pst.setObject(i + 1, params[i]);
    }
   }
   // 获取结果对象,是int类型,表示执行成功的行数
   int row = pst.executeUpdate();
   if (row > 0) {
    // 如果大于0,表示执行成功
    flag = true;
   }
  } catch (SQLException e) {
   flag = false;
   e.printStackTrace();
  }
  return flag;
 }
}