JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。

数据库驱动
Oracle数据库:
驱动程序包名:ojdbc14.jar
驱动类的名字:oracle.jdbc.driver.OracleDriver
JDBC URL:jdbc:oracle:thin:@dbip:port:databasename
说明:驱动程序包名有可能会变
JDBC URL中各个部分含义如下:
dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。
port –为数据库的监听端口,需要看安装时的配置,缺省为1521。
databasename –为数据库的SID,通常为全局数据库的名字。
SQL Server数据库
驱动程序包名:msbase.jar mssqlserver.jar msutil.jar
驱动类的名字:com.microsoft.jdbc.sqlserver.SQLServerDriver
JDBC URL:jdbc:microsoft:sqlserver://dbip:port;DatabaseName=databasename
说明:驱动程序包名有可能会变
JDBC URL中各个部分含义如下:
dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。
port –为数据库的监听端口,需要看安装时的配置,缺省为1433。
databasename –数据库的名字。
MySQL数据库
驱动程序包名:mysql-connector-java-3.1.11-bin.jar
驱动类的名字:com.mysql.jdbc.Driver
JDBC URL:jdbc:mysql://dbip:port/databasename
说明:驱动程序包名有可能会变
JDBC URL其中各个部分含义如下:
dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。
port –为数据库的监听端口,需要看安装时的配置,缺省为3306。
databasename –数据库的名字。
JDBC连接步骤
1.加载驱动
2.连接数据库
3.获取执行sql的对象, Statement
4.执行Sql, 查看返回结果
5.释放连接
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import static java.lang.Class.forName;public class TestJDBC {public static void main(String[] args) throws SQLException, ClassNotFoundException {//1.加载驱动Class.forName("com.mysql.jdbc.Driver"); //固定写法,加载驱动//2.连接数据库String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true";String username = "root";String password = "123456";Connection connection = DriverManager.getConnection(url,username,password);//3.获取执行sql的对象, StatementStatement statement = connection.createStatement();//4.执行Sql, 查看返回结果String sql = "Select * from users";ResultSet resultSet = statement.executeQuery(sql);while(resultSet.next()){System.out.println(resultSet.getObject("id"));}//5.释放连接resultSet.close();statement.close();connection.close();}}
Statement对象
查询操作
con.executeQuery: 用于产生单个结果集的语句,例如 SELECT 语句。
更新操作
executeUpdate :用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQLDDL(数据定义语言)语句
execute:用于执行返回多个结果集、多个更新计数或二者组合的语句
PrepaedStatement对象
继承自Statement, 能防止SQL注入的问题
本质,将传入的参数整个当人一个字符串对待, 有转义符直接修改
JDBC操作事务
1.开启事务
2.一组业务执行完毕, 提交事务
3.可以在catch语句中显示的定义,回滚语句, 但时期默认失败就会回滚
