• 通过JDBC对Mysql数据库进行简单的增删改查


      Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。它JDBC是面向关系型数据库的。

        简单地说,就是用于执行SQL语句的一类Java API,通过JDBC使得我们可以直接使用Java编程来对关系数据库进行操作。通过封装,可以使开发人员使用纯Java API完成SQL的执行。

        准备工作:下载Mysql数据库对应的jar包并导入;

        Java连接MySQL的最新驱动包下载地址 :点击打开链接
        

        JDBC基本操作示例代码如下: 

    package JDBC;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class JDBCOperation {
    private Connection getConn()
    {
    String drive = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/test";//jdbc:mysql://localhost:3306/database name
    String username = "root";//用户名
    String password = "123456";//密码
    Connection conn = null;
    try{
    Class.forName(drive);//之所以要使用这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,
    conn = (Connection)DriverManager.getConnection(url, username, password);
    }catch(ClassNotFoundException e){
    e.printStackTrace();
    }catch(SQLException e){
    e.printStackTrace();
    }
    return conn;
    }
    
    //进行插入操作
    public int insert()
    {
    Connection conn = getConn();
    int i = 0;
    String sql = "insert into grade(id, name, subject, score, classid) values(?,?,?,?,?) ";
    PreparedStatement pstmt;
    try{
    pstmt = (PreparedStatement)conn.prepareStatement(sql);
    pstmt.setInt(1, 9);
    pstmt.setString(2, "Alex");
    pstmt.setString(3, "Chinese");
    pstmt.setInt(4, 100);
    pstmt.setInt(5, 21);
    i = pstmt.executeUpdate();
    pstmt.close();
    conn.close();
    }catch(SQLException e){
    e.printStackTrace();
    }
    return i;
    }
    
    //进行删除操作
    public int delete()
    {
    Connection conn = getConn();
    int i = 0;
    String sql = "delete from grade where name = 'Alex'";
    //String sql = "delete from grade where name = '"+ Alex(可以作为参数) +"'";
    PreparedStatement pstmt;
    try{
    pstmt = (PreparedStatement)conn.prepareStatement(sql);
    pstmt.executeUpdate();
    pstmt.close();
    conn.close();
    }catch(SQLException e){
    e.printStackTrace();
    }
    return i;
    }
    
    //进行修改操作
    public int update()
    {
    Connection conn = getConn();
    int i = 0;
    String sql = "update grade set score = 101 where name = 'Alex'";
    PreparedStatement pstmt;
    try{
    pstmt = (PreparedStatement)conn.prepareStatement(sql);
    i = pstmt.executeUpdate();
    pstmt.close();
    conn.close();
    }catch(SQLException e){
    e.printStackTrace();
    }
    return i;
    }
    
    //进行查找操作
    public int select()
    {
    Connection conn = getConn();
    int i = 0;
    String sql = "select * from grade";
    PreparedStatement pstmt;
    try{
    pstmt = (PreparedStatement)conn.prepareStatement(sql);
    ResultSet rs = pstmt.executeQuery();
    int col = rs.getMetaData().getColumnCount();
    while(rs.next()){
    for(int j=1; j<=col; j++){
    System.out.print(rs.getString(j)+"\t");
    if(j == col)
    System.out.println();
    }
    }
    }catch(SQLException e){
    e.printStackTrace();
    }
    return i;
    }
    }
    

    注:

    Connection
    java.sql 
    接口 Connection
    与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。
    Connection 对象的数据库能够提供描述其表、所支持的 SQL 语法、存储过程、此连接功能等等的信息。此信息是使用 getMetaData 方法获得的。

    PreparedStatemnt
    java.sql 
    接口 PreparedStatement
    SQL语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。
    常用方法
     boolean  execute()
              在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。
     ResultSet  executeQuery()
              在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。
     int  executeUpdate()
              在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如 INSERT、UPDATE 或 DELETE 语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。
    ResultSet
    java.sql 
    接口 ResultSet
    表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

  • 相关阅读:
    Linux-管理文件系统及存储
    在Visual Studio 2019中使用freopen_s来进行算法的输入
    数据结构(单链表)
    【无标题】
    OpenCV实现视频的追踪(meanshift、Camshift)
    文心一言 VS 讯飞星火 VS chatgpt (177)-- 算法导论13.3 6题
    Vue项目实战之电商后台管理系统(二) 主页模块
    python-爬虫-xpath方法-批量爬取王者皮肤图片
    正则表达式与Linux常用快捷命令(sort、uniq、tr、cut、paste)
    ios的info.plist 配置
  • 原文地址:https://blog.csdn.net/cqn2bd2b/article/details/126714413