一、Statement接口

作用:用于执行静态 SQL 语句并返回它所生成结果的对象。

1. 创建数据库连接类及相册实体,代码如下:

 package com.learn.jdbc.util;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement; /**
* 封装数据库连接类
* @author Administrator
*
*/
public class DbUtil {
// 数据库连接
private static String dbUrl = "jdbc:mysql://localhost:3306/yizhuangxiu?useUnicode=true&characterEncoding=utf-8";
// 用户名
private static String dbUserName = "root";
// 密码
private static String dbUserPwd = "123456";
// 驱动名
private static String jdbcName = "com.mysql.jdbc.Driver"; /**
* 连接数据库
* @return
* @throws Exception
*/
public Connection getCon() throws Exception{
Class.forName(jdbcName);
Connection con = DriverManager.getConnection(dbUrl, dbUserName, dbUserPwd);
return con;
} /**
* 关闭连接
* @throws Exception
*/
public void close(Statement stmt,Connection con) throws Exception{
if(stmt != null){
stmt.close();
if(con != null){
con.close();
}
}
} /**
* 关闭连接
* @throws Exception
*/
public void close(PreparedStatement pstmt,Connection con) throws Exception{
if(pstmt != null){
pstmt.close();
if(con != null){
con.close();
}
}
} }
 package com.learn.jdbc.model;

 import java.io.File;

 /**
* 相册模型
* @author Administrator
*
*/
public class Album { private int id;
private String name;
private int uid;
private long time; private File content;
private File pic; public Album(String name, int uid, long time) {
this.name = name;
this.uid = uid;
this.time = time;
} public Album(int id, String name, int uid, long time) {
this.id = id;
this.name = name;
this.uid = uid;
this.time = time;
} public Album(String name, int uid, long time, File content, File pic) {
super();
this.name = name;
this.uid = uid;
this.time = time;
this.content = content;
this.pic = pic;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getUid() {
return uid;
} public void setUid(int uid) {
this.uid = uid;
} public long getTime() {
return time;
} public void setTime(long time) {
this.time = time;
} public File getContent() {
return content;
} public void setContent(File content) {
this.content = content;
} public File getPic() {
return pic;
} public void setPic(File pic) {
this.pic = pic;
} @Override
public String toString() {
return "["+this.id+","+this.name+","+this.uid+","+this.time+"]";
} }

2. 实现数据增加、修改、删除

 package com.learn.jdbc.chap03;

 import java.sql.Connection;
import java.sql.Statement; import com.learn.jdbc.model.Album;
import com.learn.jdbc.util.DbUtil; public class Demo3 {
private static DbUtil dbUtil=new DbUtil(); /**
* 添加相册-----用面向对象思想封装
* @param ab
* @return
* @throws Exception
*/
private static int addInfo2(Album ab) throws Exception{
Connection con = dbUtil.getCon();
String sql = "insert into sp_album values (null,'"+ab.getName()+"',"+ab.getUid()+","+ab.getTime()+")";
Statement stmt = con.createStatement();
int result=stmt.executeUpdate(sql);
dbUtil.close(stmt, con);
return result;
} /**
* 添加相册-----普通封装
* @param name
* @param uid
* @param time
* @return
* @throws Exception
*/
private static int addInfo(String name,int uid,long time) throws Exception{
Connection con = dbUtil.getCon();
String sql = "insert into sp_album values (null,'"+name+"',"+uid+","+time+")";
Statement stmt = con.createStatement();
int result=stmt.executeUpdate(sql);
dbUtil.close(stmt, con);
return result;
} public static void main(String[] args) throws Exception{
/*int result = addInfo("李四",8,System.currentTimeMillis());
if(result>0){
System.out.println("数据插入成功!");
}else{
System.out.println("数据插入失败!");
}*/ int result1 = addInfo2(new Album("呵呵",7,System.currentTimeMillis()));
if(result1>0){
System.out.println("数据插入成功!");
}else{
System.out.println("数据插入失败!");
}
}
}
 package com.learn.jdbc.chap03;

 import java.sql.Connection;
import java.sql.Statement; import com.learn.jdbc.model.Album;
import com.learn.jdbc.util.DbUtil; public class Demo4 {
private static DbUtil dbUtil = new DbUtil(); /**
* 更新相册
* @param ab
* @return
* @throws Exception
*/
private static int updateInfo(Album ab) throws Exception {
Connection con = dbUtil.getCon();
String sql = "update sp_album set name='" + ab.getName() + "',uid="
+ ab.getUid() + ",add_time=" + ab.getTime() + " where id="
+ ab.getId();
Statement stmt = con.createStatement();
int result = stmt.executeUpdate(sql);
dbUtil.close(stmt, con);
return result;
} public static void main(String[] args) throws Exception {
int result1 = updateInfo(new Album(12,"呵呵1", 6, System.currentTimeMillis()));
if (result1 > 0) {
System.out.println("数据修改成功!");
} else {
System.out.println("数据修改失败!");
}
}
}
 package com.learn.jdbc.chap03;

