注意:在连接之前要确保MySQL数据库服务是打开的,并且JDBC的加载驱动已经导入至当前项目中
下面具体讲解JDBC连接MySQL数据库的具体操作,以及代码示例:
-
操作流程:
1.1 加载数据库驱动两种方式:
1)新建com.mysql.jdbc.Driver(MySQL jar中的类)对象;
2)用Class.forName()直接加载.1.2 编写连接:
jdbc:mysql://主机名:连接端口(3306)/数据库名称?user=userName&password=PASSWORD
一定要注意,字符间不能有空格,否则会出错1.3 封装连接地址并建立连接
用java.sql.DriverManager类当中的public static Connection getConnection(String url)
通过该方法每获取到一个Connection对象就代表成功建立一次连接。 代码示例
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
//该功能类中的方法都是静态的
//在使用时可以方便地调用
public class ConnectionMysql {
//MySQL驱动
private static final String DBDRIVER = "com.mysql.jdbc.Driver";
//连接地址
//之所以加入useUnicode=true和characterEncoding=UTF8,是为防止乱码
private static final String DBURL = "jdbc:mysql://localhost:3306/db_mysql?"
+ "user=root&password=用户密码&useUnicode=true&characterEncoding=UTF8";
public static void connect(Connection conn) {
try {
//加载驱动
//加载驱动的另一种方法是直接创建com.mysql.jdbc.Driver对象
//new com.mysql.jdbc.Driver();
Class.forName(DBDRIVER);
System.out.println("succeed to loading driver!");
try {
//尝试建立连接
conn = DriverManager.getConnection(DBURL);
System.out.println("succeed to connecting");
} catch (SQLException e) {
System.out.println("fail to connect");
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
System.out.println("fail to load driver");
e.printStackTrace();
}
}
public static Connection getConn(){
Connection conn = null;
try {
conn = DriverManager.getConnection(DBURL);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
注意:数据库的操作也是一种资源操作,因此当我们使用结束后一定要记得关闭连接
import java.sql.SQLException;
import java.sql.Connection;
//该功能类中的方法都是静态的
//在使用时可以方便地调用
public class CloseConnection {
public static void close(Connection conn){
try {
conn.close();
System.out.println("succeed to closing connection");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("fail to close connection!");
}
}
}
总结:JDBC建立MySQL数据库连接,时要注意以下几个问题
1.建立连接前保证MySQL服务已经启动,且编译器当中已经导入相应的驱动
2.操作顺序是:加载驱动->建立连接
3.加载驱动通过Class.forName()或者直接建立驱动对象;建立连接以java.sql.DriverManager中的getConnection()成功获取Connection对象为先决条件
4.任何访问资源的操作,最终一定要关闭资源