ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql数据库编程---JDBC增删改查

2021-10-25 14:30:27  阅读:216  来源: 互联网

标签:JDBC java MysqlDataSource 改查 --- dataSource statement sql import


  • 数据库编程是指通过代码实现一个MYSQL客户端,同样是通过网络和服务器进行交互,数据库会给我们提供一组API来方便实现

API:application programming interface ,提供了一组函数/类/或方法,让用户直接去使用,有时可称为接口。

  • MYSQL,ORACLE,SQL SERVER 等数据库都有不同的API,通过适配器(adapter)把不同种类的API转成JDBC统一的API 

适配器(adapter):java中称为数据库驱动程序,不同数据库需要不同的驱动程序,java中的数据库驱动程序是一个独立的“jar包”,一堆二进制文件的集合。

  • maven仓库:jar包的应用商店,在这里下载不同数据库对应的jar包,注意版本对应
  • 导入jar包:  
  1. 在IDEA的工程中创建一个目录,把jar包拷贝进去。
  2. 配置项目的一些属性,让项目能够找到jar包。
  3. JDBC中以DataSourse API为主。 
  • 具体的程序实现:  
  1.  先创建Database对象。
  2. 创建Connection对象,和数据库建立连接(相当于打开了mysql客户端,输入了密码,连接成功)。
  3. 拼装SQL语句,用到了prepare,Statement对象(客户端输入sql语句)。
  4. 执行SQL语句(在客户端敲下回车)。
  5. 查看服务器返回的结果(客户端显示结果)。
  6. 关闭连接,释放资源,后创建的先释放(退出客户端)。
  • 程序 
  1.  JDBC插入数据
package jar1024;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

//JDBC插入数据
public class TestJDBC {
    public static void main(String[] args) throws SQLException {
        //1.先创建DataSource对象(DataSource对象生命周期应该是要跟随整个程序)
        DataSource dataSource = new MysqlDataSource();
        //接下来针对datasource进行配置,以便后面能顺利访问数据库
        //主要配置三个方面信息,URL,User,Password 需要向下转型
        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jar1024?characterEncoding=utf-8&useSSL=true");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");

        //2.创建Connection对象,和 数据库建立连接,就可以和数据库进行后续的数据传输了
        //Connection的包是java.sql
        //如果不正常就会抛出SQLexception异常
        //connection生命周期较短,每次请求可创建一个新的connection
        Connection connection = dataSource.getConnection();

        //3.拼装sql语句 ,用到prepare,Statement 对象
        int id = 1;
        String name = "cao";
        int classId = 10;
        //?是占位符,可以把具体的变量的值替换到?位置
        String sql = "insert into student values(?,?,?)";
        PreparedStatement statement = connection.prepareStatement(sql);
        //1,2,3相当于?的下标
        statement.setInt(1,id);
        statement.setString(2,name);
        statement.setInt(3,classId);
        System.out.println("statement" + statement);

        //4.拼装好之后,执行SQL
        //insert  delete  update 都使用executeUpdate 方法来执行
        //select 就使用executeQuery来执行
        //返回值表示此次操作修改了多少行
        int ret = statement.executeUpdate();
        System.out.println("ret" + ret);

        //5.执行完毕后,关闭释放相关资源
        //一定是后创建的先释放,注意顺序
        statement.close();
        connection.close();


    }
}

2. JDBC查找

package jar1024;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


//JDBC查找
public class TestJDBCSelect {
    public static void main(String[] args) throws SQLException {
        //1.先创建DataSource对象
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jar1024?characterEncoding=utf-8&useSSL=true");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");

        //2.创建Connection对象,和 数据库建立连接,就可以和数据库进行后续的数据传输了
        Connection connection = dataSource.getConnection();

        //3.拼装sql语句 ,用到prepareStatement 对象
        String sql = "select * from student";
        PreparedStatement statement = connection.prepareStatement(sql);

        //4.拼装好之后,执行SQL
        ResultSet resultSet = statement.executeQuery();

        //5.遍历结果集,遍历过程类似于使用迭代器遍历集合类
        //结果集相当于一张表,每张表有很多行,每一行是一条记录(又包含很多列)
        //next()一方面判定当前是否存在下一行,另一方面如果存在下一行就获取到这一行
        //可以直观地把resultSet对象想象成是一个光标
        while(resultSet.next()) {
            //resultSet的光标指向当前行,就可以把当前行中的列数据获取到
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            int classId = resultSet.getInt("classId");
            System.out.println(" id: " + id + " name: " + name + " classId: " + classId);
        }

        //6.执行完毕后,关闭释放相关资源
        //一定是后创建的先释放,注意顺序
        resultSet.close();
        statement.close();
        connection.close();


    }
}

3. JDBC删除

package jar1024;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;


//JDBC删除
public class TestJDBCDelete {
    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要删除的学生姓名: ");
        String name = scanner.next();

        //1.先创建DataSource对象
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jar1024?characterEncoding=utf-8&useSSL=true");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");

        //2.创建Connection对象,和 数据库建立连接,就可以和数据库进行后续的数据传输了
        Connection connection = dataSource.getConnection();

        //3.拼装sql语句 ,用到prepareStatement 对象
        String sql = "delete from student where name = ?";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setString(1,name);

        //4.拼装好之后,执行SQL
        int ret = statement.executeUpdate();
        if (ret == 1) {
            System.out.println("删除成功");
        }else{
            System.out.println("删除失败");
        }

        //5.关闭并释放资源
        statement.close();
        connection.close();
    }
}

4. JDBC修改

package jar1024;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;


//JDBC修改
public class TestJDBCUpdate {
    public static void main(String[] args) throws SQLException {
        //让用户输入要修改id为n的同学姓名
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要修改的学生id: ");
        int id = scanner.nextInt();
        System.out.println("请输入要修改的同学姓名: ");
        String name = scanner.next();

        //1.先创建DataSource对象
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jar1024?characterEncoding=utf-8&useSSL=true");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");

        //2.创建Connection对象,和 数据库建立连接,就可以和数据库进行后续的数据传输了
        Connection connection = dataSource.getConnection();

        //3.拼装sql语句 ,用到prepareStatement 对象
        String sql = "update student set name = ? where id = ?";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setString(1,name);
        statement.setInt(2,id);

        //4.拼装好之后,执行SQL
        int ret = statement.executeUpdate();
        if (ret == 1) {
            System.out.println("修改成功");
        }else{
            System.out.println("修改失败");
        }

        //5.关闭并释放资源
        statement.close();
        connection.close();

    }
}

 

 

 

 

 

 

 

标签:JDBC,java,MysqlDataSource,改查,---,dataSource,statement,sql,import
来源: https://blog.csdn.net/m0_60897224/article/details/120950942

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有