一、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. Superset 初探

    安装都是借鉴的别人的,已经剪裁下来.到自己文件夹里了. 下面介绍.如何启动superset ,BI 分析工具.这是我以前的强项.应该没问题. 问题: 安装好了之后,再打开localhost 就拒绝访问 ...

  2. 【scala】应用程序和App特性

    一.应用程序 要运行一个Scala对象,必须提供一个独立对象的名称.这个独立对象需要包含一个main方法,该方法接受一个Array[String]作为参数,结果类型为Unit. import Chec ...

  3. 条款21:必须返回对象的时候,不要妄想使其返回reference

    //先看看下面这个例子 class Rational{ public: Rational(int num, int denu) :numirator(num), denumirator(denu); ...

  4. react:reducer-creator

    function createReducer(initialState, handlers) { return function reducer(state = initialState, actio ...

  5. maven install时自动施行单元测试

    maven install时自动执行单元测试 1.maven-surefire-plugin简介 Maven本身并不是一个单元测试框架,它只是在构建执行到特定生命周期阶段的时候,通过插件来执行JUni ...

  6. android Handler的使用(二)

     Handler的使用(二) 一. Handler与线程的关系 Handler在默认情况下,实际上它和调用它的Activity是处于同一个线程的. 例如在Handler的使用(一)的示例1中,虽然 ...

  7. OpenCV-Python cv2.imdecode()和cv2.imencode() 图片解码和编码

    cv2.imdecode()函数从指定的内存缓存中读取数据,并把数据转换(解码)成图像格式;主要用于从网络传输数据中恢复出图像. cv2.imencode()函数是将图片格式转换(编码)成流数据,赋值 ...

  8. 2017-2018-2 20179215《网络攻防实践》seed缓冲区溢出实验

    seed缓冲区溢出实验 有漏洞的程序: /* stack.c */ /* This program has a buffer overflow vulnerability. */ /* Our tas ...

  9. 微软SaaS多租户解决方案

    微软SaaS多租户解决方案 docs.microsoft.com/en-us/azure/sql-database/saas-tenancy-app-design-patterns https://d ...

  10. Bootstrap中时间(时间控件)的设计

    运用bootstrap的时间控件,生成时间选择器. 1.截图:有以下这些样式 10年视图        年视图         月视图         日视图         小时视图 2.视图设计: ...