JDBC(三)——使用Statement接口对数据库实现增删改操作(2)_程序员的时光的博客-程序员秘密

技术标签: 连接数据库  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

智能推荐

前端开发:JS中查找数组的目标元素方法find()、findIndex()的使用_前端findindex_wqwq_22的博客-程序员秘密

                  返回值返回符合测试条件的第一个数组元素值,如果没有符合条件的则返回 undefined。4、用法find() 方法为数组中的每个元素都调用一次函数执行:当数组中的元素在测试条件时返回true时, find() 返回符合条件的元素,之后的值不会再调用执行函数;如果没有符合条件的元素返回 undefined。5、注意事项(1)find() 对于空数组,函数是不会执行的;(2)f

HTTP Status 500 - javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Don't know how_小道仙97的博客-程序员秘密

在访问某个页面出现了上标题所示的异常。一开始我也不知道什么原因,因为后台已经返回了数据,而且前端的el/jstl表达式都写的没毛病。后来无意中想到,我这个数据是确定的只有一条,但是我还是用的<c:forEach>来写。然后我把数据包装了一下,虽然只有一条数据,但是我返回的还是一个list集合就没问题啦出现这个异常可能还有其它原因,而且解决这种只有一条数据的方法应该也还有其它方法...

Writing USB Device Drivers_dijkstar的博客-程序员秘密

 Writing USB Device DriversChapter 1. IntroductionThe Linux USB subsystem has grown from supporting only two different types of devices in the 2.2.7 kernel (mice and keyboards), to over 20 diffe

ms10_002漏洞复现_人已走的博客-程序员秘密

ie6才可msfconsole中search ms10_002

Tomcat部署_部署tomcat_任来世枯朽成灰的博客-程序员秘密

免费的、开放源代码的Web应用服务器Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目由Apache、Sun和一些公司及个人共同开发而成深受Java爱好者的喜爱,并得到部分软件开发商的认可目前比较流行的Web应用服务器。

随便推点

扎心一问!你凭什么成为年薪80W的Java架构师?_weixin_37097680的博客-程序员秘密

不管是开发、测试、运维,每个技术人员心里多多少少都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。很多人在问我,程序员如何...

Ouino法国学习系统评价它是如何比其他学习软件_Tipperary的博客-程序员秘密

Ouino法国学习系统评价它是如何比其他学习软件   我记得几年前,我买了后续沿音频CD一本书。我认为它使学习更容易,因为我有一个UDIO伴侣?男孩,那些日子结束了!学习的可能性是很大的sooo好于2010年。   如今,有在市场上几个学习工具,免费的网站,学习软件价值数百元。当比较的学习解决方案,我相信只有音频的教训出来的图片。他们需要太多的关注,让承认这一点,theye无聊!不过话又说回来,我

在 React 中实现条件渲染的七种方法_react 条件渲染_清尘程序的博客-程序员秘密

条件渲染方式一、if 语句先从 React 最基本的条件类型来看。如果有数据就显示组件,如果没有数据就不显示任何内容。posts 为需要渲染的列表:export default function App() { const { posts } = usePosts(); if (!posts) return null; return ( <div> <PostList posts={posts} /> </div&g..

Vue. 之 npm安装 axios_a281412785的博客-程序员秘密

Vue. 之 npm安装 axios  使用指令: cnpm install axios转载于:https://www.cnblogs.com/Charles-Yuan/p/11294600.html

Mac下载安装mysql及图形化工具Navicat Premium_mac mysql图形化工具下载_暮岁首的博客-程序员秘密

Mac下载安装mysql及图形化工具Navicat Premium参考链接:https://blog.csdn.net/jor_ivy/article/details/81323199一、下载安装mysql1.1、下载mysql(1)软件下载地址:https://dev.mysql.com/downloads/选择 :MySQL Community Server(2)点...

jdbc连接不同的数据库(oracle、sqlserver、mysql)的步骤_jdbc代码连接mysql和连接sqlserver是一样的吗_ckxlnd的博客-程序员秘密

这里粗略的总结了下jdbc连接oracle、sqlserver和mysql三种常用数据库的方法,并提到了SQL语句和存储过程的调用,个人觉得很有对比性哦,欢迎提意见

推荐文章

热门文章

相关标签