Jdbc 操作mysq数据库

导读:本篇文章讲解 Jdbc 操作mysq数据库,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

概述

通常我们都是使用myBatis等类似的框架去操作mysql数据库,某些场景下可能直接使用jdbc更加简单快捷,比如数据迁移的时候。

添加mysql连接驱动包

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.11</version>
		</dependency>

获取数据库连接

package com.study.practice.db;

import java.sql.*;

public class dataMove {
    private Connection getMysqlConn(){
        try {
            // 注册数据库驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            return DriverManager.getConnection("jdbc:mysql://192.168.195.129:3306/practice?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT",
                    "root", "123456");
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}

关闭连接

    public  void  close(Connection conn, Statement stmt, ResultSet rs){

        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(stmt!=null){
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

处理数据实例

    public void deal() throws SQLException {
        //比较懒,拼接insert into 语句
        String sql = "insert into t_user(name,age,sex,addr) value(?,?,?,?)";
        //MySQL数据库
        Connection mysqlconn = getMysqlConn();
        PreparedStatement pstmt = mysqlconn.prepareStatement(sql);

        //取出结果集并向MySQL数据库插入数据 ( 使用批处理 )
        //完成条数
        int count =0;
        long start = System.currentTimeMillis();
        for(int i = 0; i < 10; i++) {
            pstmt.setString(1, "name" + i);
            pstmt.setInt(2, 20 + i);
            pstmt.setInt(3, 1);
            pstmt.setString(4, "老家");
            pstmt.addBatch();
            count++;
        }

        // 防止有数据未提交
        pstmt.executeBatch();
        System.out.println("完成 "+count+" 条数据,耗时:"+(System.currentTimeMillis()-start)/1000.0+"s");

        //关闭资源
        close(mysqlconn,pstmt,null);
    }

测试

    public static void main(String[] args) {
        dataMove dataMove = new dataMove();

        try {
            dataMove.deal();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

参考

Java中JDBC的PreparedStatement用法
Java 实现两个数据库数据的迁移

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/100312.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!