前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)

《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)

作者头像
十方上下
发布2018-06-14 10:32:02
5410
发布2018-06-14 10:32:02
举报
文章被收录于专栏:学习力学习力

其实···,我个人是很不喜欢这样的缩写的,比如:我有一句MMP不知道该不该讲!!!

这里面的MMP你知道是什么意思么!!!

还有WQNMLGB,你知道是什么吗?是的,没错,写全了就是“我去年买了个包”!!!

好吧,还是讲点正经的,JDBC是什么呢?大家说得不错,就是“觉得不错”!!!其工作原理如下图:

wKioL1nAsi6BomlcAAB2TUiAn0E337.png
wKioL1nAsi6BomlcAAB2TUiAn0E337.png

根据上图来看,使用的步骤很清楚了吧。

    第一步:导入JDBC的驱动包。

    第二步:使用DriverManager加载驱动。

    第三步:调用JDBC API访问或操作数据库中的数据。

wKiom1nAs6vgCs1cAAECl07HChU806.png
wKiom1nAs6vgCs1cAAECl07HChU806.png

JDBC要使用的常用类和接口如下图如式:

wKioL1nAs9GyypNcAADSMFOTz1E910.png
wKioL1nAs9GyypNcAADSMFOTz1E910.png

接下来我们通过几个常用操作来演示使用Java访问MySql中的数据该如何编写代码。

先创建一个博客管理的数据库,在其中添加文章表,表中有以下几个字段:

    文章ID,文章标题,文章内容,发表时间,文章显示状态(0.不显示 1.显示)

之后再添加几条测试数据。

wKioL1nAxDHBp1DoAAA1MeNDM_w998.png
wKioL1nAxDHBp1DoAAA1MeNDM_w998.png

一、添加博文

1.1 创建Blog实体类

代码语言:javascript
复制
public class Blog {
	private int blogid;	//ID
	private String title;	//标题
	private String content;	//内容
	private String pubtime;	//发表时间
	private int blogstate;	//状态 0.不可见 1.可见
	
	public int getBlogid() {
		return blogid;
	}
	public void setBlogid(int blogid) {
		this.blogid = blogid;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public String getPubtime() {
		return pubtime;
	}
	public void setPubtime(String pubtime) {
		this.pubtime = pubtime;
	}
	public int getBlogstate() {
		return blogstate;
	}
	public void setBlogstate(int blogstate) {
		this.blogstate = blogstate;
	}
}

1.2 创建BlogDAO类,编写添加方法

代码语言:javascript
复制
public class BlogDAO {
	/**
	 * 添加博客文章
	 * @param blog
	 * @return 是否添加成功 0.失败 1.成功
	 */
	public int addBlog(Blog blog){
		int result = 0;
		try {
			//1. 加载驱动
			String driver = "com.mysql.jdbc.Driver";
			Class.forName(driver);
			//2. 创建连接
			String url = "jdbc:mysql://127.0.0.1:3306/blogdb";
			Connection conn = DriverManager.getConnection(url,"root","root");
			//3. 执行SQL语句,?表示占位符,后期可以使用setxxx()方法给对应的位置填充数据
			String sql ="INSERT INTO blogTbl (title, content) VALUES (?, ?)";
			PreparedStatement ps = conn.prepareStatement(sql);
			//3.1 填充数据
			ps.setString(1, blog.getTitle());
			ps.setString(2, blog.getContent());
			result = ps.executeUpdate();
			conn.close();
		}catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return result;
	}
}

1.3 创建Test类,测试添加方法

代码语言:javascript
复制
public static void main(String[] args){
	Blog blog = new Blog();
	BlogDAO blogDAO = new BlogDAO();
	
	blog.setTitle("添加一个标题");
	blog.setContent("添加了一点点内容...");
	
	if(blogDAO.addBlog(blog)>0){
		System.out.println("添加成功!");
	}
	else{
		System.out.println("失败了...");
	}
}

结果:

wKiom1nAxUvyyS42AABAkqdrq1E505.png
wKiom1nAxUvyyS42AABAkqdrq1E505.png

二、查询所有博文

    因为前面需要创建的文件都已经创建了,所以这儿只需要在BlogDAO类中编写查询所有博文的方法即可。

2.1 编写查询所有博文的方法

代码语言:javascript
复制
public List<Blog> findAll(){
	List<Blog> list = new ArrayList<Blog>();
	try {
		//1. 加载驱动
		String driver = "com.mysql.jdbc.Driver";
		Class.forName(driver);
		//2. 创建连接
		String url = "jdbc:mysql://127.0.0.1:3306/blogdb";
		Connection conn = DriverManager.getConnection(url,"root","root");
		//3. 执行SQL语句
		String sql ="select blogid, title, content, pubtime, blogstate from blogTbl";
		PreparedStatement ps = conn.prepareStatement(sql);
		//3.1 读取数据并封装成Blog对象
		ResultSet rs = ps.executeQuery();
		while (rs.next()) {
			Blog blog = new Blog();
			blog.setBlogid(rs.getInt("blogid"));	//getInt()也可以通过下标读取数据
			blog.setTitle(rs.getString("title"));
			blog.setContent(rs.getString("content"));
			blog.setPubtime(rs.getString("pubtime"));
			blog.setBlogstate(rs.getInt("blogstate"));
			list.add(blog);
		}
		conn.close();
	}catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return list;
}

注意:因为是读取数据,并且读取的数据不止一条记录,所以一般使用集合保存后返回。

2.2编写测试方法

代码语言:javascript
复制
public static void main(String[] args){
	BlogDAO blogDAO = new BlogDAO();
	List<Blog> list = blogDAO.findAll();
	
	System.out.println("文章ID\t标题\t\t发表时间\t\t状态\t内容");
	for (int i = 0; i < list.size(); i++) {
		System.out.println(list.get(i).getBlogid()+"\t"+
				list.get(i).getTitle() +"\t"+
				list.get(i).getPubtime()+"\t"+
				(list.get(i).getBlogstate()==0?"不可见":"可见")+"\t"+
				list.get(i).getContent());
	}
}

结果:

wKioL1nAyUWCgKidAABfAhZWzuE592.png
wKioL1nAyUWCgKidAABfAhZWzuE592.png

使用JDBC基本就这两个套路,一个是增、删、改的功能,一个是查询的功能。

练完,收功!!!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-09-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档