java连接mysql数据库及其相关基本操作
要连接数据库,首先,确保得自己已经正确安装好了数据库。确认方法:运行mysql程序输入超级管理员密码后可以输入数据库语句运行。效果如下图所示,
已经确认好后,打开java,新建一个程序。在目录下新建一个文件夹导入驱动包,具体步骤如下:
1.新建文件夹:
2.导入下载好的驱动包
驱动包资源分享在这里:链接:https://pan.baidu.com/s/1XyUxAsW3gU-TkZI43roh_Q
提取码:zbig
准备工作完成后,正式开始进行java数据库连接,即jdbc。总的来说分为以下七个步骤:
1.注册驱动
2.建立连接
3.编写sql语句
4.获取statement对象
5.执行sql语句获取结果集
6.遍历结果集
7.关闭连接
这里我们举一个小例子来讲解,先贴代码:
package jdbc;
import java.sql.*;//导入相关的sql包
public class jdbc {
public static void main (String[] args) {
ResultSet resultSet=null;//结果集
String str =null;//sql语句
PreparedStatement statement =null;//语句对象接口,用于执行sql语句并返回结果集
Connection con =null;//连接接口
try {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.创建连接
con= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc?useSSL=true&characterEncoding=utf-8&user=root&password=666666");
System.out.println("创建连接成功");
//3.写sql
str ="select * from user ";
//4.得到statement对象
statement =con.prepareStatement(str);
//5.执行sql
resultSet =statement.executeQuery();
//6.处理结果
while (resultSet.next()){
System.out.println(resultSet.getInt(1));
System.out.println(resultSet.getString(2));
System.out.println(resultSet.getString(3));
}
//7.关闭资源
} catch (Exception e) {
e.printStackTrace();
}
finally {
if(resultSet!=null)
{
try{resultSet.close();}
catch (Exception e)
{
e.printStackTrace();
}
};
if(statement!=null)
{
try{statement.close();}
catch (Exception e)
{
e.printStackTrace();
}
};
if(con!=null)
{
try{con.close();}
catch (Exception e)
{
e.printStackTrace();
}
};
}
}
}
上述小程序完成了连接数据库,执行一个select语句完成查询并给予输出的工作。
首先通过Class类中的forName方法完成驱动加载,不同的mysql版本使用的加载语句有所不同。请根据自身情况进行调整,下给出不同版本使用语句:
Class.forName(“com.mysql.jdbc.Driver”)( mysql-connector-java 5)
Class.forName(“com.mysql.cj.jdbc.Driver”)( mysql-connector-java 6)
随后通过DriverManager类的getConnection方法来获取连接并通过Connection保存,值得注意的是这个方法里的参数本来是三个分别为utf,数据库账户,密码三个,这里合并起来写,具体使用时蓝框里改为自己的数据库名,红色下划线处改为账户名,蓝色下划线处改成自己的密码。(如果是本地数据库账户名与我是一致的)
随后编写想要执行的sql语句,并通过statement进行执行。这里的sql语句可以在程序中直接写出,也可已通过参数传递进行随意改动,应该这只是一个普通的string。如果执行的是有返回的sql语句,返回值通过ResultSet进行储存。这里得到的返回值是一个多列的和数据库结构相似的数据集,通过遍历这个数据集可以对其中的各个数据进行输出或者使用。
根据执行sql语句的不同,增删改的操作大同小异,这里就不做赘述。不过有时sql语句中想要掺杂可变量,使用以下方法即可达到目的:
str="update user set name = ? where id= ?";//sql语句其中有两个问号,代表两个可变量
try {
statement =con.prepareStatement(str);//获取statement,statement在前面已经声明过了
statement.setString(1,"zl");//给第一个?赋值
statement.setInt(2,112);//给第二个?赋值
statement.executeUpdate();//因为是update语句,没有返回值所以直接执行
} catch (Exception e) {
e.printStackTrace();
}
完成了sql语句的执行后,最后还要关闭相应的申请的连接。
从低到高依次关闭的顺序应为:
ResultSet(如果有的话,无返回值则无需此操作)
PreparedStatement(statement)
Connection
这里应该注意我对上述三者的声明都放在了try外,这是因为如果在中途执行时出现异常则会直接跳出try到catch中不会执行剩余代码。而最后的finally还是会继续执行,引起错误。
以上,希望对大家有所帮助。