首先要加载数据库相应的驱动,以mysql为例 下载mysql的java驱动,例如 mysql-connector-java-8.0.1 这就是mysql的驱动,把它放到项目当中建立依赖,就可以使用相关API操作mysql数据库了
先来一个简单的使用示例(并不规范) public static void main(String[] args) throws ClassNotFoundException, SQLException { 从现在开始正式介绍jdbc
1.注册驱动(介绍三种方式)
由于只有先通过DriverManager注册驱动,才能获得数据库连接,所以第一步要先注册驱动 注册驱动的关键就是 DriverManager.registerDriver(所使用的数据库对应的驱动类); ①(推荐方式) Class.forName("com.mysql.jdbc.Driver"); 这种方式为什么能注册驱动呢?因为这行代码表示类加载器加载com.mysql.jdbc.Driver这个类,而加载这个了这类就要执行这个类的静态代码块,我们看这个类的静态代码块就会一目了然 public class Driver extends NonRegisteringDriver implements java.sql.Driver { 我们可以看到静态代码块中执行了注册驱动的代码 ② DriverManager.registerDriver(new com.mysql.jdbc.Driver());
这段代码其实注册了两次驱动,registerDriver方法本身就是注册驱动的关键代码,而方法中new的新对象又是Driver对象,Driver类一旦加载其静态代码块又注册一次驱动。因此产生了垃圾驱动,所以不推荐使用这种方式。(而且其实仅仅new出对象也注册了驱动,不需要使用registerDriver方法)
③ System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver");
这种方式为什么能像第一种方式一样注册驱动呢?因为DriverManager类会初始化,而在初始化的过程中会查询系统属性,如下 private static void loadInitialDrivers() { 这种方式可以同时注册多个驱动,只需要在setProperty方法的第二个参数中添加就好,多个驱动之间用冒号隔开。
2.建立连接
需要数据库url,用户名和密码才能建立连接
示例 String url="jdbc:mysql://localhost:3306/tdb?useSSL=false"; 注意url中localhost是默认主机名,3306是默认端口,如果你也是使用默认主机名和端口的话可以省略这部分让url写成String url =
"jdbc:mysql:///jdbc";(注意jdbc是数据库名字不是非要写jdbc)
url格式 JDBC:子协议://主机名:端口/数据库名?属性名=属性值&...
3.创建语句
示例 Statement statement=conn.createStatement(); Statement 对象用来承接sql语句
4.执行语句
示例 ResultSet resultSet=statement.executeQuery("SELECT * FROM tt"); 调用executeQuery方法执行sql语句获得结果集
5.处理结果
示例 while(resultSet.next()){ rs.next()代表移动到结果集的下一条记录 rs.getObject(1)获得第一项
6.释放资源
从后往前依次释放资源(数据库连接要尽量晚建立早释放,减小数据库压力)
resultSet.close(); |
|