19、Java数据库编程:

JDBC概述:
       JDBC(Java Database Connection)是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类库(位于java.sql和javax.sql)。
       JDBC对于开发人员而言是API,对于厂商而言作为借口。

JDBC编程步骤:
       1.(Driver)根据应用程序所用的数据库,选择JDBC驱动程序类型。
       2.链接到数据库,得到Connection对象。
       3.通过Connection创建Statemenet对象。
       4.使用Statemnet对象提交SQL语句。
       5.操作结果集。
       6.回收数据库资源。

public class TestMain {

/**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  // 加载驱动
  try {
   Class.forName("com.mysql.jdbc.Driver");
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

// 通过驱动管理器获取数据库连接
  Connection con = null;
  try {
   con = DriverManager.getConnection(
     "jdbc:mysql://localhost:3306/test", "root", "");

// 增加操作
   StudentBean stu = new StudentBean("叶娟", 18, "女", "LOVO教育");
   String sql = "insert into t_student(f_name,f_age,f_gender,f_school) values('" + stu.getName()
     + "'," + stu.getAge() + ",'" + stu.getGender() + "','"
     + stu.getSchool() + "')";
   //使用连接创建语句对象
   Statement state = con.createStatement();
   int result = state.executeUpdate(sql);
   System.out.println(result);
   
   //修改操作
   String sql = "update t_student set f_name = '田姐' where pk_id = 2";
   String sql = "update t_student set f_school = '中国Lovo'";
   Statement state = con.createStatement();
   int result = state.executeUpdate(sql);
   System.out.println(result);
   
   //删除操作与修改完全一样,只是SQL语句不同
   
   //查询
   ArrayList<StudentBean> allStu = new ArrayList<StudentBean>();
   String sql = "select * from t_student";
   Statement state = con.createStatement();
   ResultSet rs = state.executeQuery(sql);
   while(rs.next()){
    //下标是从1开始
     int id = rs.getInt(1);
     String name = rs.getString(2);
     int age = rs.getInt(3);
     String gender = rs.getString(4);
     String school = rs.getString(5);
    
    int id = rs.getInt("id");
    String name = rs.getString("f_name");
    int age = rs.getInt("f_age");
    String gender = rs.getString("f_gender");
    String school = rs.getString("f_school");
    allStu.add(new StudentBean());
    System.out.println(id + "  " + name + "  " + age + "  " + gender + "  " + school);
   }
   
   
   
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } finally {
   if (con != null) {
    try {
     con.close();
    } catch (SQLException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }

}

}

java面向对象下:Java数据库编程的更多相关文章

  1. 093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 03 static关键字(下)

    093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  2. 089 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 使用包进行类管理(1)——创建包

    089 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  3. 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现

    088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现 本文知识点:Java封装的代码实现 说明:因为时间紧张,本人写博客过程中只 ...

  4. 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

    084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...

  5. 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法

    083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...

  6. 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法

    082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...

  7. 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字

    081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...

  8. 078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类

    078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类 本文知识点:创建类 说明:因为时间紧张,本人写博客过程中只是对知识点的关 ...

  9. # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结

    095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  10. 094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 04 static关键字(续)

    094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

随机推荐

  1. Mac中使用svn进行项目管理

    Mac中使用svn进行项目管理,借鉴了http://blog.csdn.net/q199109106q/article/details/8655204 下面方案多人亲測可用 转载请注明出处:http: ...

  2. RelativeLayout的一些感想

    1.如果只是是3-4个线性,则可以考虑RelativeLayout;多于等于5个还是尽量考虑LinearLayout好 补充:如果要把RelativeLayout作为线性布局的话,可以采用不断设置be ...

  3. WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化

    原文:WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化 [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制 ...

  4. 谁知道哪有比较好的Beijing Milonga?想去参加这样的阿根廷探戈舞会~

    谁知道哪有比较好的Beijing Milonga?想去参加这样的阿根廷探戈舞会~_百度知道     谁知道哪有比较好的Beijing Milonga?想去参加这样的阿根廷探戈舞会~    2009-1 ...

  5. QCompleter自动补全

     知识永远是那么多,想到什么就总结什么,今天记录一下关于我对QComplete的一些小见解.   官方文档中叙述如下:     可以在任何Qt的窗口小部件中使用QCompleter提供自动补全功能,如 ...

  6. android文件下载大小和网络不一致(偏大)

    今天在写一个文件下载的程序,在网上搜索了一个抄,用来下载MP3文件. 但是发现下载的MP3文件比原来的文件要大,而且MP3中会有杂音. 在Log中加入日志后发现: 从  网络流中获取的流长度为3000 ...

  7. G - Self Numbers(2.2.1)

    G - Self Numbers(2.2.1) Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & % ...

  8. 碰撞回避算法(一) Velocity Obstacle

    碰撞回避是机器人导航,游戏AI等领域的基础课题.几十年来,有很多算法被提出.注意这里主要指的是局部的碰撞回避算法.尽管和全局的路径规划算法(A*算法等)有千丝万缕的联系.可是还是有所不同的(局部的碰撞 ...

  9. C keyword register 并讨论共同使用嵌入式汇编

    C keyword register 并讨论共同使用嵌入式汇编 register 是C99 的keyword之中的一个. register 是储存类型之中的一个.这里仅讨论register 储存类型. ...

  10. UVA 11464 - Even Parity(枚举方法)

    D Even Parity Input: Standard Input Output: Standard Output We have a grid of size N x N. Each cell ...