JDBC是Java最基本的数据库操作途径,虽然现在有了更高端的Hibernate和JPA,但是其实它们的底层还是用的这些最基本的JDBC。而且,如果开发一个小型的应用程序,使用Hibernate不免有些大材小用,使用起来也相当笨重。使用JDBC的大概过程为:1,加载JDBC驱动程序 2,创建数据库连接 3,执行SQL语句(Statement,PreparedStatement和CallableStatement) 4,获得查询结果 5,关闭连接。这篇日志先只使用Statement演示数据库的插入,删除,修改,查询。

MyeClipse里新建一个Java Project。首先别忘了把sqljdbc4.jar加入classpath。可以直接去改那个.classpath文件,也可以在MyEclipse下这样操作:工具栏Project->Properties->Java Build Path->Libraries然后点击Add External JARs按钮,找到sqljdbc4.jar的路径就OK了。

写的代码如下:

import .......;
public class Test1 {
//连接本地数据库的两种写法
// private static final String URL="jdbc:sqlserver://localhost:1433;DatabaseName=TestDB";
// private static final String URL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=TestDB";
   private static final String URL="jdbc:sqlserver://222.26.168.72:1433;DatabaseName=TestDB";
                                         //连接异地数据库,这里用的是寝室另一台电脑的IP
   private static final String USERNAME="sa";
   private static final String PASSWORD="1234";
   static{
    try {
   Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载JDBC驱动程序
} catch (ClassNotFoundException e) {
   System.out.println("发生如下异常:");
   e.printStackTrace();
}
   }
public static void main(String[] args) {
      try {
   Connection conn=DriverManager.getConnection(URL, USERNAME,PASSWORD);//建立数据库连接
   Statement statement=conn.createStatement();
   //插入记录*********************************************************************
   String sql="insert into cchild values('Roney2','Tomsy2','1998-02-06',12)";
   String sql2="insert into cchild values('Kaka','yyu','1998-02-06',12)";
   //statement.executeUpdate(sql);
   statement.execute(sql);//可以不使用executQuery或者executUpdate方法了
   statement.execute(sql2);
   
   //修改记录*********************************************************************
   String sql3="update cchild set age=13 where birthday='1998-02-06'";
   statement.execute(sql3);
  
  
   //删除记录*********************************************************************
   String sql4="delete from cchild where cusername='Wu'";
   statement.execute(sql4);
  
  
   //查询记录*********************************************************************
   String sql5="select * from cchild";
   statement.execute(sql5);
   ResultSet rs=statement.getResultSet();//注意这里有错
   //也可以用ResultSet rs= statement.executeQuery(sql5);代替上面两条语句
   ResultSetMetaData rsmd=rs.getMetaData();//这里能够得到 返回数据表的详细信息 ,列标号也是从1开始
   System.out.println(rsmd.getColumnName(1)+" "+rsmd.getColumnName(2)+" "+
               rsmd.getColumnName(3)+" "+rsmd.getColumnName(4));//得到各列的列名
   while (rs.next()) {
    String cusername=rs.getString(1);//从1开始的
    String childname=rs.getString(2);
    String birthdaty=rs.getString(3);
    int age=rs.getInt(4);
    System.out.println(cusername+" "+childname+" "+birthdaty+" "+age);
   }
  
   statement.close();//关闭statement
   conn.close();//关闭数据库连接
   System.out.println("success***********");
} catch (SQLException e) {
   System.out.println("产生异常");
    e.printStackTrace();
}

}

}

