jdbc(1)

1. jdbc的概述
JDBC(Java DataBase Connectivity) 称为Java数据库连接,它是一种用于数据库访问的应用程序API接口,由一组用Java语言编写的类和接口组成,有了JDBC就可以用统一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。 有了JDBC,就不必为访问Mysql数据库专门写一个程序,为访问Oracle又专门写一个程序等等。
2. java连接数据库
2.1 把mysql的驱动jar放入工程并构建
数据的jar包: 就是各个数据库厂商--编写好的连接数据库的代码的压缩文件。 如果我们连接不同的数据库则需要使用不同数据库的jar包。
首先需要我们引入jar包、然后添加为库

构建好的效果

2.2 编写连接数据库的代码

public static void main(String[] args) throws Exception{
         //1.加载驱动.com.mysql.cj.jdbc.Driver表示驱动类名 该类是mysql数据库厂商写好的类名。现在可以省略改行,但是后期web工程就无法省略
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2. 获取连接数据库的对象。java.sql.Connection接口
        /*
        String url,连接数据库的路径 jdbc:mysql://localhost:3306/qy174
                     jdbc:表示连接数据库的协议。
                     mysql:表示连接数据库的类型
                     localhost:表示数据库服务器所在的ip.
                     3306:数据库的端口号
                     qy174:表示数据库名
        String user,连接数据库时的账号
         String password 连接数据库的密码
         */
        String url="jdbc:mysql://localhost:3306/qy174";
        String user="root";
        String password="root";
        Connection conn= DriverManager.getConnection(url,user,password);
        //3. 获取执行sql语句的对象 java.sql.Statement
        Statement st=conn.createStatement();

        //4. 执行sql语句: 增删改 executeUpdate()
        String sql="insert into emp values(null,'小木','男')";
        int row=st.executeUpdate(sql); //表示对改变中记录的影响条数
        System.out.println("影响了数据库记录:"+row);

    }
  1. 加载驱动. Class.forName("com.mysql.cj.jdbc.Driver");
  2. 获取连接对象: Connection conn=DriverManager.getConnection(url,user,password);
  3. 获取执行sql语句的对象: Statement st=conn.createStatement();
  4. 执行sql语句。增删改. int row=st.executeUpdate(sql);
    2.3 完成crud操作
    删除操作
    @Test
    public void testDelete()throws Exception{
        //1.加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2.获取连接对象
        String url="jdbc:mysql://localhost:3306/qy174";
        String user="root";
        String password="root";
        Connection conn=DriverManager.getConnection(url,user,password);
        //3.获取执行sql语句的对象
        Statement st=conn.createStatement();
        //4.执行sql语句
        String sql="delete from emp where id=4";
        int row=st.executeUpdate(sql);
        System.out.println("删除影响的条数:"+row);

    }

修改操作

  @Test
    public void testUpdate() throws Exception{
         //1. 加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2. 获取连接对象
        String url="jdbc:mysql://localhost:3306/qy174";
        String user="root";
        String password="root";
        Connection conn=DriverManager.getConnection(url,user,password);
        //3.获取执行sql语句的对象
        Statement st=conn.createStatement();
        //4.执行sql语句
        String sql="update emp set name='刘德华',sex='女' where id=1";
        int row=st.executeUpdate(sql);
        System.out.println("影响的行数:"+row);

    }

查询操作

 @Test
    public void testSelectAll() throws Exception{
         //1. 加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2. 获取连接对象
        String url="jdbc:mysql://localhost:3306/qy174";
        String user="root";
        String password="root";
        Connection conn=DriverManager.getConnection(url,user,password);
        //3. 获取sql的执行对象
        Statement st=conn.createStatement();
        //4. 执行sql语句
        String sql="select * from emp";
        ResultSet rs=st.executeQuery(sql);
        //5. 把查询的结果遍历显示出来
        while (rs.next()){ //rs.next():判断下一条是否有记录,如果有则指针执行下一条。
            int id = rs.getInt("id"); //得到当前记录的id列值
            String name = rs.getString("name"); //得到当前记录的name值
            String sex = rs.getString("sex");
            System.out.println("编号:"+id+";姓名:"+name+";性别:"+sex);
        }
    }

根据条件查询

//查查操作: 1. 条件查询. select * from 表名 where 条件;
    @Test
    public void testSelectByCondition()throws Exception{
        //1. 加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2. 获取连接对象
        String url="jdbc:mysql://localhost:3306/qy174";
        String user="root";
        String password="root";
        Connection conn=DriverManager.getConnection(url,user,password);
        //3. 获取sql的执行对象
        Statement st=conn.createStatement();
        //4. 执行sql语句
        String sql="select * from tbl_teacher where name like '%豪%' and age>25";
        ResultSet rs=st.executeQuery(sql);
        //5. 把查询的结果遍历显示出来
        while (rs.next()){ //rs.next():判断下一条是否有记录,如果有则指针执行下一条。
            int id = rs.getInt("id"); //得到当前记录的id列值
            String name = rs.getString("name"); //得到当前记录的name值
            String sex = rs.getString("sex");
            String phone = rs.getString("phone");
            int age = rs.getInt("age");
            System.out.println("编号:"+id+";姓名:"+name+";性别:"+sex+";手机号:"+phone+";年龄:"+age);
        }
    }

3. 容易出现的错误
第一个:

①:没有引入mysql的驱动jar包

②引入了jar但是没有构建到工程中

③:驱动名写错了
第二个

密码错误
第三种


第四种

posted on   小木不痞  阅读(8)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)

导航

< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5
点击右上角即可分享
微信分享提示