JDBC
JDBC如果链接数据库,注意一下数据库驱动
驱动下载地址:https://downloads.mysql.com/archives/c-j/
mvn地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java
Maven依赖
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
用法
1. 加载驱动
/*
* 常规加载驱动语法
* DriverManager.registerDriver(new com.mysql.jdbc.Driver());
*
* 固定写法,这个写法与 注解和反射 知识有关
*/
Class.forName("com.mysql.jdbc.Driver");
2. 用户信息和url
/*
* useUnicode=true 使用中文编码
* characterEncoding=utf8 字符集使用UTF-8
* useSSL=true 使用安全的链接
* serverTimezone=UTC 8版本的mysql需要加上这个属性
*/
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false";
jdbc:mysql://主机名:端口号/数据库名?useUnicode=true&characterEncoding=utf8&useSSL=false
mysql 8.0以上版本参数有变动!!!
3. 连接数据库,返回一个数据库对象 Connection
Connection connection = DriverManager.getConnection(url, username, password);
数据库对象可以操作数据库级别的东西,例如事务的提交和回滚等
4. 获得执行SQL的对象 Statement 不安全!!!
ResultSet resultSet = statement.executeQuery(sql); //查询操作,返回结果集 ResultSet
int rows = statement.executeUpdate(); //插入,更新,删除都可以用这个,返回一个受影响的行数
statement.execute(sql); //可以操作任何语句
int[] rowsArray = statement.executeBatch(sql1,sql2); //同时操作多个语句
5. 获得返回的结果集 Resultset
resultSet.getObject(); //在不知道字段类型的情况下使用,如果知道,则使用指定类型
resultSet.getString(); //varchar
resultSet.getInt(); //int
resultSet.getFloat(); //float
resultSet.getDouble(); //double
结果遍历和指针
resultSet.next() //向后走
resultSet.previous() //向前走
resultSet.absolute() //移动到指定行
6. 释放连接
resultSet.close();
statement.close();
connection.close();
先开后关原则。占内存,一定要关掉