今天刚刚接触了java中的JDBC,这里来介绍一下如何在Eclispse中使用JDBC
1.首先我们需要为项目导入mysql-jdbc的jar包
访问MySQL数据库需要用到第三方的类,这些第三方的类,都被压缩在一个叫做Jar的文件里。
为了代码能够使用第三方的类,需要为项目导入mysql的专用Jar包。(需要Jar包的可以给我留言)
我们需要先建立一个工程名字就叫jdbc好了,然后在看这个工程中建立一个叫lib的文件夹,我们需要将Jar包放入其中。(这点很重要否则之后的步骤都会出错)然后我们要将Jar包导入到工程中,具体步骤如下图所示:
(1)右键点击工程,选择properties,会跳出如下界面。
(2)随后选择Java Build Path,点击libaries
(3)右面点击Add External JARS…
(4)然后从工程的lib文件夹中选择Jar包打开
(5)此时Jar包已被成功导入
(6)点击apply并关闭
2.Jar包导入之后我们接下来就要去初始化驱动了
通过Class.forName(“com.mysql.jdbc.Driver”);
初始化驱动类com.mysql.jdbc.Driver
就在 mysql-connector-java-5.0.8-bin.jar中
代码如下:
package jdbc;
import java.sql.*;
public class work {
public static void main(String[] args){
Connection c = null;
Statement s = null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("驱动初始成功");
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
}
}
运行结果:
驱动初始成功
如果我们没有第一步直接执行第二部会出现什么问题呢?
Eclipse抛出了异常,说明要连接数据库一定不能忘记要先导入Jar包。
3.初始完驱动之后,我们要开始建立与数据库的联系。
建立与数据库的Connection连接
这里需要提供:
数据库所处于的ip:127.0.0.1 (本机)
数据库的端口号: 3306 (mysql专用端口号)
数据库名称 how2java
编码方式 UTF-8
账号 root
密码 admin
注: 这一步要成功执行,必须建立在mysql中有数据库how2java的基础上。
尝试连接数据库的代码如下:
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class work2 {
public static void main(String[] args) {
Connection c = null;//连接
Statement s = null;
try {
Class.forName("com.mysql.jdbc.Driver");
//获得连接
c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8","root" ,"admin");
System.out.println("连接成功");
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) { //创捷连接对象时需要多些一种异常捕获的可能
e.printStackTrace();
}
}
}
运行结果:
连接成功
此时已经创建好连接数据库的对象了
4.现在,我们要来创建statement对象,并且执行sql语句。
现在我们要往数据库里添加一条消息:
代码如下:
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class work3 {
public static void main(String[] args) {
Connection c = null;//连接
Statement s = null;//执行sql语句的对象
try {
Class.forName("com.mysql.jdbc.Driver");
c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8","root" ,"admin");
//先来写一个sql语句
String sql = "insert into hero values(null," + "'提莫'" + "," + 313.0f + "," + 50 + ")";//插入信息
//创建执行sql语句的对象
s = c.createStatement();
//执行sql语句
s.execute(sql);
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
}
}
运行之后,此时查看我们的mysql数据库:
添加成功了。
5.最后,执行完sql语句之后我们要释放资源
如果长期不释放资源,会导致卡顿。
先关闭Statement
后关闭Connection
代码如下:
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class work4 {
public static void main(String[] args) {
Connection c = null;
Statement s = null;
try {
Class.forName("com.mysql.jdbc.Driver");
c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8","root" ,"admin");
String sql = "insert into hero values(null," + "'提莫'" + "," + 313.0f + "," + 50 + ")";//插入信息
s = c.createStatement();
s.execute(sql);
//先释放Statement对象
s.close();
//再释放Connection对象
c.close();
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
}
}
如果觉得手动关闭很麻烦你也可以使用try-with-resource自动关闭连接的方式
代码如下:
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class TestJDBC {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try (
Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8",
"root", "admin");
Statement s = c.createStatement();
)
{
String sql = "insert into hero values(null," + "'提莫'" + "," + 313.0f + "," + 50 + ")";
s.execute(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这里的效果很之前那个是一样的。