zoukankan      html  css  js  c++  java
  • 通过jdbc连接MySql数据库的增删改查操作

    一、获取数据库连接

      要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接

      JDBC:Java中连接数据库方式

    具体操作如下:

        获取数据库连接的步骤:

          1、先定义好四个参数

    1      String username="root";   //连接数据库的用户名
    2         String password="root";   //连接数据库的密码
    3         //连接MySql数据库的url,不同数据库url不同,语法:jdbc:子协议:厂商内容
    4         String url="jdbc:mysql://localhost:3306/MyBookStore";
    5         //数据库驱动程序的全类名,加载相应数据库的jar包,在Web App Libraries中找到driver.class复制其全类名即可
    6         String driver="com.mysql.jdbc.Driver";

          2、加载驱动类 

          Class.forName(driver);

          3、获取数据库连接,对数据库的一切操作都是从Connection连接开始的

            Connection connection=DriverManager.getConnection(url, username, password);

             4.Statement由connection对象创建,然后通过Statement执行具体的sql语句

            (在实际开发中,由于Statement存在漏洞,容易发生sql注入,通常使用PreparedStatement来操作sql语句)

           Statement statement = connection.createStatement();

    二、数据库的增删改查操作

      1、增加数据 

    1         String sql1="insert into dept values(null,'财务部门')";
    2         int i = statement.executeUpdate(sql1);   
           //executeUpdate()是执行增删改操作的方法,返回值为int类型,返回数据库中受到影响的行数
    3 System.out.println(i);

      2、删除数据

    1         String sql2="delete from dept where id=2";
    2         int i2=statement.executeUpdate(sql2);
    3         System.out.println(i2);

      3、修改数据

    1         String sql3="update dept set dept_name='人事部门' where id=4";
    2         int i3=statement.executeUpdate(sql3);
    3         System.out.println(i3);

      4、查询数据

    1         String sql4="select id,dept_name from dept";
    2         ResultSet resultSet=statement.executeQuery(sql4);  
           //executeQuery()是执行查询操作的方法,返回值为ResultSet类型,返回查询的结果集,相当于一个虚拟的表格
    3 while (resultSet.next()) { 4 int id=resultSet.getInt("id"); 5 String deptName=resultSet.getString("dept_name"); 6 System.out.println(id+":"+deptName); 7 }

      5、通过对象封装结果集,并利用集合存储对象

     1      String sql4="select id,dept_name from dept";
     2         ResultSet resultSet=statement.executeQuery(sql4);
     3         List<Department> list=new ArrayList<Department>();
     4         while (resultSet.next()) {
     5             int id=resultSet.getInt("id");
     6             String deptName=resultSet.getString("dept_name");
     7             Department department=new Department();     //创建用来封装结果集记录的对象
     8             department.setId(id);
     9             department.setDeptName(deptName);
    10             list.add(department);    //将封装好的对象添加到list集合中
    11         }
    12         //Department类中重写了toString()方法,使该方法返回对象中的某些属性,而不是地址
    13         //System.out.println()输出list中的内容时,会调用list内存储的Department对象的toString()方法
    14         System.out.println(list);

     注意:通过PreparedStatement执行sql语句时,示例如下:

      PreparedStatement需要对sql语句进行预编译,因此需要先将sql语句字符串传递给PreparedStatement对象,这样就避免了Statament的sql注入漏洞

    1      PreparedStatement preparedStatement=null;
    2         ResultSet rs=null;
    3         
    4         String sql="select id,dept_name from dept where id=? ";  //?为占位符
    5         preparedStatement=connection.prepareStatement(sql);  //此处需要给prepareStatement()方法传递参数(sql语句)
    6         preparedStatement.setInt(1,5);   //参数表示为第一个占位符赋值
    7         rs=preparedStatement.executeQuery();  //此处执行无参的executeQuery()方法

         

  • 相关阅读:
    雅虎与谷歌搜索试合作 增加与微软谈判砝码
    重庆竞标(一)
    大数据量分页存储过程效率测试附代码 (转载)
    【转】MVP 模式实例解析
    在本地电脑和局域网电脑的SQLServer2000之间自动备份数据库(收藏)
    Adobe宣布Flex Builder将更名为Flash Builder
    语录:101条伟大的计算机编程名言<转载CSDN>
    博客园功能使用说明<收藏>
    sql 利用索引优化性能(转载)
    泛型定制泛型接口、泛型类(转载)
  • 原文地址:https://www.cnblogs.com/java-zmj/p/7844326.html
Copyright © 2011-2022 走看看