JDBC(三)——使用Statement接口对数据库实现增删改操作(2)_int result = stmt1.executeupdate();-程序员宅基地

技术标签: 连接数据库  Statement接口  ● 数据库  ------【JDBC篇】  

上一篇博客里说到用Statement接口对数据库实现增删改操作,其中的sql语句是我们直接手写的;

但在实际开发过程中,数据都是从前台直接获取的,而不是自己手动导入的;

1.在添加图书这个操作中,我们可以写一个添加方法:

//增加图书的方法
	private static int addBook(int id,String bookName,double price,String author,int bookTypeId) throws Exception{
		//引用工具类dbUtil
		DbUtil dbUtil=new DbUtil();
		//连接数据库
		Connection con=dbUtil.getCon();
		//获取Statement接口
		Statement stmt=con.createStatement();
		//sql语句
		String sql="insert into t_book values("+id+",'"+bookName+"',"+price+",'"+author+"',"+bookTypeId+")";
		//执行sql语句
		int result=stmt.executeUpdate(sql);
		//关闭数据库,将关闭的方法封装到工具类里面的close()方法里面
		dbUtil.close(stmt, con);
		return result;
	}

这样的sql语句就可以用导入的数据,在进行测试之后:

public static void main(String[] args) throws Exception {
		int result=addBook(5,"Web前端",63.0,"大牛",3);
		if(result==1){
			System.out.println("数据添加成功!");
		}else{
			System.out.println("数据添加失败!");
		}
	}

结果:

 

2.但是这样其实也并不好,我们可以用面向对象思想来写一个Model类,将书籍的各个属性进行封装成一个Book类;

package Month01.Day08.Model;

public class Book {

	private int id;
	private String bookName;
	private float price;
	private String author;
	private int bookTypeId;
	
	public Book(int id, String bookName, float price, String author, int bookTypeId) {
		super();
		this.id = id;
		this.bookName = bookName;
		this.price = price;
		this.author = author;
		this.bookTypeId = bookTypeId;
	}
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getBookName() {
		return bookName;
	}
	public void setBookName(String bookName) {
		this.bookName = bookName;
	}
	public float getPrice() {
		return price;
	}
	public void setPrice(float price) {
		this.price = price;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public int getBookTypeId() {
		return bookTypeId;
	}
	public void setBookTypeId(int bookTypeId) {
		this.bookTypeId = bookTypeId;
	}
	
}

然后再写addBook2()方法:

package Month01.Day08.Demo01;

import java.sql.Connection;
import java.sql.Statement;

import Month01.Day08.DbUtil.DbUtil;
import Month01.Day08.Model.Book;

public class insert_sql_2 {

	//增加图书的方法
	private static int addBook2(Book book) throws Exception{
		DbUtil dbUtil=new DbUtil();
		Connection con=dbUtil.getCon();
		Statement stmt=con.createStatement();
		String sql="insert into t_book values("+book.getId()+",'"+book.getBookName()+"',"+
					book.getPrice()+",'"+book.getAuthor()+"',"+book.getBookTypeId()+")";
		int result=stmt.executeUpdate(sql);
		return result;
	}
	

