JDBC+MySQL入门增删改查实战( 五 )

  • 主要通过PreparedStatement对象的addBatch()进行多组插入而未提交 。
  • 如果为设置不自动提交当执行executeBatch()时就会提交,但为了减小提交次数已经设置不自动提交 。当且仅当con.commit()执行才会真的提交到MySQL中 。
  • 接着在test单元测试中编写insertStudentsTest()函数进行测试批量插入:
    @Testpublic void insertStudentsTest() throws SQLException, ClassNotFoundException {    sqlmanage sqlmanage=new sqlmanage();    student students[]=new student[5];    for(int i=0;i<students.length;i++)    {        students[i]=new student("路人"+i,12,156);    }    sqlmanage.insertStudents(students);}执行完毕后你可以看到数据被成功插入MySQL中:
    JDBC+MySQL入门增删改查实战

    文章插图
     
    查询数据查询的使用频率要远比其他的操作多,虽然有些复杂表的查询可能会让人比较头疼,但基础的sql查询还是比较简单,其语法格式为:
    select 字段1,字段2,…… from 表名 [where 条件] //方式1select * from 表名 [where 条件] //方式2其中如果没有where条件那么就默认查询整张表的内容,我们在这里根据此条件查询所有记录:查询返回年龄小于21岁的所有学生 。
    首先在sqlmanage中编写getallstudent()函数,用来查询student表中所有age小于21的记录,并把查询的数据最终以List<studnet>类型返回:
     public List<student> getallstudent() throws SQLException {        List<student>list=new ArrayList<student>();//返回的结果        String sql = "select * from student  where age < 21";        PreparedStatement ps = con.prepareStatement(sql);        ResultSet resultSet=ps.executeQuery();//结果集        while(resultSet.next())//遍历        {            int id=resultSet.getInt(1);            String name=resultSet.getString(2);            int age=resultSet.getInt(3);            int high=resultSet.getInt(4);           list.add(new student(id,name,age,high));        }        ps.close();        return list;    }在前面讲的插入的过程返回值其实不需要特别处理,因为返回是插入成功与否的消息,而在查询的步骤就要严格的跟着JDBC的6个步骤来—因为需要对返回的数据进行处理 。我们主要通过ResultSet处理返回的数据 。
    在对ResultSet进行迭代遍历取值的过程中,通过getXXX(int index)的方法取值并自动转换为java对应的数据类型 。而index为MySQL数据库表格列的编号,也是数据在ResultSet中的对应序列号 。
    通过上面的函数在test单元测试中编写selectTest() 测试函数在控制台打印从数据库中查询所有age小于21的记录:
    @Testpublic  void selectTest() throws SQLException, ClassNotFoundException {    sqlmanage sqlmanage=new sqlmanage();    List<student>list=sqlmanage.getallstudent();    System.out.println(list.toString());}可以看到数据被成功查询:
    JDBC+MySQL入门增删改查实战

    文章插图
     
    JDBC修改和删除修改数据对某个确定的记录修改,我们一般根据这条信息的主键作为条件进行修改 。而修改一般都需要条件语句where,否则修改整个表的内容 。修改的MySQL语句为:
    update 表名 set 字段 = 值 [where条件]; -- 建议都有where: 不然的话会修改每一条数据这里我们假设将上述student表中所有age为12的记录的name设置为xiaoming 。在sqlmanage中编写update()函数用来进行修改:
    public void update() throws SQLException {       String sql = "update student set name='xiaoming' where age=12";       PreparedStatement ps = con.prepareStatement(sql);       ps.executeUpdate();       ps.close();   }


    推荐阅读