- 驱动下载
- 导入包与IDEA配置
- Java连接数据库
- JDBC Connection
- 注册驱动
- Class.forName注册实现
- 建立连接
- 创建Statement对象
- 查询
- 关闭连接
- 连接数据库测试
- 完
Java连接MySQL需要下载驱动jar包
MySQL :: Download Connector/J
选择Platfrom Independent
免注册下载
解压得到mysql-connector-java-8.x.x.jar,放入%JAVA_HOME%/jre/lib/ext归档
IDEA选择项目结构
SDK导入jar包
为了方便数据库 *** 作,把IDEA也连上数据库,选择右边栏的数据库,MySQL模板将驱动添加进去,这里默认IDEA自带了一个,还是手动选择下载的驱动
添加连接
首先写入测试数据,之前配置过IDEA能连接数据库就很方便了
JDBC(Java Database Connectivity)是Java提供对数据库的API,其定义了一个java.sql.Driver接口负责数据库的连接。
注册驱动连接数据库需要先注册数据库驱动,Java通过java.sql.DriverManager来管理所有数据库的驱动注册。对于刚刚下载的MySQL驱动,它的类名是com.mysql.cj.jdbc.Driver,它是MySQL8+的驱动,而在低版本MySQL5的驱动是com.mysql.jdbc.Driver,前者向下兼容后者。加载该类就完成了注册
String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; Class.forName(JDBC_DRIVER);Class.forName注册实现
调用Class.forName()能够加载该类,这是利用反射加载一个类,追一下被加载的com.mysql.cj.jdbc.Driver
该类有一个静态代码块,被加载就会运行,用以注册驱动。
注册完成后要建立连接,调用之前提到的java.sql.DriverManager驱动注册管理器的方法获取连接
String URL = "jdbc:mysql://127.0.0.1:3306/testtest"; String USERNAME = "xxx"; String PASSWORD = "xxx"; Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
需要声明MySQL的URL,以及用户信息,URL的规则如下:
jdbc:mysql://{host::localhost}?[:{port::3306}][/{database}?][?<&,user={user},password={password},{:identifier}={:param}>]
使用的是jdbc协议,一般还可以添加属性,如:启用unicode字符集?useUnicode=true等
创建Statement对象建立连接后要声明执行语句,调用Connect的createStatement或是预处理prepareStatement方法获取
String sql = "select id,passwd from testtest"; // Statement state = conn.createStatement(sql); PreparedStatement pre = conn.prepareStatement(sql);查询
查询有三种
Statement.execute(); // 任意 Statement.executeQuery(); // 查询 Statement.executeUpdate(); // 增删改
查询结果以ResultSet结果集返回
ResultSet results = pre.executeQuery();
结果集支持迭代器的next方法,依次获取字段即可
while (results.next()){ System.out.println(results.getInt("id")); System.out.println(results.getString("passwd")); }关闭连接
用完要记得关闭
results.close(); pre.close(); conn.close();连接数据库测试
package DBMS; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class GetConnection { // 主协议jdbc 子协议mysql 数据库testtest static final String URL = "jdbc:mysql://127.0.0.1:3306/testtest"; static final String USERNAME = "xxx"; static final String PASSWORD = "xxx"; static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; public static void main(String[] args) throws Exception { Class.forName(JDBC_DRIVER); Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); String sql = "select id,passwd from testtest"; PreparedStatement pre = conn.prepareStatement(sql); ResultSet results = pre.executeQuery(); while (results.next()){ System.out.println(results.getInt("id")); System.out.println(results.getString("passwd")); } results.close(); pre.close(); conn.close(); } }完
欢迎在评论区留言,欢迎关注我的CSDN @Ho1aAs
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)