JDBC配置及基本操作

news/2024/5/18 22:43:22 标签: java, jdbc, mysql

hi~我是郑突突


今天我们学习:JDBC配置及基本操作

场景:数据库是我们一定要掌握的。JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。


首先要添加mysql-connector-java jar包
直接在pom文件下添加maven依赖就可以了。
我用的是5.1.37版
现在大多是6.x版,我之前使用了但无法解决出现的问题,之后会补充6.x版本下的使用

首先加载驱动程序
一次就好
一句话总结:将mysql驱动注册到DriverManager中去,为了之后使用Connection类。具体原因

接下来我们要去链接数据库。
这时候需要Connection类的对象和数据库的URL,用户名和密码
在这里插入图片描述
在这里你可以下载一个Mysql数据库管理工具Navicat,便于查看数据库。

private static Connection conn = null;
conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);

然后通过这个Connection对象去创建一个Statement对象,Statement用于执行Sql语句。

添加表,我们来创建一个student表
在这里插入图片描述
在这里插入图片描述

private static void createTable() {
        try {
            String tableName;
            conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
            stmt = conn.createStatement();
            System.out.println("Please input the table name of which you want to create:");
            String getchar = in.nextLine(); //作用相当于C语言的getchar()
            tableName = in.nextLine();

            String sql = "CREATE TABLE " + "student " +
                    "(id INTEGER not NULL, " +
                    " first VARCHAR(255), " +
                    " last VARCHAR(255), " +
                    " age INTEGER, " +
                    " PRIMARY KEY ( id ))";

            stmt.executeUpdate(sql);
            System.out.println(tableName + "table already create successful!");
        }catch(SQLException e){
            //Handle errors for JDBC
            e.printStackTrace();
        }catch(Exception e){
            //Handle errors for Class.forName
            e.printStackTrace();
        }finally{
            //finally block used to close resources
            try{
                if(stmt!=null)
                    conn.close();
            }catch(SQLException se){
            }// do nothing
            try{
                if(conn!=null)
                    conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }//end finally try
        }//end try
        System.out.println("Goodbye!");
    }

删除student表
在这里插入图片描述
在这里插入图片描述
修改一下Sql语句就可以了

String tableName;
            conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
            stmt = conn.createStatement();
            String getchar = in.nextLine(); //作用相当于C语言的getchar()
            System.out.println("Please input the table name of which you want to delete:");
            tableName = in.nextLine();
            String sql = "DROP table " + tableName;

            stmt.executeUpdate(sql);
            System.out.println(tableName + "table already delete successful!");

不要忘了try catch 哦。

还有其他操作的话,只要修改Sql语句即可。
不是很懂的,这里有例子。

另外,如果有读者知道如何不通过降低版本的手段去解决–>
使用mysql-connector-java-6.0.6版本时,出现Caused by: java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required错误。
请教教我,给您拜个早年!


http://www.niftyadmin.cn/n/1662301.html

相关文章

linux 一些基础命令

大家好,我叫郑突突,应小粉丝要求总结一些linux常见命令 授人予鱼不如授人予渔 #渔?# 首先介绍man(manual):Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。 #鱼?# pwd: Print …

java 中的request的相关知识点总结

总结: request获得行的内容request.getMethod()request.getRequestURI()request.getRequestURL()request.getContextPath()request.getRemoteAddr() request获得头的内容request.getHeader(name) request获得体(请求参数)String request.getP…

java的cookie和cession

总结: 会话技术: Cookie技术:存到客户端 发送cookie Cookie cookie new Cookie(name,value) cookie.setMaxAge(秒) cookie.setPath() response.addCookie(cookie) 获得cookie Cookie[] cookies request.getCookies(); cookie.getName(); co…

java图片的下载

上述代码可以将图片从服务器端传输到浏览器,但浏览器直接解析图片显示在页面上, 如果要提供下载,我们需要设置两个响应头,告知浏览器文件的类型和文件的打开方 式。 1)告知浏览器文件的类型:response.setCo…

java成员变量和局部变量的区别-和this关键字---基础篇

属性成员变量必须私有化 区别一:定义的位置不同定义在类中的变量是成员变量定义在方法中或者{}语句里面的变量是局部变量 区别二:在内存中的位置不同成员变量存储在对内存的对象中局部变量存储在栈内存的方法中 区别三:声明周期不同成员变量随…

java中的继承和多态this和super-基础篇

继承的关键字extends-子类会自动拥有父类可以继承的属性和方法 继承的好处:1使代码的复用性提高。2.导致了多态。3.使类和类中间的紧密连接程度增强。 注意:只能单继承,不能多继承。多继承会有安全性问题。可以多层继承。 子类中如何有和父类…

vue骨架屏实现方式(转载,作者:jrainlau)

Vue 页面骨架屏注入实践作者:jrainlausegmentfault.com/a/1190000014832185作为与用户联系最为密切的前端开发者,用户体验是最值得关注的问题。关于页面loading状态的展示,主流的主要有loading图和进度条两种。除此之外,越来越多的…

java图片处理(混合层叠图片)

java图片处理(混合层叠图片) package test;import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder;import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.*…