首页 > 数据库 >jdbc入门案例学习,java如何连接mysql,如何和mysql进行连接

jdbc入门案例学习,java如何连接mysql,如何和mysql进行连接

时间:2022-10-26 23:45:53浏览次数:88  
标签:jdbc rs articleInfo 连接 mysql id public

在学习了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

相关文章

  • JDBC连接MySQL(简单)
    JDBC连接MySQL    加载及注册JDBC驱动程序         Class.forName("com.mysql.jdbc.Driver");         Class.forName("com......
  • JDBC 的API之 Connection 和 Statement
     Connection是建立连接的api他有两个功能: 一是:建立和数据库的连接:Connectionconn=DriverManager.getConnection(url,root,password); 二是:管理事务,就是在java......
  • 高性能mysql 第四版 电子书 pdf
    作者:SilviaBotros/JeremyTinley出版社:O'ReillyMedia副标题:Optimization,Backups,andReplication 链接:高性能mysql第四版  HowcanyourealizeMy......
  • mysql: mysql 笔记 (up=黑马程序员)
    mysql笔记(up=黑马程序员)   一、笔记内容 --it黑马教程----part1基础教程USEmytest;DROPTABLEinfo;CREATETABLEIFNOTEXISTS`info`......
  • mysql基础
    1.SQL分类DDL:数据库定义语言,用来定义数据库对象(数据库,表,字段)DML:数据库操作语言,用来对数据库中数据进行增删改DQL:数据查询语言,用来查询数据库中表的记录DCL:数据控制语......
  • Util类 为了代码复用将一些连接数据库的代码
    importjava.sql.*;//导入包publicclassUtil1{//基本配置staticfinalStringJDBC_DRIVER="com.mysql.cj.jdbc.Driver"; staticfinalStringDB_URL="jdbc:m......
  • 「MySQL高级篇」MySQL索引原理,设计原则
    ......
  • MySQL 上亿大表如何优化?
    背景XX实例(一主一从)xxx告警中每天凌晨在报SLA报警,该报警的意思是存在一定的主从延迟。(若在此时发生主从切换,需要长时间才可以完成切换,要追延迟来保证主从数据的一致性)XX......
  • 安装Mysql-zip安装
    一、安装1、下载到mysql官网http://dev.mysql.com/downloads/mysql/下载mysql注:msi的是安装版2、解压解压到想安装的目录下,我的是D:mysql-5.7.13-winx643、配置my.......
  • MySQL: 不四舍五入取整、不四舍五入取小数、四舍五入取整、向下取整、向上取整、四舍
    总结了MySQL中不四舍五入取整(截取整数部分)、四舍五入取整、向下取整、向上取整、四舍五入取小数、不四舍五入取小数的几种方法。其中:不四舍五入取整(截取整数部分)就是‘......