皮皮辉在JDBC中摸爬滚打的艰辛历程

JDBC

JDBC简介

1、JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
2、JDBC是Sun公司编的一堆类和方法,都封装在java.sql包中。你可以利用这堆类和方法来把你的程序和数据库连通。

JDBC的使用步骤

以下所有步骤根据如下所示的数据库建立:
在这里插入图片描述

1.java与mysql连接的驱动安装

将mysql-connector-java-5.1.36 .jar包拖进我们要写的项目组中
(不一样的版本用不一样的驱动包)
像下图所示:然后再将其导入类库
在这里插入图片描述

顺便扩充一下什么是jar包:

JAR文件(Java归档,英语:Java Archive)是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。

2.加载驱动

通过初始化驱动类com.mysql.jdbc.Driver,该类在mysql-connector-java的jar包中
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");

3.创建连接

创建连接需要的信息有:
a. 数据库所在的ip,本机为127.0.0.1或localhost,如果连接其他电脑上的数据库,则为那台电脑的相应ip;
b. 数据库的端口号, MySQL默认为3306,根据自己的设置来填;
c. 数据库名称,根据需要连接的数据库的名称填写,此处例子数据库名称为hui;
d. 编码方式UTF-8;
e. 账号 root;
f. 密码,如果创建数据库的时候没有使用默认的账号和密码,需填写自己设置的账号和密码。

connection = DriverManager.getConnection
                    ("jdbc:mysql://127.0.0.1:3306/此处写自己新建的数据库?useSSL=true&" +
                            "characterEncoding=utf-8&user=" +
                            "root&password==此处写自己的密码");
            System.out.println("创建连接成功");

4.写sql语句

根据不同的需要写不同的语句

String sql = "select * from userinfo";

5.得到statement对象

statement = connection.prepareStatement(sql);

6.执行sql得到结果集

rs = statement.executeQuery();

7.处理结果集

while (rs.next()) {
                UserInfo userInfo = new UserInfo();
                userInfo.setId(rs.getInt(1));
                userInfo.setName(rs.getString(2));
                userInfo.setPassword(rs.getString(3));
                list.add(userInfo);
            }

8.关闭资源

DBUtil.close(rs, statement, connection);

此处是对关闭资源做了一个封装 (所有的封装专门放在同一个工具包里),方便重复利用,具体函数如下:

public static void close(ResultSet rs,PreparedStatement statement,Connection connection){
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

对IDEA使用方式的一些补充

MVC模式

MVC简介

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
View(视图) - 视图代表模型包含的数据的可视化。
Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。

MVC实现方法

model层

在一般的程序中就是对应的数据库表的实体类,即将现实对象抽象成类。本次使用如下:

public class UserInfo {
    private int id;
    private String name;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "hui{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}
view层

view即为视图。不难理解,view层就是用户可以看到的东西。view层不关心后台怎么处理,只关心如何向用户展示信息。View层与Controller层接口紧密,需要系统开发

controller层

负责具体的业务模块流程的控制,在此层里要调用Service层的接口来控制业务流程。
Conroller层和Service层的区别:Controlle层负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计。

dao层

dao层(data access object)叫数据访问层,处于比较底层,执行一些比较基础的操作,具体到对于某个表、某个实体的增删改查等。以下是DAO层里查询所有用户的方法的具体实现

public class selectAllUser {
    public static List<UserInfo> findAll(){
        Connection connection = null;
        PreparedStatement statement = null;
        ResultSet rs = null;
        List<UserInfo> list = new ArrayList();

        try {
            //1.加载驱动与2.建立连接
            connection = DBUtil.create();
            //3.写sql
            String sql = "select * from userinfo";
            //4.得到statement对象
            statement = connection.prepareStatement(sql);
            //5.执行sql得到结果集
            rs = statement.executeQuery();
            //6.处理结果集
            while (rs.next()) {
                UserInfo userInfo = new UserInfo();
                userInfo.setId(rs.getInt(1));
                userInfo.setName(rs.getString(2));
                userInfo.setPassword(rs.getString(3));
                list.add(userInfo);
            }
            //7.关闭资源
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //7.关闭资源
            DBUtil.close(rs, statement, connection);
        }
        return list;
    }
}

services层

Service层主要负责业务模块的逻辑应用设计。同样是首先设计接口,再设计其实现的类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。Service层的业务实现,具体要调用到已定义的Dao层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。

发布了10 篇原创文章 · 获赞 1 · 访问量 360

猜你喜欢

转载自blog.csdn.net/qq_38147101/article/details/95482130