博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)
阅读量:5104 次
发布时间:2019-06-13

本文共 4079 字,大约阅读时间需要 13 分钟。

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

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

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

 

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

wKioL1nAsi6BomlcAAB2TUiAn0E337.png

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

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

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

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

wKiom1nAs6vgCs1cAAECl07HChU806.png

 

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

wKioL1nAs9GyypNcAADSMFOTz1E910.png

 


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

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

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

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

wKioL1nAxDHBp1DoAAA1MeNDM_w998.png

 

一、添加博文

1.1 创建Blog实体类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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类,编写添加方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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类,测试添加方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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

 

二、查询所有博文

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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编写测试方法

1
2
3
4
5
6
7
8
9
10
11
12
13
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

 

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

练完,收功!!!

 

“软件思维”博客地址:,,感兴趣的小伙伴可以去看相关的其它博文。 

转载于:https://www.cnblogs.com/yixueyuan/p/7552192.html

你可能感兴趣的文章
微信公众号里面使用地图导航
查看>>
部署支持 https 的 Nginx 服务
查看>>
‘Cordova/CDVPlugin.h’ file not found
查看>>
WebAssembly是什么?
查看>>
C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件)...
查看>>
20151214--JSTL
查看>>
树状数组_一维
查看>>
【拓扑排序】【最短路】【最小生成树】Day 9.2
查看>>
Kubernetes 第三章 kubeadm
查看>>
C#/Asp.Net 获取各种Url的方法
查看>>
安装php源码包内的扩展
查看>>
uglify2之transform
查看>>
error C2259: 'CException' : cannot instantiate abstract class
查看>>
设计模式 单例模式的缺陷和补救办法及应用场景2
查看>>
UVA11722 Joining with Friend
查看>>
UVA11584 Partitioning by Palindromes
查看>>
Linux上安装JDK与Tomat
查看>>
HDU2089
查看>>
Vagrant 无法校验手动下载的 Homestead Box 版本
查看>>
gentoo 解除包屏蔽
查看>>