连接不同数据库需牢记的3点不同(若更换数据库只需修改这3个地方)
a.导入不同的数据库驱动jar包
b.加载不同的数据库驱动类
c.连接不同的数据库连接字符串
注意:
增删改(无需用到rs):executeUpdate()方法,
查询(要用到rs):executeQuery()方法
应用实例:在main方法中,使用update方法实现对数据库的增删改query方法实现对数据库的查询
JDBCDemo.java
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCDemo {
private static final String URL = "jdbc:mysql://127.0.0.1:3306/basketball";
private static final String USERNAME = "root";
private static final String PWD = "123abc";
private static final String DRIVER="com.mysql.jdbc.Driver";
//对数据库的增删改:executeUpdate()
public static void update() {// 增删改
Statement stmt = null;
Connection con = null;
try {
// a.导入驱动包:Class.forName()
Class.forName(DRIVER);
System.out.println("成功加载驱动!");
// b.与数据库建立连接:DriverManager.getConnection()
con = DriverManager.getConnection(URL,USERNAME,PWD);
System.out.println("连接数据库成功!");
//c.获取数据对象:con.CreateStatement()
stmt = con.createStatement();
System.out.println("获取数据对象成功!");
// d.操作数据对象:stmt.executeUpdate()
// 增删改:executeUpdate()方法,查询:execute()方法
//增加数据
//String sql = "insert into team values(34,'奥尼尔',40)";
//修改数据
//String sql="update team set t_name='库里' where t_age=20";
//删除数据
String sql="delete from team where t_id=30";
stmt.executeUpdate(sql);
System.out.println("数据对象的操作成功!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (stmt != null)
stmt.close();
if (con != null)
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//对数据库的查询:executeQuery()
public static void query() {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
try {
//1.加载具体的驱动类:Class.forName()
Class.forName(DRIVER);
System.out.println("加载驱动类成功!");
//2.连接数据库:DriverManager.getConnection()
con=DriverManager.getConnection(URL,USERNAME,PWD);
System.out.println("连接数据库成功!");
//3.获取操作数据库对象:con.createStatement()
stmt=con.createStatement();
System.out.println("获取操作数据库对象成功!");
//4.查询数据:stmt.executeQuery()
String sql="select * from team";
//5.返回到结果集rs
// 增删改[无需用到rs]:executeUpdate()方法,查询[要用到rs]:execute()方法
rs=stmt.executeQuery(sql);
System.out.println("查询数据成功!");
//6.获取数据:rs.next(),rs.getXXX()
while(rs.next()!=false) {
//rs.next():判断该行是否有数据,返回值为true或false
int id=rs.getInt("t_id");
//rs.getInt():获取数据表对应行的指定字段值的数据
String name=rs.getString("t_name");
int age=rs.getInt("t_age");
System.out.println(id+"---"+name+"---"+age);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
//关闭jdbc三幻神(类似与栈的顺序:后开先关)
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(con!=null) con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
//增删改
//update();
//查询
query();
}
}
测试截图