	public static void main(String[] args) throws Exception {
		Book book=new Book(6,"Java设计思想",45,"亨得利",4);
		int result=addBook2(book);
		if(result==1){
			System.out.println("数据添加成功!");
		}else{
			System.out.println("数据添加失败!");
		}
	}
}

测试之后:

可以看到面向对象的思想还是很方便的! 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37084904/article/details/86100816

智能推荐

java8 异步调用_【JDK8】Java8 优雅的异步调用API CompletableFuture-程序员宅基地

文章浏览阅读735次。1.CompletableFuture是什么?CompletableFuture是JDK8的新特性之一,是异步调用相关的API,用于简化异步调用,提高异步调用的效率2.CompletableFuture有什么用?CompletableFuture 是对 Future对象的增强(JDK1.5),解决了异步调用中的很多问题:例如:多个异步任务之间的结果依赖问题,获取future结果时阻塞主线程的问题,..._jdk8异步调用

java 16进制 char_java 怎么根据char打印出来的16进制编码,定位到字符?-程序员宅基地

文章浏览阅读412次。本人想去除字符串后面的空格,但是,这个空格比较特殊,使用trim函数等多种方式都不能去除,问题1:怎么,通过char方法,获取到utf-16编码,进而判断,空格到底是属于哪一个字符?问题2:怎么去除下面代码中字符后面的空格?代码如下:public static void main(String[] args) {String str="勇";for(int i = 0;ichar c = s...

python判断正数还是负数_PythonExcel如何知道出现负数和正数的次数(计数/频率)?...-程序员宅基地

文章浏览阅读259次。使用两个计数器变量来跟踪总计数和阳性数。在开始时将它们设置为0,然后无论何时您想要添加1,在循环中使用+= 1。然后,通过去掉百分比符号,然后使用以下方法将字符串转换为数字,测试百分比是否大于0。if float(row[0].strip('%')) > 0。你可以将此更改为>=如果您想将0包含在“正”类别中。totalCount = 0numberOfPositives = 0with open..._如何用python把excel中某列金额判断出正负

php cookie start,关于php:警告:session_start():无法发送会话cookie – 已经发送的头文件(输出从…开始)...-程序员宅基地

文章浏览阅读185次。本问题已经有最佳答案,请猛点这里访问。登录页面中出现以下警告:它在localhost中工作,但在远程主机中不工作警告:session_start()[function.session-start]:无法发送会话cookie - 已经发送的标头(输出从第8行开始)警告:session_start()[function.session-start]:无法发送会话缓存限制器 - 已发送的标头(输出从第8..._tp session_start():不能发送已发送的会话cookie头

Centos7 yum安装 Kubernetes 集群详细步骤(安装部署)-程序员宅基地

文章浏览阅读344次。主机名ip备注k8s_master192.168.98.18Master&etcdk8s_node1192.168.98.19Node1k8s_node2192.168.98.20Node2Kubernetes是goole开源的大规模容器集群管理系统,使用centos7自带的Kubernetes组件、分布式键值存储系统etcd以及flannel实现Doc..._以下是在 centos 7 yum单节点上使用 kubernetes 进行部署的详细步骤

迅为零基础入门Linux系列教程_讯为电子linux-程序员宅基地

文章浏览阅读412次。所有教程由迅为原创,是迅为工作多年的工程师精心编写,深知初学者痛点。从Linux入门到驱动开发再到系统移植,一步一步由浅入深,逐步掌握嵌入式技术。每个例子有详细的注释,每个命令详细的说明。只要你对嵌入式感兴趣,就可以学习。视频精简,思路清晰,不做无用功让所学每一个技术点都能真真切切落实到项目中,学即所用。B站搜索‘北京迅为’ ,免费观看视频教程[ https://space.bilibili.com/33785640 ]嵌入式技术的学习方法:作为资..._讯为电子linux

随便推点

cloudera-scm-agent 已死,但 pid 文件存在_cloudera agent pid-程序员宅基地

文章浏览阅读3.2k次。问题:cloudera-scm-agent已死,但pid文件存在背景: 公司因为周末停电,所以关闭了cloudera集群。这是启动集群的时候出现的问题定位错误的过程:首先查看cloudera-scm-server的日志,发现日志刷到出现7180端口的过程中有一个小小的Exception,似乎与图中的这个错误无关。但是最后这个cloudera的登录界面是可以成功上去的。然后就百度开始各种搜..._cloudera agent pid

R语言画个中国地图使用shp文件_中国地图软件 shp-程序员宅基地

文章浏览阅读1.5w次,点赞18次,收藏113次。R语言画个中国地图,使用shp文件前几天帮人用R语言画个一个河北省的地图,河北省各个市被填充上颜色,颜色的深浅和这个市的GDP有关系,效果如下:然后加上各个城市的名字并加上指北针、再把背景的网格去掉,效果如下:那么如何做的??library(rgdal)library(ggplot2)library(maptools)library(mapproj)library(ggsn)......_中国地图软件 shp

6006.Cacti监控华为NE80路由器电源和风扇运行状态-程序员宅基地

文章浏览阅读209次。6006.Cacti监控华为NE80路由器电源和风扇运行状态第1张图是对华为NE80路由器的电源运行状态进行监控,第2张图是对华为NE80路由器的风扇运行状态和风扇转速进行监控,第3张图则对华为NE80路由器风扇模块的温度探测器进行设备温度监控,这些监控均是使用Cacti通过SNMP采集华为私有MIB的相关OID实现。..._华为 路由器 电源状态oid

手势控制 Python !Leap Motion Python 开发教程 (一)_leapmotion python-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏22次。标题手势控制 Python !Leap Motion Python 开发教程最近需要使用 Leap Motion 控制机械灵巧手,所以在 Python 的平台上做了一些 Leap Motion 的开发,现在整理一下发出来喽有兴趣的同学可以浏览一下 Leap Motion 开发者官网 哦一,配置环境Leap Motion 的开发者官方指出目前的开发文件最高只支持 Python 2.7, 所以..._leapmotion python

docker 挂载数据_docker查看容器挂载信息-程序员宅基地

文章浏览阅读2.3k次。docker 挂载数据到宿主机硬盘的两种方式 _docker查看容器挂载信息

java遍历json每个属性_Android(JSONObject)如何遍历平面JSON对象以获取每个键和每个值...-程序员宅基地

文章浏览阅读642次。问题我的问题。很简单但没有人问过它也没有回答过。我有一个扁平的JSON:{"number1":"value1", "number2":"value2", "number3":"value3" }我可以将它设置为JSONObject就好了。但是,我不知道如何遍历每个项目并获取其键字符串和值字符串。任何人都可以提供使用JSONObject的有效代码吗?我真正想要的是获得每个项目的关键和价值,而不是预先..._javajsonobject 属性个数

推荐文章

热门文章

相关标签