使用Statement接口实现增,删,改操作(工作中不常用这个,而用PreparedStatement接口)
一、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接口)的更多相关文章
- 第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据
第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform ...
- 【转】Android 增,删,改,查 通讯录中的联系人
一.权限 操作通讯录必须在AndroidManifest.xml中先添加2个权限, <uses-permission android:name="android.permission. ...
- Android 增,删,改,查 通讯录中的联系人
一.权限 操作通讯录必须在AndroidManifest.xml中先添加2个权限, <uses-permission android:name="android.permission. ...
- C# ADO.NET (sql语句连接方式)(增,删,改)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
随机推荐
- linux的find命令详解
find命令是用来在给定的目录下查找符合给定条件的文件 find [OPTIONS] [查找起始路径] [查找条件] [处理动作] 一.OPTIONS参数 -P.-L.-H:控制软连接的对待方式, ...
- 22-THREE.JS 面材质
<!DOCTYPE html> <html> <head> <title>Example 04.05 - Mesh face material</ ...
- angular js jquery中post请求的一点小区别
这也是最近遇到的坑,还是之前那个项目,现在要实现登录功能. 背景:注册功能之前已经跑通了.前端用的是jquery后台是springMVC.鉴于注册和登录有些接口功能是类似的(比如注册确保邮箱是没有注册 ...
- 014——VUE中v-if语法在网站注册中的实际应用
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- ARM汇编指令集1
(汇编)指令是CPU机器指令的助记符,经过编译过会得到一串0011组成的机器码,可以由CPU读取执行. (汇编)伪指令本质不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译 ...
- linux文件组、权限等
文件所有者.所在组合其他组 --改变用户所在组 组和在oa系统中的组差不多,用户代表的好像是个体,组有点像角色的意思.不过权限的话并不是个体从组中获得,组仅仅是一个机制,进行部分文件控制与共享 ...
- dateTimePicker编辑状态下,取值不正确的问题
当对dateTimePicker进行编辑,回车,调用函数处理dateTimePicker的value值时,其取值结果是你编辑之前的值,而不是你编辑后的值,虽然dateTimePicker.text的值 ...
- Oracle新用户以及授权的若干问题
Database 实验4 问题: 授权语句 grant create table to user_name; 收回授权语句 revoke create table from user_name; 注意 ...
- 监听文本框输入oninput和onpropertychange事件
前端页面开发的很多情况下都需要实时监听文本框输入,比如腾讯微博编写140字的微博时输入框动态显示还可以输入的字数.过去一般都使用onchange/onkeyup/onkeypress/onkeydow ...
- Django-rest-framework多条件查询/分页/多表Json
http://www.mamicode.com/info-detail-1648765.html