 import java.sql.Connection;
import java.sql.Statement; import com.learn.jdbc.model.Album;
import com.learn.jdbc.util.DbUtil; public class Demo5 {
private static DbUtil dbUtil = new DbUtil();
/**
* 删除数据
* @param id
* @return
* @throws Exception
*/
private static int deleteInfo(int id) throws Exception{
Connection con = dbUtil.getCon();
String sql = "delete from sp_album where id="+id;
Statement stmt = con.createStatement();
int result = stmt.executeUpdate(sql);
dbUtil.close(stmt, con);
return result;
} public static void main(String[] args) throws Exception {
int result1 = deleteInfo(13);
if (result1 > 0) {
System.out.println("数据删除成功!");
} else {
System.out.println("数据删除失败!");
}
}
}

所用到的表结构

CREATE TABLE `sp_album_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT '' COMMENT '相册名称',
`uid` int(11) DEFAULT '' COMMENT '用户id',
`add_time` bigint(13) DEFAULT '' COMMENT '创建时间',
`content` longtext COMMENT '简介',
`pic` longblob COMMENT '图像',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='相册1' CREATE TABLE `sp_account` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`accountName` varchar(255) DEFAULT '' COMMENT '转账用户',
`accountBalance` double DEFAULT '' COMMENT '转账金额',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='银行转账--Java测试'

使用Statement接口实现增,删,改操作(工作中不常用这个,而用PreparedStatement接口)的更多相关文章

  1. 第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据

    第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform ...

  2. 【转】Android 增,删,改,查 通讯录中的联系人

    一.权限 操作通讯录必须在AndroidManifest.xml中先添加2个权限, <uses-permission android:name="android.permission. ...

  3. Android 增,删,改,查 通讯录中的联系人

    一.权限 操作通讯录必须在AndroidManifest.xml中先添加2个权限, <uses-permission android:name="android.permission. ...

  4. C# ADO.NET (sql语句连接方式)(增,删,改)

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  5. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  6. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  7. ADO.NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...

  8. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  9. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

随机推荐

  1. ipmitool 查看硬件信息

    [root@75-6-25-yf-core ~]# cat /var/log/mcelog MCE 0HARDWARE ERROR. This is *NOT* a software problem! ...

  2. 使用ZooKeeper实现Java跨JVM的分布式锁

    一.使用ZooKeeper实现Java跨JVM的分布式锁 二.使用ZooKeeper实现Java跨JVM的分布式锁(优化构思) 三.使用ZooKeeper实现Java跨JVM的分布式锁(读写锁) 说明 ...

  3. 下载并安装Prism5.0库 Download and Setup Prism Library 5.0 for WPF(英汉对照版)

    Learn what’s included in Prism 5.0 including the documentation, WPF code samples, and libraries. Add ...

  4. scrapy的简单使用以及相关设置属性的介绍

    0. 楔子(一个最简单的案例) 1.scrapy.Spider scrapy.spiders.Spider name allowed_domains start_urls custom_setting ...

  5. wc.exe(c语言实现)

    Github项目地址:https://github.com/zhongciting2009/wc WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写 ...

  6. commond prompt CD

    如果要进入目前所在盘符的其他路径用cd命令可进入,但如果从c盘进入d盘等,是不用cd命令的. 如目前在c盘的任意目录,需要切换到d盘的根目录,用:“d:”命令(不含引号),如图: cd命令简介: 第一 ...

  7. Arcgis for Js之featurelayer实现空间查询和属性查询

    空间查询和属性查询是常用的两种对数据的检索与查询方式,在本节,将讲述Arcgis for Js下如何实现featurelayer的这两种查询方式,先贴图给大家看看: 实现界面 属性查询 空间查询 看完 ...

  8. C++11中提供了std::bind

    再来看看std::bind C++11中提供了std::bind.bind()函数的意义就像它的函数名一样,是用来绑定函数调用的某些参数的. bind的思想实际上是一种延迟计算的思想,将可调用对象保存 ...

  9. (十一)java循环结构

    while(循环的条件) {循环的语句} int a = 1; while(a < 5) { System.out.println(a);//1,2,3,4 a++; } System.out. ...

  10. shfileoperation 删除文件 FileDelete(CString strName)

    From:http://blog.csdn.net/lvwx369/article/details/41440883 注意:其中namePath 为全局变量 Cstring namePath; BOO ...