目录
JAVA连接数据库
一、导入jar包
1、选中项目,右键,Build Path, Confiqure Build Path
2、选择Libearies,选中Modulepath后,右侧的按钮就变成可选中状态,选择Add External JARs,在MySQL的安装包中找到连接Java的jar包,双击后变成下面这张图的样子,选择右下角的Apply and Close
二、加载驱动程序
编写代码如下,运行后如果没有出错,则证明数据库驱动程序已经配置成功
package test;
import java.sql.*;
public class Main {
//定义MySQL的数据库驱动程序
public static final String DBC="com.mysql.cj.jdbc.Driver";
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
//加载驱动程序
Class.forName(DBC);
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
}
}
注意:有时配置的时候出现了以下错误:java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver
可能是CLASSPATH设置有问题,也可能是命令行方式没有重新启动造成的
三、连接及关闭数据库
代码如下:
注:数据库打开后就要关闭,在程序的操作中数据库的资源是非常有限的,这就要求开发者在操作完数据库后必须将其关闭,如果没有这样做,在程序运行中就可能产生无法连接到数据库的异常
package test;
import java.sql.*;
public class Main {
//定义MySQL的数据库驱动程序
public static final String DBC="com.mysql.cj.jdbc.Driver";
//定义MySQL数据库的连接地址,user为数据库名
static final String DB_URL = "jdbc:mysql://localhost:3306/user";
//数据库的用户名
static final String USER = "root";
//数据库的密码
static final String PASS = "123456";
public static void main(String[] args) {
// TODO Auto-generated method stub
//数据库连接
Connection conn=null;
try {
//加载驱动程序
Class.forName(DBC);
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
try {
//连接数据库
conn = DriverManager.getConnection(DB_URL,USER,PASS);
}catch(SQLException e){
e.printStackTrace();
}
System.out.println(conn);
try {
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
运行结果如下:程序的运行结果不为空,说明此时的数据库已经连接成功
四、数据库查询操作
用Navicat连接数据库,后续操作在里面进行
首先新建一个数据库user,新建表information,包括name和password两个字段,往里面存入一些数据,用eclipse来查询。
查询操作的代码如下,可在连接操作的基础上进行修改
package test;
import java.sql.*;
public class Main {
//定义MySQL的数据库驱动程序
public static final String DBC="com.mysql.cj.jdbc.Driver";
//定义MySQL数据库的连接地址,user为数据库名
static final String DB_URL = "jdbc:mysql://localhost:3306/user";
//数据库的用户名
static final String USER = "root";
//数据库的密码
static final String PASS = "123456";
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn = null;//数据库连接
Statement stmt = null;//数据库操作
try{
// 注册 JDBC 驱动
Class.forName(DBC);
// 打开链接
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
stmt = conn.createStatement();
String sql;
sql = "SELECT name, password FROM information";
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库
while(rs.next()){
// 通过字段检索
String name = rs.getString("name");
String password = rs.getString("password");
// 输出数据
System.out.print(" 用户名: " + name);
System.out.print(", 密码: " + password);
System.out.print("\n");
}
// 完成后关闭
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}
finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}
catch(SQLException se2){
}// 什么都不做
try{
if(conn!=null) conn.close();
}
catch(SQLException se){
se.printStackTrace();
}
}
}
}
查询结果如下,查询成功
五、数据库插入操作
注:数据库的增删改只需要改变SQL语句就可以了,其余代码都是一样的
增加:
String sql="INSERT INTO information(name,password)"+"VALUES('李兴华','011')";
修改:
String sql="UPDATE information SET password='111' WHERE name='李华'";
删除:
String sql="DELETE FROM information WHERE name='李华'";
插入操作完整代码如下:
package test;
import java.sql.*;
public class Main {
//定义MySQL的数据库驱动程序
public static final String DBC="com.mysql.cj.jdbc.Driver";
//定义MySQL数据库的连接地址,user为数据库名
static final String DB_URL = "jdbc:mysql://localhost:3306/user";
//数据库的用户名
static final String USER = "root";
//数据库的密码
static final String PASS = "123456";
public static void main(String[] args)throws Exception {
// TODO Auto-generated method stub
Connection conn = null;//数据库连接
Statement stmt = null;//数据库操作
String sql="INSERT INTO information(name,password)"+"VALUES('李兴华','011')";
Class.forName(DBC);
conn=DriverManager.getConnection(DB_URL,USER,PASS);
//实例化statement对象
stmt=conn.createStatement();
//执行数据库更新操作
stmt.executeUpdate(sql);
//操作关闭
stmt.close();
//数据库关闭
conn.close();
}
}
运行代码后打开Navicat,刷新后可以看到数据已经存储进去了
六、数据库修改操作
注:字符串类型要用' '引住,不然会报错,比如代码里的李华就是字符串,需要用单引号引住
package test;
import java.sql.*;
public class Main {
//定义MySQL的数据库驱动程序
public static final String DBC="com.mysql.cj.jdbc.Driver";
//定义MySQL数据库的连接地址,user为数据库名
static final String DB_URL = "jdbc:mysql://localhost:3306/user";
//数据库的用户名
static final String USER = "root";
//数据库的密码
static final String PASS = "123456";
public static void main(String[] args)throws Exception {
// TODO Auto-generated method stub
Connection conn = null;//数据库连接
Statement stmt = null;//数据库操作
String sql="UPDATE information SET password='111' WHERE name='李华'";
Class.forName(DBC);
conn=DriverManager.getConnection(DB_URL,USER,PASS);
//实例化statement对象
stmt=conn.createStatement();
//执行数据库更新操作
stmt.executeUpdate(sql);
//操作关闭
stmt.close();
//数据库关闭
conn.close();
}
}
运行代码后,打开Navicat刷新后查看,发现姓名为李华的用户密码已经改为了111,操作成功!
七、数据库删除操作
package test;
import java.sql.*;
public class Main {
//定义MySQL的数据库驱动程序
public static final String DBC="com.mysql.cj.jdbc.Driver";
//定义MySQL数据库的连接地址,user为数据库名
static final String DB_URL = "jdbc:mysql://localhost:3306/user";
//数据库的用户名
static final String USER = "root";
//数据库的密码
static final String PASS = "123456";
public static void main(String[] args)throws Exception {
// TODO Auto-generated method stub
Connection conn = null;//数据库连接
Statement stmt = null;//数据库操作
String sql="DELETE FROM information WHERE name='李华'";
Class.forName(DBC);
conn=DriverManager.getConnection(DB_URL,USER,PASS);
//实例化statement对象
stmt=conn.createStatement();
//执行数据库更新操作
stmt.executeUpdate(sql);
//操作关闭
stmt.close();
//数据库关闭
conn.close();
}
}
运行后打开Navicat刷新后查看,姓名为李华的信息已经删除,操作成功!