JDBC技术实现

279 阅读2分钟

这是我参与11月更文挑战的第十六天,活动详情查看:2021最后一次更文挑战

JDBC连接数据库步骤

1、加载jdbc驱动程序;

2、创建数据库的连接;

3、创建preparedStatement;

4、执行SQL语句;

5、遍历结果集;

6、处理异常,关闭JDBC对象资源。

详细步骤

首先我们在idea上创建一个空项目

image.png

  • 创建一个模块 选择 Java Enterprise

image.png

image.png

找到项目中的pom.xml文件

加入第三方的数据库驱动包

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.6</version>
</dependency>

image.png

包就成功导入啦!

新建工具类

image.png

代码如下

package com.hbwl.utils;


import com.mysql.cj.jdbc.Driver;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBUtils {

    //MYSQL默认的时区是欧美时区 时区如果不一致 会拒绝访问 我们可以将系统的时区修改为UTC
    //serverTimezone=UTC 设定时区
    //useUnicode=true    设定编码
    //characterEncoding=utf-8 让客户端支持中文  设定编码为utf-8
    private static final String  URL="jdbc:mysql://localhost:3306/db_crm?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";
    
    //jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk ;\
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为\
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。

    private static final String USERNAME="root";
    private static final String PASSWORD="123456";

    static{
        try {
            DriverManager.registerDriver(new Driver());//加载JDBC驱动程序
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //获取链接
    public static Connection openConn()
    {
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);
            //准备JDBC所需的三个参数(url,user,password)
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }
    
/**
*处理异常,关闭JDBC对象资源
*操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 明顺序相反:
*1、先关闭requestSet
*2、再关闭preparedStatement
*3、最后关闭连接对象connection
/
    public static void closeConn(Connection conn, PreparedStatement ps, ResultSet rs)
    {
        if(rs!=null)
        {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(ps!=null)
        {
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null)
        {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}

测试插入功能

代码如下

package com.hbwl.servlet;

import com.hbwl.utils.DBUtils;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

@WebServlet("/doAdd")
public class DoAddServlet extends HttpServlet {


    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取链接
        Connection connection = DBUtils.openConn();
        //准备好SQL语句
        String sql="INSERT INTO tb_user VALUES(null,'张三','男',22,'123456','湖北襄阳')";
        //执行SQL语句 并获取结果
        try {
            Statement statement = connection.createStatement();
            //返回影响了多少行
            int row = statement.executeUpdate(sql);
            if(row>0)
            {
                System.out.println("插入成功");
            }
            else {
                System.out.println("插入失败");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }


    }
}

整合Tomcat部署项目并启动项目

在浏览器中输入 http://localhost:8080/doAdd 查看是否插入成功数据到数据库

如果在连接字符串URL后面没有加useUnicode=true&characterEncoding=utf-8 插入的中文数据会变成?号。

image.png

这样就成功啦!!

小结

如果这篇文章对你有帮助的话,记得三连凹~

你的支持是小编最大的动力!!!