当前位置: 首页 > 后端技术 > Java

JavaJDBC入门:通过JDBC访问MySQL

时间:2023-04-01 20:08:43 Java

下载驱动包从MySQL官网下载驱动包,最新版本为8.0.x。我选择的是稍旧的5.1.49版本,需要点击Archives才能进入新的下载页面。再次选择版本号,OperatingSystem只有一个选项“PlatformIndependent”,点击Download按钮,我选择的是ZipArchive。解压刚刚下载的压缩包,可以看到mysql-connector-java-5.1.49.jar文件就是后面需要的驱动包。导入驱动包如果没有导入驱动包,使用JDBC时会报错java.lang.ClassNotFoundException:com.mysql.jdbc.Driver。将上一步准备好的驱动包复制到项目内外合适的目录下,只要文件不丢失,便于管理即可。这里导入驱动包,以IntelliJIDEACE为例。点击菜单栏的File>ProjectStructure...,在打开的界面点击左侧的Modules,再点击右侧的Dependencies,会看到一个列表。然后点击列表中的Add按钮(+号),选择Jars或Directories...,找到驱动包文件,添加到列表中,最后在当前界面点击Apply或OK完成导入。编写代码下面的代码是通过JDBCpackagecom.ericling.exercise;packagecom.ericling.exercise;importjava.sql.*;/***@authorEricLing*/publicclassMySqlExercise{publicstaticvoidmain(String[]args){try{//加载驱动包Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException异常){exception.printStackTrace();}try{//连接数据库连接connection=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/demo","test_user","*this-is-password*");//创建用于执行SQL语句的Statement对象Statementstatement=connection.createStatement();ResultSetrs=statement.executeQuery("select*fromstudents");//ResultSet是一个结果集,相当于一个迭代器,每次获取一行记录while(rs.next()){System.out.println(rs.getInt(1)+"\t"+rs.getString(2));}rs.close();connection.close();}catch(SQLExceptionthrowable){throwable.printStackTrace();在使用JDBC操作MySQL数据时,当程序结束时,会自动关闭MySQL连接,但是最不需要的时候最好立即关闭连接。常见问题com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:CommunicationslinkfailureCausedby:java.net.ConnectException:Connectiontimedout:连接错误,连接超时,无法与数据库建立连接。可能是数据库的地址和端口不对,或者网络不正常。java.sql.SQLException:Accessdeniedforuser'test_user'@'192.168.11.107'(usingpassword:YES)连接MySQL数据库的账号或密码错误。java.sql.SQLException:BeforestartofresultsetResultSet是一个结果集。如果结果集中有数据,则必须调用next()方法获取第一行记录,再次调用获取第二行数据。