实习的第二天,老师详细地讲解了IDEA的使用步骤以及JDBC操作的七个步骤。在这里记录一下老师的讲解内容,以防以后忘记。JDBC的七个步骤:

1、加载

首先,将mysql的jar包导入新建的Project项目中,并将其设置为Libraries。在项目中新建一个类选作为main函数所在的类。

在main函数中输入以下代码,来测试是否有将mysql的jar包导入成功。

Class.forName("com.mysql.jdbc.Driver");

在输入时注意,括号内的内容是当你每点一个点,下一项内容就会自动联想出来;若在输入“.”之后没有出现提示,说明jar包没有导入成功,需要再次导入。

2、建立连接

在建立连接之前,需要确定是否在SQLyog中创建出一个新的MySQL数据库,并且要记住之前装MySQL时,设置的密码。

建立连接输入代码如下:

Connection connection= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?" +
"useSSL=true&characterEncoding=utf-8&user=***&password=***");
//test为我建立的MySQL数据库名,user为建立的用户名,password为设置的密码

注释中的三个字段需要根据自己建立的数据库更改。

3、获取对象

执行sql语句需要获得java.sql.Statement的实例,Statement实例分为3类

  1. 执行静态SQL语句的实例,通常通过Statement实现;
  2. 执行动态SQL语句的实例,通常通过PreparedStatement实现;
  3. 执行数据库存储过程的实例,通常通过CallableStatement实现;

这里使用第二种,也就是动态执行sql语句的实例:

PreparedStatement statement= connection.prepareStatement(sql);

4、定义sql语句

sql语句根据当下想要实现的功能选择,比如查询操作:

String sql="select * from userinfo";

5、执行操作

Statement接口中提供了3种执行sql语句的方法:

  1. executeQuery:查询数据库方法,返回一个结果集ResultSet的对象。
  2. executeUpdate:对于更改表内容的语句都可以用executeUpdate方法,例如插入、更新、删除等。
  3. execute:返回多个结果集,多个更新数或者二者组合的语句。

以查询语句为例:

resultSet= statement.executeQuery();

resultSet为ResultSet结果集的一个实例

6、获取结果集

ResultSet的实例返回符合sql语句中条件的所有行的各项信息

while(resultSet.next()){
     System.out.println(resultSet.getInt("id"));
     System.out.println(resultSet.getString("username"));                                   
     System.out.println((resultSet.getString("password")));
}

idea连接mysql数据库测试 idea连接mysql数据库 增删改查_sql语句

上图为userinfo表中内容,下图为查询结果集返回内容

idea连接mysql数据库测试 idea连接mysql数据库 增删改查_mysql_02

7、关闭

对于查询功能,需要依次将ResultSet实例,Statement实例,Connection实例关闭。这样的关闭顺序是由实例调用过程中

的顺序决定的。以查询功能为例,代码如下:

if(resultSet!=null)
{
   try {
      resultSet.close();
   } catch (SQLException e) {
      e.printStackTrace();
   }
}
if(statement!=null){
    try {
       statement.close();
    } catch (SQLException e) {
       e.printStackTrace();
    }
}
if(connection!=null){
    try {
       connection.close();
    } catch (SQLException e) {
       e.printStackTrace();
    }
}

再次说明,该示例代码是以查询为实现功能的,需要按顺序关闭三个口。其他功能,如数据更改功能一般用不到ResultSet口,也不用关闭。