使用java中的JDBC连接数据库(以mysql数据库为例)
方法一:使用Driver接口实现连接
步骤:
① 创建一个Driver实现累的对象
Driver driver = new Driver();
②准备连接数据库的基本信息:url、user、password
(若连接mysql数据库时产生版本不匹配的问题,这里有参考:https://editor.csdn.net/md/?articleId=118525689)
String url = "jdbc:mysql://127.0.0.1:3306/test1?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL";
Properties info = new Properties();
info.put("user","root");
info.put("password", "111111");
③通过Driver接口的connect(url,info)获取数据库连接
Connection conn = driver.connect(url,info);
④测试连接
System.out.println(conn);
方法二:使用ManageDriver实现连接
步骤:
①加载驱动 参数写驱动包的路径(最好用try-catch捕获异常)
Class.forName("com.mysql.cj.jdbc.Driver");
②获取连接
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL", "root","111111");
说明:DriverManager的getConnection()方法对应着url,user,password三个参数。
关于url的问题:因为我的mysql是8.0以上的版本,Mysql驱动与数据库字符集设置不匹配(导致系统环境变量受影响),所以在导入相匹配的jre文件后,要修改url,即在数据库名(test)后添加
?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL
③测试连接
System.out.println(conn);
方法三:创建通用的数据库连接(用到反射)
思路:
把数据库驱动Driver实现累的全类名、url、user、password放入一个配置文件中, 通过配置文件的方式实现和具体的数据库解耦
步骤:
①在src包下创建jdbc.properties文件(名可以自己取),里面配置好驱动driver、url、user、password信息(到时候可以通过更改这些信息实现对不同数据库的连接)
driver = com.mysql.jdbc.Driver
jdbcUrl = jdbc:mysql://127.0.0.1:3306/test1?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL
user = root
password = 111111
②读取类路径下的jdbc.properties文件
String driverClass = null;
String jdbcUrl = null;
String user = null;
String password = null;
InputStream is =getClass().getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(is);
driverClass = properties.getProperty("driver");
jdbcUrl = properties.getProperty("jdbcUrl");
user = properties.getProperty("user");
password = properties.getProperty("password");
③按“方法一”步骤进行连接
Driver driver = (Driver) Class.forName(driverClass).newInstance();
Properties info = new Properties();
info.put("user", user);
info.put("password", password);
Connection conn = driver.connect(jdbcUrl, info);
return conn;
⑤测试连接
@Test
public void testGetConnection() throws Exception{
Connection conn = this.getConnection();
System.out.println(conn);
}
OK,数据库连接pass