在学习了java基础和mysql以及SQL语法之后,那我们可以开始学习如何程序对数据库的数据进行操作,基本操作就是,查询,新增,更新,删除,四个基本操作,也是全部操作。
这节我们将通过jdbc,通过程序去查询数据库中表数据。
一、准备工作
1>开发工具idea或者eclipse
现在开发工具一般去用idea,推荐大家使用。就是破解需要花点时间
2>mysql数据库服务
我们需要通过程序去操作查询数据库中的数据,我们可以自己在自个电脑搭建一个mysql5.6或者mysql5.7,mysql8.0的也可以。目前mysql8是目前的最新的版本
3>驱动包
通过程序去连接数据库服务,这个时候这个就需要一个驱动包帮助我们通过它去连接数据库并去使用数据服务。在选择下载驱动包时,最好一定要和数据库服务的版本一致。
二、通过开发工具新建项目
我这里用的是idea
file>New>Project
取好名字,点击create
三、导入驱动包
将下载好的驱动包,我这里是mysql-connector-java-8.0.14.jar
我们在项目根目录下新建目录lib,将驱动包复制进去
然后选中lib,右键
将lib目录加入项目依赖包
四、编写实体类
本节案例我们是查询一张文章表的数据,我们需要建立和文章表对应的一个实体对象类ArticleInfo
package hm.jdbc.model;
import com.sun.org.apache.xpath.internal.operations.Bool;
import java.util.Date;
public class ArticleInfo {
private Long id;
private Long typeId;
private String title;
private Integer viewNum;
private String contents;
private Date createTime;
private Date upTime;
private Boolean enabled;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getTypeId() {
return typeId;
}
public void setTypeId(Long typeId) {
this.typeId = typeId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Integer getViewNum() {
return viewNum;
}
public void setViewNum(Integer viewNum) {
this.viewNum = viewNum;
}
public String getContents() {
return contents;
}
public void setContents(String contents) {
this.contents = contents;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpTime() {
return upTime;
}
public void setUpTime(Date upTime) {
this.upTime = upTime;
}
public Boolean getEnabled() {
return enabled;
}
public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}
}
五、dao层
这里是本节学习的重点,首先我们先看下代码
package hm.jdbc.dao;
import hm.jdbc.model.ArticleInfo;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class ArticleInfoDao {
public List<ArticleInfo> getList(){
List<ArticleInfo> articleInfoList = new ArrayList<ArticleInfo>();
// 数据库连接
Connection conn = null;
// 执行sql用的
PreparedStatement ps = null;
// 结果集
ResultSet rs = null;
try {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获得连接对象
conn = DriverManager.getConnection("jdbc:mysql://192.168.0.177:3389/blog", "root", "root");
//3.获得语句对象(执行Sql语句)
String sql="select * from article_info";
ps = conn.prepareStatement(sql);
//4.执行Sql语句并接受结果集
rs = ps.executeQuery();
while (rs.next()) {
ArticleInfo articleInfo = new ArticleInfo();
articleInfo.setId(rs.getLong("id"));
articleInfo.setContents(rs.getString("contents"));
articleInfo.setTitle(rs.getString("title"));
articleInfo.setTypeId(rs.getLong("type_id"));
articleInfo.setEnabled(rs.getBoolean("enabled"));
articleInfo.setCreateTime(rs.getDate("create_time"));
articleInfo.setUpTime(rs.getDate("up_time"));
articleInfo.setViewNum(rs.getInt("view_num"));
articleInfoList.add(articleInfo);
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally{
try {
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return articleInfoList;
}
}
}
通过jdbc连接数据库查询数据有几个步骤
1>加载驱动
Class.forName("com.mysql.jdbc.Driver");
2>获得数据库连接对象
conn = DriverManager.getConnection("jdbc:mysql://192.168.0.177:3389/blog", "root", "root");
3>获取执行sql对象
ps = conn.prepareStatement(sql);
4>执行sql
rs = ps.executeQuery();
5>解析结果集
结果集对象是ResultSet,拿到结果集对象后,我们通过while循环同时判断是否存在下一个元素对象,在循环中,我们通过新建实体类对象,将结果
集中每一个对象解析放到对象属性,然后加入list中返回。
6>关闭连接
在使用完数据连接查询到数据之后,我们需要关闭对于的数据库连接,和最初打开获取的对象顺序相反。
六、编写测试入口类
public static void main(String [] args){
ArticleInfoDao articleInfoDao = new ArticleInfoDao();
List<ArticleInfo> list = articleInfoDao.getList();
for(ArticleInfo articleInfo : list){
System.out.println("文章标题:" + articleInfo.getTitle() + " 文章id:" + articleInfo.getId());
}
}
文章标题:文章标题1 文章id:1
文章标题:文章标题2 文章id:2
文章标题:文章标题3 文章id:3
文章标题:文章标题4 文章id:4
文章标题:文章标题5 文章id:5
编写教程不易,如果该文对你有帮助,同时你需要完整源代码时,可以通过下面连接下载
标签:jdbc,rs,articleInfo,连接,mysql,id,public From: https://www.cnblogs.com/xsoftnet/p/16830586.html