• Java-JDBC


    连接数据库—JDBC

    1.0加载驱动程序

    public class ConnectionDemo1
    {
    //    public static String DBRIVER="com.mysql.jdbc.Driver";
    
        public static void main(String[] args) {
            try {
                //加载一个驱动程序
                //Class.forName(DBRIVER);
                Class.forName("com.mysql.jdbc.Driver");
            }catch(Exception e)
            {
                e.printStackTrace();
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    1.1连接及关闭数据库

    如果数据库驱动程序可以正常加载,下面可以使用DriverMannager类连接数据库。

    在DriverMannager中,提供主要操作就是得到一个数据库连接,getConnection()方法就是取得一个连接对象,此方法返回的类型是Connection对象。

    了解了DriverMannager类之后,再看Connection接口,因为所有数据库的操作都是从此接口开始。

    连接数据库

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    /**
     * @Auther:jiang
     * @Date:2021/12/11-12-14:43
     * @Description:
     * @version:1.7
     */
    public class ConnectionDemo1
    {
        public static final String user="root";
        public static final String password="root";
        //最后面的是数据库的名称
        public static final String address="jdbc:mysql://localhost:3306/userdb1";
    //    public static String DBRIVER="com.mysql.jdbc.Driver";
    
        public static void main(String[] args)
        {
            Connection conn=null;
            try {
                //加载一个驱动程序
                //Class.forName(DBRIVER);
                Class.forName("com.mysql.jdbc.Driver");
            }catch(ClassNotFoundException e)
            {
                e.printStackTrace();
            }
            try {
                conn= DriverManager.getConnection(address,user,password);
            }catch (SQLException e)
            {
                e.printStackTrace();
            }
            System.out.println(conn);
            try {
                conn.close(); //关闭数据库
            }catch (SQLException e)
            {
                e.printStackTrace();
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    程序的运行结果不为空,此时数据库已经连接成功!

    1.2执行数据库的更新操作

    数据库连接后,下面就可以对数据库进行操作了,如果要对数据库操作,需要用到Statement接口完成。
    Statement接口的常用方法

    序号方法描述
    1executeUpdate(String sql)执行数据库更新的SQL语句,如果insert、update、delete等语句,返回更新的记录数
    2executeQuery(String sql)执行数据库查询操作,返回一个结果集对象
    3addBatch()增加应该待执行的SQL语句
    4executeBatch()批量执行SQL语句
    5close()关闭statement操作
    6execute(String sql)执行SQL语句

    1.2.1演示插入操作

    String sql = "insert into users(id,name,password)" + "values(3,'chenshengfang','18278335677')";
            Connection conn = null;
            Statement st = null;
            conn = DriverManager.getConnection(url, user, passwd);
            st = conn.createStatement();
            st.executeUpdate(sql);
            st.close();
            conn.close();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    1.3ResultSet接口

    使用SQl中的select语句可以查询出数据库的全部内容,在JDBC的操作中数据库的所有查询记录将使用ResultSet进行接收,并使用ResultSet取得内容。

    如果现在进行数据库的查询,则需要使用Statement接口定义的executeQuery()方法,此方法返回值为一个ResultSet对象,此方法存放着所有的查询结果。

    ResultSet常用的方法

    序号方法描述
    1next()将指针转移到下一行
    2getInt(int columnIndex)以整数的形式按列的编号取得指定列的内容
    3getInt(String columnName)以整数形式取得指定列的内容
    4getFloat(int clolumnIndex)以浮点数的形式按列的编号取得指定的内容
    public class Tuser1
    {
        public  static final String user="root";
        public  static final String password="root";
        public  static final String address="jdbc:mysql://localhost:3306/userdb1";
    
        public static  void main(String[] args) {
            Statement stmt=null;
            Connection conn=null;
            try {
                conn= DriverManager.getConnection(address,user,password);
    
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            ResultSet rs=null;
            String sql="select id,name,password from users";
            try {
                Class.forName("com.mysql.jdbc.Driver");
                stmt=conn.createStatement();
                rs=stmt.executeQuery(sql);
            }catch ( Exception e)
            {
                e.printStackTrace();
            }
            try {
                while(rs.next())
                {
                    int id=rs.getInt("id");
                    String name=rs.getString("name");
                    String password=rs.getString("password");
                    System.out.println(id);
                    System.out.println(name);
                    System.out.println(password);
                    rs.close();
                    stmt.close();
                    conn.close();
                }
            }catch (Exception e)
            {
                e.printStackTrace();
            }
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    1.4PreparedStatement接口

    PreparedStatement是statement的接口,属于预处理操作,与statement不同的是,PreparedStatement在操作时,先在表中准备一条sql语句,但此时SQL语句的具体内容暂不设置,而是之后在设置。

    • 由于PreparedStatement对象已近预编译过了,所以执行速度要高于statement对象。
    • 在PreparedStatement中执行的SQL语句对于具体内容采用?的占位符形式。

    PreparedStatement常用的方法

    序号方法描述
    1executeUpdate()执行设置的预处理SQL语句
    2setInt(int parameterIndex,int x)执行数据库查询操作,返回ResultSet
    3setFloat(int parameterIndex,float x)指定要设置的索引编号,并设置浮点数内容
    4

    示例:

       String sql = "insert into users(id,name,password)" + "values(?,?,?)";
            Class.forName(DBDRIVER)
            Connection conn = null;
            PreparedStatement ps=null;
            conn = DriverManager.getConnection(url, user, passwd);
            ps = conn.prepareStatement(sql);
            ps.setInt(1, 17);
            ps.setString(2, "tom");
            ps.setString(3, "123");
            ps.executeUpdate();
            ps.close();
            conn.close();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    1.5总结图

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    基于Python的朋友圈关系数据分析与实现
    拿走不谢,孕妈想知道的都在这里了,关于分娩前见红
    A-Level经济例题解析及练习Analysis of Tax
    【操作系统】7/35进程原语2
    周杰伦直播超654万人观看,总互动量破4.5亿,助力快手再破纪录
    彻底解决Maven依赖爆红(依赖不能被解析识别)问题亲测有效
    Mysql查询分析工具Explain的使用
    SCI常见词汇表达
    【MCAL_CANDriver】-1.3-FullCAN和BasicCAN的差异及配置使用
    API接口接入京东平台获取商品详情数据、价格、销量、商品标题、产品属性参数指南
  • 原文地址:https://blog.csdn.net/qq_52166656/article/details/126803852