步骤
1) 导入驱动jar包
包的名称为
2) 注册驱动。 使用Mysql5版本后的数据库可以省略该步骤。
语法:class.forname(com.mysql.jdbc.Driver);
在Mysql中这句话是固定写法。
3) 获取连接对象Connection
格式:
Connection con=DriverManager.getConnection(url);
url(Uniform Resource Location):指的是统一资源定位符。
在Mysql中,格式为jdbc:mysql://ip地址(域名):端口号/数据库名称。例如:jdbc:mysql://localhost:3306/db3。若使用的是本机的地址并且端口号为3306,则可以写成这个格式:jdbc:mysql:///数据库名称.例如:jdbc:mysql:///db3
4) 定义sql语句
这里分两种情况,一种是对表中的数据进行增删改的操作,另一 种是对表中的数据进行查询操作,两种操作的不同决定下面对象 的不同。
5) 获取执行sql的对象
格式:
Statement sta=con.createStatement();
6) 执行sql并获取返回结果
格式:
Int i=sta.executeUpdate(sql);//对数据库中的数据进行增删改的操作时使用该语句
或者 Resuleset res=sta.executeQuery(sql);//对数据库中的数据进行查询时使用该语句
i指的是sql语句的执行所影响的数据库中的行数
7) 释放资源
定义的Connection、Statement、Resultset对象都需要释放
格式:con.close()、sta.close()
下图为运行的一个例子
该例子是对数据库text中的表user进行插入数据操作
数据库初始数据为三条,现在我们要用JDBC向该数据库中插入一条数据“4 王六 147”
下面是IEDA中的操作
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class text {
public static void main(String[] args) {
Connection con=null;
Statement statement=null;
try {
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
try {
//获取连接对象Connection
con = DriverManager.getConnection("jdbc:mysql:///text", "root", "1634178849zrz");
//定义sql语句
String sql="insert into user values(4,‘王六‘,‘147‘)";
//获取执行sql的对象Statement
statement = con.createStatement();
//执行sql
int i = statement.executeUpdate(sql);
System.out.println(i);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally {
//释放资源
if(statement!=null) {
try {
statement.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(con!=null){
try {
con.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
}
数据库中的结果为下图所示
执行代码前不要忘记了一个重要过程:导包
这样代码写完后没发现太过于繁琐了吗?在以后的操作中都要写这样一大部分重复的代码,岂不是很浪费时间,为了解决这个问题,我们可以把重复的代码放在一个方法中,这样在下次调用方法就可以直接执行,是不是省事多了?
注册驱动和获取连接对象这两个代码每次是重复的,所有我们可以把这两个写进一个方法
资源释放的代码也一样,我们可以把资源释放写进一个方法中,这样就简洁了许多
先定义一个释放资源的方法
再定义一个方法来包装注册驱动和获取连接对象
首先创建一个配置文件
内容为
接下来要做的就是从该配置文件中得到对应的url、user、password、driver进入该代码中。而文件的读取只需要读取一次即可,
因此,接下来要用到静态代码块这个知识点
格式为:
静态代码块中的
为类加载器,目前了解即可,目的是为了把配置文件中的url、user、password、driver加载到Propertiese集合中,再用集合中的方法获取相对于的值。
这样获取对象的方法就简化为
这样直接调用这两个方法来代替原代码中的繁琐步骤即可,若要修改数据,直接去配置文件中修改即可。
简化后的代码为:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class text {
public static void main(String[] args) {
Connection con=null;
Statement statement=null;
//注册驱动
//获取连接对象Connection
try {
con=JDBCUtils.connection();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
//定义sql语句
String sql="insert into user values(4,‘王六‘,‘147‘)";
//获取执行sql的对象Statement
try {
statement = con.createStatement();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
//执行sql
int i = 0;
try {
i = statement.executeUpdate(sql);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
System.out.println(i);
//释放资源
JDBCUtils.close(statement,con);
}
}
这样一看就简单了许多,省去了很多繁琐的代码。