JDBC和Java Web 没有直接关系,非web项目一样使用。
JDBC-Java DataBase Connectivity ,Java数据基础连接是标准的Java访问数据库的API。JDBC定义了数据库的连接,SQL语句的执行以及查询结果集的遍历等。
JDBC 把这些操作定义为接口,位于包java.sql下面。
1、 数据库连接常规流程
六步走
加载驱动
建立连接
准备SQL语句
执行SQL语句
处理结果
断开连接
1.1 加载驱动
jar包引进来
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
1.2 简单demo
最核心的信息时,你要知道每个版本的数据库用什么连接,URL是什么,然后就是账号密码了。
package com.wht.demo.util;
import java.sql.*;
/**
* 简单学习JDBC
*
* @author JDIT
*/
public class JdbcUtils {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
String sql = "select *from t_emp";
JdbcUtils.query(sql);
}
public static Connection getConnection() throws ClassNotFoundException, SQLException {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/dev?serverTimezone=GMT%2B8";
String user = "dev";
String password = "hcgk*2020";
//2.建立连接
Connection connections = DriverManager.getConnection(url, user, password);
//返回连接对象
return connections;
}
/**
* 简单查询
* @param query
* @throws SQLException
* @throws ClassNotFoundException
*/
public static void query(String query) throws SQLException, ClassNotFoundException {
//获取connection对象
Connection connection = JdbcUtils.getConnection();
//3.准备SQL语句
PreparedStatement pStatement = connection.prepareStatement(query);
//4.执行SQL语句
ResultSet resultSet = pStatement.executeQuery();
//检索此 ResultSet对象的列的数量,类型和属性。
ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
//返回此 ResultSet对象中的列数。
int column = resultSetMetaData.getColumnCount();
System.out.println("序号" + "\t" + "姓名" + "\t" + "年龄" + "\t" + "课程");
//5.处理结果遍历要查询的数据
while (resultSet.next()) {
//遍历行数
for (int i = 1; i <= column; i++) {
System.out.print(resultSet.getObject(i) + "\t");
}
System.out.println();
}
//6.关闭连接
resultSet.close();
pStatement.close();
connection.close();
}
}
1.3 运行结果
1 1 提莫 2020-01-14 15800.00
2 2 火男 2020-01-02 19000.00
3 1 火女 2020-01-09 22000.00
4 2 德玛西亚 2020-01-02 43000.00
5 4 妲己 2020-01-16 28000.00
6 5 公子小白 2020-01-01 44000.00
7 2 西西 2020-01-05 15000.00
8 2 西西 2020-01-05 15000.00
1.4 看下用了哪些对象
- com.mysql.jdbc.Driver
- java.sql.Connection
- java.sql.PreparedStatement
- java.sql.ResultSet
- java.sql.ResultSetMetaData
1.5 小结
- jdbc是不安全
- 事务管理是核心,反复创建连接池和关闭连接池是不合适的。
- jdbc sql拼接非常麻烦,容易出错
- jdb是持久层框架的基础
2 各种数据的连接
2.1 oracle
driverClass:oracle.jdbc.driver.OracleDriver
url:jdbc:oracle:thin:@127.0.0.1:1521:dbname
2.2 mysql
#注意: 高版本的 mysql 需要显示指定 useSSL
driverClass:com.mysql.jdbc.Driver
url:jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=true
如果用到其它的再补充。