接口是一个类的父类
JDBC是接口,而JDBC驱动才是接口的实现,没有驱动无法完成数据库连接!每个数据库厂商都有自己的驱动,用来连接自己公司的数据库。
当然还有第三方公司专门为某一数据库提供驱动,这样的驱动往往不是开源免费的!
编码, 使用jdk提供的jdbc接口(位于java.sql包),
核心接口: java.sql.Connection(连接)
java.sql.Statement(发送sql,通知数据库执行)
java.sql.ResultSet(获取查询sql的结果集)
一个核心类: java.sql.DriverManager(数据库驱动管理器), 得到数据库的连接对象
添加第三方数据库驱动ja
编码, 使用jdk提供的jdbc接口(位于java.sql包),
核心接口: java.sql.Connection(连接)
java.sql.Statement(发送sql,通知数据库执行)
java.sql.ResultSet(获取查询sql的结果集)
一个核心类: java.sql.DriverManager(数据库驱动管理器), 得到数据库的连接对象

>1. 项目中导入数据库驱动jar
>2. 加载启动类
>3. 得到连接对象Connection
>4. 创建Statement对象
>5. 编写sql语句(java普通字符串)
>6. 执行之
>7. 如果增删改, 得到结果: 受影响行数, 如果查询,得到结果集(ResultSet), 解析ResultSet得到数据
>8. 关闭资源



- import java.sql.*;
- import java.util.Date;
- import java.util.Scanner;
-
- /**
- * 查询
- */
- public class Demo2 {
- public static void main(String[] args) {
- /*
- 1. 加载启动类
- 2. 得到连接对象Connection
- 3. 创建Statement对象
- 4. 编写sql语句(java普通字符串)
- 5. 执行之
- 6. 如果增删改, 得到结果: 受影响行数, 如果查询,得到结果集(ResultSet), 解析ResultSet得到数据
- 7. 关闭资源
- */
- Connection conn = null;
- Statement statement = null;
- ResultSet resultSet = null;
- try {
- Class.forName("com.mysql.jdbc.Driver");
- String url = "jdbc:mysql://localhost:3306/test2?useUnicode=true&characterEncoding=utf8&useSSL=false";
- conn = DriverManager.getConnection(url, "root", "123");
- statement = conn.createStatement();
- System.out.print("请输入要查询员工姓名:");
- Scanner input = new Scanner(System.in);
- String name = input.next();
- String sql = "select * from emp where ename = '"+name+"'";
- System.out.println(sql);
- resultSet = statement.executeQuery(sql);
-
- //循环获取数据, 一行一行的获取
- //一定要先调用next()
- while(resultSet.next()){
- //获取这一行的单元格中数据
- // getXxx(int 列序号): 从1开始 Xxx: 数据类型
- int empNo = resultSet.getInt(1);
- String ename = resultSet.getString(2);
- String job = resultSet.getString(3);
- int mgr = resultSet.getInt(4);
- Date hiredate = resultSet.getDate(5);
- double sal = resultSet.getDouble(6);
- double comm = resultSet.getDouble(7);
- int deptNo = resultSet.getInt(8);
-
- System.out.println(empNo+","+ename+","+job+","+mgr+","+hiredate+","+sal+","+comm+","+deptNo);
- }
-
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }finally{
- //倒序关
- try {
- if(resultSet != null) {
- resultSet.close();
- }
- if(statement != null) {
- statement.close();
- }
- if(conn != null) {
- conn.close();
- }
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
- }
- }
- }
- import javax.xml.bind.SchemaOutputResolver;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.Scanner;
-
- /**
- * 使用jdbc操作数据
- */
- public class Demo1 {
- public static void main(String[] args) {
- /*
- 1. 加载启动类
- 2. 得到连接对象Connection
- 3. 创建Statement对象
- 4. 编写sql语句(java普通字符串)
- 5. 执行之
- 6. 如果增删改, 得到结果: 受影响行数, 如果查询,得到结果集(ResultSet), 解析ResultSet得到数据
- 7. 关闭资源
- */
- Connection conn = null;
- Statement statement = null;
-
- try {
- //1. 加载启动类 反射 核心: Class
- Class.forName("com.mysql.jdbc.Driver");
-
- //2.得到连接对象Connection 通过DriverManager的静态方法getConnection()
- String url = "jdbc:mysql://localhost:3306/test2?useUnicode=true&characterEncoding=utf8&useSSL=false";
- conn = DriverManager.getConnection(url, "root", "123");
- //System.out.println(conn);
- System.out.println("与数据库服务器连接上了...");
-
- //3.创建Statement对象
- statement = conn.createStatement();
-
- //4.编写sql语句
- //System.out.print("请输入要删除的员工编号:");
- System.out.print("请输入要加薪的员工编号:");
- Scanner input = new Scanner(System.in);
- int empno = input.nextInt();
-
- //删除
-
- //String sql ="delete from emp where empno = "+empno;
-
- String sql ="update emp set sal = sal + 500 where empno = "+empno;
-
- //5.执行之 执行增删改sql: Statement的 int executeUpdate(sql)
- // 执行查询sql: Statement的 ResultSet executeQuery(sql)
- int rs = statement.executeUpdate(sql);
- if(rs > 0){
- //System.out.println("删除成功");
- System.out.println("加薪成功");
- }
-
-
- } catch (ClassNotFoundException e) {//Driver类找不到
- //出现原因: 1. 驱动jar没到导入 2. 驱动类包.类名字符串写错
- e.printStackTrace();
- } catch (SQLException throwables) {
- //出现原因: 1. 数据库服务没有开启 2. url写错 3. 用户名错误 4.密码错误
- throwables.printStackTrace();
- }finally{
- //倒序关
- try {
- if(statement != null) {
- statement.close();
- }
- if(conn != null) {
- conn.close();
- }
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
- }
-
- }
-
- }