JDBC的使用——Statement
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的更多相关文章
- JDBC中的Statement和PreparedStatement的区别
JDBC中的Statement和PreparedStatement的区别
- 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 ...
- jdbc中的Statement对象和Preparedstatement对象的区别,以及通过jdbc操作调用存储过程
一. java.sql.* 和 javax.sql.*的包的类结构 |- Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接口. |- connect(url, p ...
- JDBC batch批处理Statement executeBatch 具体解释
JDBC提供了数据库batch处理的能力,在数据大批量操作(新增.删除等)的情况下能够大幅度提升系统的性能.我曾经接触的一个项目,在没有採用batch处理时,删除5万条数据大概要半个小时左右,后来对系 ...
- JDBC batch批量Statement executeBatch 详细解释
JDBC提供了数据库batch处理的能力,在数据大批量操作(新增.删除等)的情况下能够大幅度提升系统的性能.我曾经接触的一个项目,在没有採用batch处理时,删除5万条数据大概要半个小时左右,后来对系 ...
- JDBC中的Statement和PreparedStatement的差别
以Oracle为例吧 Statement为一条Sql语句生成运行计划, 假设要运行两条sql语句 select colume from table where colume=1; select col ...
- JDBC的使用-----Statement
JDBC的查询步骤1.加载数据库驱动类 1)在工程下新建lib文件夹,将 ojdbc6.jar(jar包在:E:\oracle\product\11.2.0\dbhome_1\jdbc\lib)拷贝至 ...
- Java -- JDBC 学习--通过Statement进行数据库更新操作
通过 JDBC 向指定的数据表中插入一条记录. 1. Statement: 用于执行 SQL 语句的对象 1). 通过 Connection 的 createStatement() 方法来获取 2). ...
- [转] JDBC中的Statement和PreparedStatement的区别
以Oracle为例吧 Statement为一条Sql语句生成执行计划,如果要执行两条sql语句select colume from table where colume=1;select colume ...
随机推荐
- visual studio 使用正则查找或替换示例
visual studio 使用正则查找或替换示例 注意哟:使用之前应做好备份 visual studio 2015: 多行替换 (.*)point\ =(.*);\r\n.+this.([A-Za- ...
- Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解
俗话说:“十五的月亮十六圆”.那学习是不是也是如此呢?如果把月亮看成是我们的愿望,那十五便是我们所处的“高原期”,坚持迈过这个坎,我相信你的愿望终究会现实的.记得马云曾说:今天很残酷,明天更残酷,后天 ...
- functools:管理函数工具(部分)
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #functools:管理函数工具 #作用:处理其他函数的函数 #版 ...
- struts——拦截器
什么是拦截器 拦截器(Interceptor)是Struts 2的一个强有力的工具,有许多功能都是构建于它之上,如国际化(前两篇博客介绍过).转换器,校验等. 拦截器是动态拦截Action调用的对象. ...
- Oracle sga、pga介绍改动
oracle推荐OLTP(on-line TransactionProcessing)系统oracle占系统总内存的80%,然后再分配80%给SGA,20%给PGA.也就是 SGA=system_to ...
- SpringMVC的@ResponseBody返回JSON,中文乱码问题的解决.
SpringMVC的@ResponseBody,返回json,如果有中文显示乱码的解决办法. 在SpringMVC的配置文件中 <bean class="org.springframe ...
- springMVC3学习(六)--SimpleFormController
SimpleFormController提交表单流程例如以下: login.jsp <form action="login" method="post"& ...
- kaggle之数字序列预测
数字序列预测 Github地址 Kaggle地址 # -*- coding: UTF-8 -*- %matplotlib inline import pandas as pd import strin ...
- C#邮件发送
public static void CreateCopyMessage() { MailAddress from = new MailAddress("yang@163.com" ...
- C# 类属性封装、字段的详解
今日敲代码时,突然感觉对类的属性封装.字段有点犯迷糊了..连基础的都不知道了,那敲的代码怎么能严谨高效的.果断拿起各种高级编程.大全啥的翻起来~~这不再把自己的理解写下来(定义都是直接抄书的),献给同 ...