JDBC的使用——Statement的更多相关文章

  1. JDBC中的Statement和PreparedStatement的区别

    JDBC中的Statement和PreparedStatement的区别  

  2. MySQL异常:Caused by: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client request

    Caused by: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or cl ...

  3. jdbc中的Statement对象和Preparedstatement对象的区别,以及通过jdbc操作调用存储过程

    一. java.sql.*   和  javax.sql.*的包的类结构 |- Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接口. |- connect(url, p ...

  4. JDBC batch批处理Statement executeBatch 具体解释

    JDBC提供了数据库batch处理的能力,在数据大批量操作(新增.删除等)的情况下能够大幅度提升系统的性能.我曾经接触的一个项目,在没有採用batch处理时,删除5万条数据大概要半个小时左右,后来对系 ...

  5. JDBC batch批量Statement executeBatch 详细解释

    JDBC提供了数据库batch处理的能力,在数据大批量操作(新增.删除等)的情况下能够大幅度提升系统的性能.我曾经接触的一个项目,在没有採用batch处理时,删除5万条数据大概要半个小时左右,后来对系 ...

  6. JDBC中的Statement和PreparedStatement的差别

    以Oracle为例吧 Statement为一条Sql语句生成运行计划, 假设要运行两条sql语句 select colume from table where colume=1; select col ...

  7. JDBC的使用-----Statement

    JDBC的查询步骤1.加载数据库驱动类 1)在工程下新建lib文件夹,将 ojdbc6.jar(jar包在:E:\oracle\product\11.2.0\dbhome_1\jdbc\lib)拷贝至 ...

  8. Java -- JDBC 学习--通过Statement进行数据库更新操作

    通过 JDBC 向指定的数据表中插入一条记录. 1. Statement: 用于执行 SQL 语句的对象 1). 通过 Connection 的 createStatement() 方法来获取 2). ...

  9. [转] JDBC中的Statement和PreparedStatement的区别

    以Oracle为例吧 Statement为一条Sql语句生成执行计划,如果要执行两条sql语句select colume from table where colume=1;select colume ...

随机推荐

  1. 03_Elasticsearch如何安装以及相关插件的介绍

    03_Elasticsearch如何安装以及相关插件的介绍 elasticsearch -d (-d参数是为了让服务后台运行) Elasticsearch 目录结构: 文件夹 作用 /bin 运行El ...

  2. 【转】将 Linux 应用程序移植到 64 位系统上

    原文网址:http://www.ibm.com/developerworks/cn/linux/l-port64.html 随着 64 位体系结构的普及,针对 64 位系统准备好您的 Linux® 软 ...

  3. 利用autoit自动关闭指定标题窗口

     最近使用PL/SQL Developer 比较两个数据库数据差异,因部分表上没有主键,PL/SQL 就会弹出一个确认框提示某某表没有主键.因为有很多表没有主键,就不停的弹出确认窗口,得不停的点击 ...

  4. bzoj1615 [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机

    Description Farmer John新买的干草打包机的内部结构大概算世界上最混乱的了,它不象普通的机器一样有明确的内部传动装置,而是,N (2 <= N <= 1050)个齿轮互 ...

  5. virtual hard disk

  6. 对c#剪切板Clipboard占用的问题一点解决方法

    以前在百度写的文档,转移到此处 前几天做一个程序,其中有一个剪切板的操作,具体代码: Clipboard.SetText(“ABC”); 来完成一个复制字符串的操作. 自己调试通过,完全正常,然后就交 ...

  7. Dynamics CRM2013 missing prvReadComplexControl privilege

    左右ComplexControl 权限设置,SDK例如,在以下的说明,仅供内部使用的实体,但是你可以没有找到这个叫配置安全角色ComplexControl的东西的. 在msdn上面查下就会发现这么一段 ...

  8. [LeetCode] 034. Search for a Range (Medium) (C++/Java)

    索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 035. Sea ...

  9. BOOST 线程完全攻略 - 扩展 - 可被关闭的线程类

    本文假设读者已经基本了解boost线程库的使用方法. boost是个开源工程,线程这一块也在不断完善之中,到现在这个阶段,boost::thread仅仅实现了一个完美的技术框架,但是读者在实际使用中会 ...

  10. PHP获取中英文混合字符串长度及截取

    1.字符串长度 PHP获取中英文混合字符串长度的实现代码如下,1中文=1位,2英文=1位,可自行修改 /** * PHP获取字符串中英文混合长度 * @param $str string 字符串 *  ...