前提准备
导入 mysql-connector-java-版本号 的jar包
下面为大家提供几个jar包下载地址
创建
在src文件夹下创建文件jdbc.properties
内容组成
driverClass = com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://主机IP(某些可以域名):端口号(一般3306)/数据库名 user=用户名 password=用户密码
注意
如果连接的是远程数据库,需要在安全组开放端口号
例如我的mySQL端口号是3306,想连接在宝塔的数据库,我就要在宝塔开放3306端口,然后设置这个数据库所有IP可以访问,然后重启mySQL(一定要重启MySQL),如果访问还是被拒绝,可以去检查服务器中安全组是否开放3306端口。
引用
package jdbc; import org.apache.jasper.tagplugins.jstl.core.Catch; import java.sql.*; import java.util.ResourceBundle; public class JDBCUtils { //私有化构造函数 //防止外界直接创建对象 private JDBCUtils(){} //提供静态方法getConnection //用来对外提供数据库连接对象 /** *Connection 用来对外提供数据库连接对象 * @return */ public static Connection getConnection(){ try{ //0.读取文件属性 ResourceBundle conf = ResourceBundle.getBundle("conf/jdbc"); //1.注册驱动 Class.forName(conf.getString("driverClass")); //2.获取数据库连接 String url = conf.getString("jdbcUrl"); String user = conf.getString("user"); String password = conf.getString("password"); Connection conn = DriverManager.getConnection(url,user,password); return conn; }catch (Exception e){ e.printStackTrace(); } return null; } //提供静态方法close,用来释放资源 /** *close 用来释放资源 * @param rs * @param st * @param conn */ public static void close(ResultSet rs, Statement st,Connection conn){ //关闭结果资源集 if(rs!=null){ //防止空指针异常 try{ rs.close(); }catch (SQLException e){ e.printStackTrace(); }finally { rs=null;//手动置空,等待GC回收 } } //关闭传输器资源 if(st!=null){ //防止空指针异常 try { st.close(); }catch (SQLException e){ e.printStackTrace(); }finally { st = null;//手动置空,等待GC回收 } } //关闭数据库连接资源 if(conn!=null){ //防止空指针异常 try { conn.close(); } catch (SQLException e) { e.printStackTrace(); }finally { conn=null;//手动置空,等待GC回收 } } } }
注意
使用时注意名称对应,大部分出现问题的同学都是名称不对应
检查内容:
1.主机名/域名,端口号,数据库名是否正确,用户名密码是否正确,尤其是大小写问题
2.getBundle的路径是否正确
3.getString的名称是否和配置文件的名称对应