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

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

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

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

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

f81e12545ca4e2da3206c42e3bf4a114.png

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

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

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

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

a2fcd2e66e30d437f6baf4ae9ad789f4.png

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

d7fbbbc0b6b2d2b2bcc367cf96d5b777.png

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

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

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

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

3353a5aa6ca4342abe98402d40c9fc37.png

一、添加博文

1.1 创建Blog实体类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类,编写添加方法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类,测试添加方法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("失败了...");

}

}

结果:

1e617a56e0639efd9bf00056d5e05d69.png

二、查询所有博文

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

2.1 编写查询所有博文的方法public List findAll(){

List list = new ArrayList();

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编写测试方法public static void main(String[] args){

BlogDAO blogDAO = new BlogDAO();

List list = blogDAO.findAll();

System.out.println("文章ID\t标题\t\t发表时间\t\t状态\t内容");

for (int i = 0; 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());

}

}

结果:

a0914f72f6b3bddd15f78c0c6ac8b18d.png

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

练完,收功!!!d0a884b234507164bfdf4202ff778180.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值