package cn.usts.edu.jdbc;
import com.mysql.jdbc.Driver;
import org.junit.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* @author :fly
* @description: jdbc的使用步骤
* 1.加载数据库驱动
* 2.通过DriverManager获取数据库连接
* 3.执行sql
* 4.释放连接
* @date :2021/11/4 14:58
*/
public class JdbcDemo {
// 数据库连接方式1
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1.加载数据库驱动
//Class<?> aClass = Class.forName("com.mysql.jdbc.Driver");
Driver driver = new Driver();
// 2.获取数据库连接
// (1) jdbc:mysql 表示规定好的协议, 通过jdbc方式连接mysql
// (2) 3306: 表示数据库端口号
// (3) 127.0.0.1: 表示主机ip
// (4) mybatis: 表示mysql中的哪一个数据库
// (5) 数据库的本质连接就是socket连接
String url = "jdbc:mysql://localhost:3306/persons";
// (6) 用户名密码user和password是规定好的,不能写别的
Properties properties = new Properties();
properties.setProperty("user","root");
properties.setProperty("password","123321");
Connection connect = driver.connect(url, properties);
//3.执行sql
String sql = "insert into persons.per value ('小明',2,18)";
// 执行需要创建statement
Statement statement = connect.createStatement();
int rows = statement.executeUpdate(sql);// 返回生效行数
System.out.println(rows>0 ? "成功":"失败");
//4.释放连接
statement.close();
connect.close();
}
// 数据库连接方式2 动态加载更灵活
@Test
public void connect02() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
Class<?> aClass = Class.forName("com.mysql.jdbc.Driver");// 动态加载类
Driver driver = (Driver)aClass.newInstance();
String url = "jdbc:mysql://localhost:3306/persons";
Properties properties = new Properties();
properties.setProperty("user","root");
properties.setProperty("password","123321");
Connection connect = driver.connect(url, properties);
System.out.println("方式2"+connect);
}
// 方式3 DriverManager统一管理驱动
@Test
public void connect03() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
Class<?> aClass = Class.forName("com.mysql.jdbc.Driver");
Driver driver =(Driver) aClass.newInstance();
DriverManager.registerDriver(driver);//注册驱动
String url = "jdbc:mysql://127.0.0.1:3306/persons";
Properties properties = new Properties();
properties.setProperty("user","root");
properties.setProperty("password","123321");
Connection connection = DriverManager.getConnection(url, properties);// 建立连接
System.out.println("连接3=="+connection);
connection.close();
}
// 方式4 DriverManager统一管理驱动
@Test
public void connect04() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
Class<?> aClass = Class.forName("com.mysql.jdbc.Driver");
Driver driver =(Driver) aClass.newInstance();
// DriverManager.registerDriver(driver);//注册驱动 可以不用注册驱动,Driver的底层静态方法里有默认执行的注册
String url = "jdbc:mysql://127.0.0.1:3306/persons";
Properties properties = new Properties();
properties.setProperty("user","root");
properties.setProperty("password","123321");
Connection connection = DriverManager.getConnection(url, properties);// 建立连接
System.out.println("连接4=="+connection);
connection.close();
}
// 方式5 DriverManager统一管理驱动
@Test
public void connect05() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
// Class<?> aClass = Class.forName("com.mysql.jdbc.Driver"); // jdbc4+ 和 mysql5.1.6+ 就会自动到驱动包里自动加载驱动名,不过还是建议加上!!!
// Driver driver =(Driver) aClass.newInstance();
// DriverManager.registerDriver(driver);//注册驱动 可以不用注册驱动,Driver的底层静态方法里有默认执行的注册
String url = "jdbc:mysql://127.0.0.1:3306/persons";
Properties properties = new Properties();
properties.setProperty("user","root");
properties.setProperty("password","123321");
Connection connection = DriverManager.getConnection(url, properties);// 建立连接
System.out.println("连接5=="+connection);
connection.close();
}
}