2022.3.22
JDBC入门 2-2—–>3-1
-
我用的软件是navicat,然后用的时候发现,如果你想要在这个软件中访问数据库,那你访问的时候它数据库本身就已经打开了(cmd里),不然链接无效报错.
-
如何查询版本号在cmd里
mysql -V
注意,V小写貌似不太行
-
如何下载jdbc的教程https://blog.csdn.net/pan_junbiao/article/details/86626741
注意下,进入mysql connector时 , 那个是自己勾选的,有个plateform,但是它默认给你了windows的mysql的安装器
-
在完成上述驱动安装以后,我完成了下面的初步代码
package com.imooc.jdbc.sample; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; public class a { public static void main(String[] args) { try { Class.forName("com.imooc.jdbc.sample.a"); String url = "jdbc:mysql://localhost:3306/demo?userSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"; Connection root = DriverManager.getConnection(url, "root", "250"); System.out.println(root); }catch (ClassNotFoundException e){ e.printStackTrace(); }catch (SQLException e){ e.printStackTrace(); } } }
这里有些可能会出问题的地方,url可能打少了,所以下面写一下mysq链接字符串
jdbc:mysql://主机ip:端口/数据库名
这是最少的,我是上面的代码是因为加了参数才会那么长
还有个密码和用户名那里可能打错了导致无法访问数据库
还有些杀毒软件会禁用3306端口,也可能导致出错,虽然我没出现这类问题就是了
-
实现关于查询用户的简单代码
package com.imooc.jdbc.harpp; import com.imooc.jdbc.harpp.commamd.Command; import com.imooc.jdbc.harpp.commamd.QueryCommand; import java.util.Scanner; public class b { public static void main(String[] args) { System.out.println("1-查询部门员工"); Scanner in = new Scanner(System.in); int i = in.nextInt(); switch (i){ case 1: Command cmd = new QueryCommand(); cmd.excute(); } } }
package com.imooc.jdbc.harpp.commamd; public interface Command { public void excute(); }
package com.imooc.jdbc.harpp.commamd; import java.sql.*; import java.util.Scanner; public class QueryCommand implements Command{ @Override public void excute() { System.out.println("1-查询部门名称:"); Scanner in = new Scanner(System.in); String s = in.next(); Connection connection =null; Statement statement =null; ResultSet resultSet = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/imooc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true","root","250"); statement = connection.createStatement(); resultSet = statement.executeQuery("select * from employee where dname = \""+""+s+"\""); while (resultSet.next()){ int eno = resultSet.getInt(1); String ename = resultSet.getString("ename"); double salary = resultSet.getDouble("salary"); String dname = resultSet.getString("dname"); System.out.println(eno+"-"+ename+"-"+salary+"-"+dname); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if(resultSet!=null){ resultSet.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if(statement!=null){ statement.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (connection != null && !connection.isClosed()) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } } }
遇到的一些问题总结一下
- 首先还是url太容易写错了
- 然后还有executeQuery()方法,我一时忘记了=后面是要双引号或者单引号的
其他
-
如果遇到了需要管理员权限才能删除目录,按下面的方法来
win+R键,打开cmd 。
假设要删除的目录是E:\github\web
输入del E:\github\web
可能不会立刻删除,但过一会就没了,不行,powershell按这个方法来试一下
-
如何在jdea中创建多级目录结构https://blog.csdn.net/shaokunkun/article/details/89456077
这里就一个问题,我实际上找到的是cmpact middle package这个选项