java连接数据库时会随着mysql版本的变化而导致驱动配置方面有一些不同。暂时只用过mysql5.0左右的版本和mysql8.0.11。所以这里就只讲这两个版本,基本对应版本开头数字下的驱动基本大同小异。
mysql5.0
mysql5.0版本要用对应的驱动jar包,官网上、网上都有资源。
DBUtils类 初始化驱动
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtils {
public static final String url = "jdbc:mysql://localhost:3306/数据库名";
public static final String name = "com.mysql.jdbc.Driver";
public static final String user = "root";
public static final String password = "root";
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(name);//指定连接类型
conn = DriverManager.getConnection(url, user, password);//获取连接
}catch(ClassNotFoundException e)
{
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void close(Connection conn) {
if(conn!=null) {
try {
conn.close();
}catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
}
mysql8.0.11
mysql8版本在驱动和连接方面和5有区别,同时jar包也有区别。适用于mysql8.0.11的jar包要去官网上下载, 官网下载地址 ,刚刚看好像关闭了下载通道??可以去网上找找有没有资源,或者只是这一会关闭了。
DBUtils类
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtils {
public static final String url = "jdbc:mysql://localhost:3306/数据库名?&useSSL=false&serverTimezone=GMT";
public static final String name = "com.mysql.cj.jdbc.Driver";
public static final String user = "root";
public static final String password = "root";
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(name);//指定连接类型
conn = DriverManager.getConnection(url, user, password);//获取连接
}catch(ClassNotFoundException e)
{
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void close(Connection conn) {
if(conn!=null) {
try {
conn.close();
}catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
}
查询
Connection con;
Statement sql;
ResultSet rs;
try {
con=DBUtils.getConnection();
sql=con.createStatement();
rs=sql.executeQuery("select * from 表名;");
while(rs.next()){
String a=rs.getString(1);
int b=rs.getInt(2);
float c=rs.getFloat(3);
String d=rs.getString(4);
}
}catch(Exception e){
System.out.println(e);
}
插入
Connection con;
PreparedStatement sql;
try {
con=DBUtils.getConnection();
String str="insert into 表名 values(?,?,?,?,?);"; //问号表示占位符
sql=con.prepareStatement(str); //预处理
//为问号填上对应的值
sql.setInt(1,0);//主键为自增型,可以填零或者null
sql.setString(2, “a”);
sql.setInt(3, 1);
sql.setString(4, "b");
sql.setString(5, “c”);
sql.executeUpdate();
System.out.println("成功添加");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
删除
//只需把插入中的str换成删除语句,再给占位符填上值即可。
Connection con;
PreparedStatement sql;
try {
con=DBUtils.getConnection();
String str=“Delete from 表名 where 字段=?;”; //问号表示占位符
sql=con.prepareStatement(str); //预处理
//为问号填上对应的值
sql.setString(1, “a”);
sql.executeUpdate();
System.out.println("成功删除");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
更新
//只需把str更换成更新语句,再给占位符填上值即可。
String str="Update 表名 set 字段=? where 字段=?;"
这样我们就讲完了java用JDBC的方式连接mysql数据库,如果有错误欢迎指出ヾ(●︎´ε `●︎ )ゞ