JDBC基本使用流程:
1.导入jar包:
导入mysql-connector-java-verson-bin.jar至lib文件夹,操作 File-->Project Structure-->Modules-->Dependencies 添加路径。
2.加载驱动:
Driver加载jdbc类到jvm。
Class.forName("com.mysql.cj.jdbc.Driver");
在mysql的实现类中声明了如下操作,使我们可以省略注册驱动的步骤:
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
3.创建连接:
url:要连接的数据库地址
user:数据库用户名
password:数据库密码
作用:可创建与指定数据库的连接并返回对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","mypassword");
4.对数据库进行操作:
- 创建sql命令:
遵循sql语法。
String sql = "insert into user_table values('FF','aaa',1000)";
- 创建sql命令对象:
声明想要操作的数据库。
PreparedStatement ps = conn.prepareStatement(sql);
- 执行sql命令:
int x = ps.executeUpdate();
System.out.println(x);
若执行成功返回1,否则返回0.
另:
具体操作时可将需要的基本信息声明在配置文件.properties中:
user=root
password=mypassword
url=jdbc:mysql://localhost:3306/test
driverClass=com.mysql.cj.jdbc.Driver
在使用时读取配置文件:
// 读取配置文件中的4个基本信息,建议封装
InputStream is = ConnectionTest.class. // 类的反射
getClassLoader().getResourceAsStream("Connection/jdbc.properties"); // name:配置文件路径
Properties pros = new Properties(); // properties为容器
pros.load(is);
String user = pros.getProperty("user");
String password = pros.getProperty("password");
String url = pros.getProperty("url");
String driverClass = pros.getProperty("driverClass");
这样做的好处:
1、实现了数据与代码的分离解耦。 2、如果需要需改配置文件信息,可以避免程序重新打包。
示例:
package Connection;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class ConnectionTest {
//创建数据库连接的一般方法
public static void main(String[] args) throws ClassNotFoundException, SQLException, IOException {
//1、加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2、获取连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",
"root","mypassword");
//3、创建sql命令
String sql = "insert into user_table values('FF','aaa',1000)";
//4、创建sql命令对象
PreparedStatement ps = conn.prepareStatement(sql);
//5、执行sql命令
int x = ps.executeUpdate();
System.out.println(x);
}
//可将数据库需要的基本信息声明在配置文件中
/*
好处:1、实现了数据与代码的分离解耦。
2、如果需要需改配置文件信息,可以避免程序重新打包。
*/
public static void t2() throws IOException, ClassNotFoundException, SQLException {
//1.读取配置文件中的4个基本信息,建议封装
InputStream is = ConnectionTest.class. // 类的反射
getClassLoader().getResourceAsStream("Connection/jdbc.properties");
Properties pros = new Properties(); // properties为容器
pros.load(is);
String user = pros.getProperty("user");
String password = pros.getProperty("password");
String url = pros.getProperty("url");
String driverClass = pros.getProperty("driverClass");
//2.加载驱动
Class.forName(driverClass);
//3.获取连接
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(conn);
}
}