JDBC基本介绍
基本介绍
好处
直接访问数据库:
使用jdbc访问数据库——面向接口编程
JDBC模拟
/** * @author 紫英 * @version 1.0 * @discription 模拟JDBC */ public interface JDBCInterface { //连接方法 public Object getConnection(); // crud方法 public void crud(); // 关闭连接 public void close(); } ================================== /** * @author 紫英 * @version 1.0 * @discription mysql实现jdbc接口 */ public class MysqlJdbcImpl implements JDBCInterface { @Override public Object getConnection() { System.out.println("mysql 链接"); return null; } @Override public void crud() { System.out.println("mysql增删改查"); } @Override public void close() { System.out.println("mysql增删改查"); } } ================================= /** * @author 紫英 * @version 1.0 * @discription oracle实现jdbc接口 */ public class OracleJdbcImpl implements JDBCInterface{ @Override public Object getConnection() { System.out.println("oracle 链接"); return null; } @Override public void crud() { System.out.println("oracle crud"); } @Override public void close() { System.out.println("oracle close"); } } =============================== /** * @author 紫英 * @version 1.0 * @discription 测试类 */ public class JdbcTest { public static void main(String[] args) { JDBCInterface jdbcInterface = new MysqlJdbcImpl(); // 接口的多态 jdbcInterface.getConnection(); jdbcInterface.crud(); jdbcInterface.close(); jdbcInterface = new OracleJdbcImpl(); jdbcInterface.getConnection(); jdbcInterface.crud(); jdbcInterface.close(); } }
JDBC API
- java.sql接口
- javax.sql接口
程序编写步骤
JDBC快速入门案例
1.先将mysql的jar包添加到项目中
在项目下创建一个文件夹比如 lib,将 mysql.jar 拷贝到该目录下,点击 add to project ..加入到项目中
2.代码实现
package com.recorder.jdbc; import com.mysql.jdbc.Driver; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; /** * @author 紫英 * @version 1.0 * @discription Jdbc快速入门案例 */ public class Jdbc01 { public static void main(String[] args) throws SQLException { //1. 注册驱动,创建 driver 对象 Driver driver = new Driver();//new com.mysql.jdbc.Driver.v //2. 得到连接 // (1) jdbc:mysql:表示协议,通过 jdbc 的方式连接 mysql(写死的)// (2) localhost 主机,也可以是 ip 地址 // (3) 3306 表示 mysql 监听的端口 // (4) db01 连接到 mysql dbms 的哪个数据库 // (5) mysql 的连接本质就是前面学过的 socket 连接 String url = "jdbc:mysql://localhost:3306/db01";//要链接的数据库地址 //将 用户名和密码放入到 Properties 对象 Properties properties = new Properties(); //user 和 password 是规定好,后面的值根据实际情况写 properties.setProperty("user","root"); properties.setProperty("password","123456"); Connection connect = driver.connect(url, properties); //连接数据库
//3. 执行 sql //statement 用于执行静态 SQL 语句并返回其生成的结果的对象 Statement statement = connect.createStatement(); String sql = "insert into Dog values(null,'大黄')"; // 如果是 dml 语句,返回的就是影响行数 int i = statement.executeUpdate(sql); System.out.println(i > 0 ? "添加成功" : "添加失败"); //4. 关闭连接资源 statement.close(); connect.close(); } }
获取数据库连接 5 种方式
第一种
缺点:静态加载,灵活性差,依赖性强
第二种方法
优点:使用反射加载Driver类,动态加载,更加灵活减少依赖性,还可以读取配置文件中的数据
第三种方法
使用DriverManager替代driver进行统一管理,扩展性更好,无需创建properties对象,更加灵活
第四种方法(使用最多)
第五种方式(第四种的改进,推荐使用)
ResultSet
Statement
SQL注入
PreparedStatement
JDBCAPI梳理