目录
第一种方式连接数据库:
静态加载驱动,灵活性差,依赖高
package jdbc_002;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import com.mysql.cj.jdbc.Driver;
public class jdbc_demo2 {
public static void main(String[] args) throws SQLException { // throws SQLException 抛出异常
// 使用静态加载驱动,灵活性差,依赖性高
Driver driver = new com.mysql.cj.jdbc.Driver();
// 获取链接
String url = "jdbc:mysql://localhost:3306/school";
// 将用户名 和 密码 放入prop 对象
Properties prop = new Properties();
prop.setProperty("user", "root"); // 用户名
prop.setProperty("password", "xfy200203"); // 密码
// 获取数据库连接对象
Connection conn = driver.connect(url, prop);
// 定义sql语句
String sql = "insert into tb_wz values(null,'关羽','男','千军万马','T00001')";
// 获取指向sql的对象
Statement stat = conn.createStatement();
// 执行sql语句
int count = stat.executeUpdate(sql);
// 处理查询结果集
System.out.println(count>0?"添加数据成功!":"添加数据失败!");
// 释放资源
stat.close();
conn.close();
}
}
//关闭资源时,先开的后关闭。
第二种连接数据库的方式:
使用反射机制,加载Driver驱动,通过Properties来获取连接对象
package jdbc_002;
import java.lang.reflect.InvocationTargetException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import com.mysql.cj.jdbc.Driver;
public class jdbc_demo2 {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException,SQLException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { // throws SQLException 抛出异常
// 使用反射机制,加载Driver驱动
Class<?> aClass = Class.forName("com.mysql.cj.jdbc.Driver");
Driver driver = (Driver)aClass.getDeclaredConstructor().newInstance();
// 获取链接
String url = "jdbc:mysql://localhost:3306/school";
// 将用户名 和 密码 放入prop 对象
Properties prop = new Properties();
prop.setProperty("user", "root"); // 用户名
prop.setProperty("password", "xfy200203"); // 密码
// 获取数据库连接对象
Connection conn = driver.connect(url, prop);
// 定义sql语句
String sql = "insert into tb_wz values(null,'关羽','男','千军万马','T00001')";
// 获取指向sql的对象
Statement stat = conn.createStatement();
// 执行sql语句
int count = stat.executeUpdate(sql);
// 处理查询结果集
System.out.println(count>0?"添加数据成功!":"添加数据失败!");
// 释放资源
stat.close();
conn.close();
}
}
第三种连接数据库的方式:
使用反射机制,加载Driver驱动,并通过创建变量形式,
package jdbc_002;
import java.lang.reflect.InvocationTargetException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.cj.jdbc.Driver;
import java.sql.Statement;
public class jdbc_demo2 {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException, SQLException {
// 使用反射机制,加载Driver驱动
Class<?> aClass = Class.forName("com.mysql.cj.jdbc.Driver");
Driver driver = (Driver)aClass.getDeclaredConstructor().newInstance();
// 创建 url、user、password
String url = "jdbc:mysql://localhost:3306/school";
String user = "root";
String password = "xfy200203";
DriverManager.registerDriver(driver);// 注册驱动
// 获取数据库连接对象
Connection conn = DriverManager.getConnection(url,user,password);
// 定义sql语句
String sql = "insert into tb_wz values(null,'元哥','男','秘术·突','T00001')";
// 获取执行sql语句变量 stat
Statement stat = conn.createStatement();
// 执行sql语句
int count = stat.executeUpdate(sql);
// 处理查询结果集
System.out.println(count>0?"添加数据成功!":"添加数据失败!");
// 释放资源
stat.close();
conn.close();
}
}
第四种方式连接数据库:
使用Jdbc底层源码自动加载Driver驱动
package jdbc_002;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class jdbc_demo2 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 使用反射机制,加载Driver驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 创建 url、user、password
String url = "jdbc:mysql://localhost:3306/school";
String user = "root";
String password = "xfy200203";
// 获取数据库连接对象
Connection conn = DriverManager.getConnection(url,user,password);
// 定义sql语句
String sql = "insert into tb_wz values(null,'元哥','男','秘术·突','T00001')";
// 获取执行sql语句变量 stat
Statement stat = conn.createStatement();
// 执行sql语句
int count = stat.executeUpdate(sql);
// 处理查询结果集
System.out.println(count>0?"添加数据成功!":"添加数据失败!");
// 释放资源
stat.close();
conn.close();
}
}
第五种连接数据库方式:
使用外部导入配置文件方式,降低依赖
package jdbc_002;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class jdbc_demo2 {
public static void main(String[] args) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException, FileNotFoundException, IOException {
// 导入配置文件
Properties properties = new Properties();
properties.load(new FileInputStream("src\\mysql.Properties"));
String url = properties.getProperty("url");
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String driver = properties.getProperty("driver");
// 注册驱动
Class.forName(driver);
// 获取连接
Connection conn = DriverManager.getConnection(url,user,password);
// 定义sql语句
String sql = "insert into tb_wz values(null,'杨戬','男','根源之目','T00000')";
// 获取执行sql语句的对象
Statement stat = conn.createStatement();
// 执行sql
int count = stat.executeUpdate(sql);
// 获取执行结果集
System.out.println(count>0?"添加数据成功!":"添加数据失败!");
// 释放资源
stat.close();
conn.close();
}
}
配置文件:
user=root
password=xfy200203
url=jdbc:mysql://localhost:3306/school
driver=com.mysql.cj.jdbc.Driver
这里注意:配置文件的添加必须创建在src目录下,这样引用I/O流才能正确