JDBC连接Mysql数据库写入和读取大文件

package XiaB204;
import com.mysql.jdbc.Driver;
import java.io.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
/**
 * @author xxp
 * @date 2020/7/20-14:01
 */
public class JDBCClob {
//写入小说的函数
    public static void ClobDemo(){
        Connection conn=null;
        PreparedStatement preparedStatement=null;
        try {
            Class clazz = Class.forName("com.mysql.jdbc.Driver");
            Driver driver = (Driver)clazz.newInstance();
            String URL="jdbc:mysql://localhost:3306/test?useUnicode=true&&characterEncoding=utf8";
            Properties info = new Properties();
            info.setProperty("user","root");
            info.setProperty("password","Xxx");

            conn = driver.connect(URL, info);//获取连接
            String sql="insert into mynovel values(?,?)";//预编译sql语句,推荐的用法,有效预防了SQL注入问题
            preparedStatement = conn.prepareStatement(sql);
            preparedStatement.setInt(1,1);//设置预编译的第一个参数
            File file = new File("E:\\all.txt");//读取e盘下文件
            InputStream inputStream = new FileInputStream(file);
            Reader reader = new InputStreamReader(inputStream,"utf-8");//这里的utf-8和读的应设置成一致,否则会出现乱码

            preparedStatement.setCharacterStream(2,reader,(int)file.length());
            int count=preparedStatement.executeUpdate();

            if(count>0){
                System.out.println("操作成功");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(preparedStatement!=null){
                try {
                    preparedStatement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    //读取小说的函数
    public static void ClobReader(){
        Connection conn=null;
        PreparedStatement preparedStatement=null;
        ResultSet resultSet=null;
        try {
            Class clazz = Class.forName("com.mysql.jdbc.Driver");
            Driver driver = (Driver)clazz.newInstance();
            String URL="jdbc:mysql://localhost:3306/test?useUnicode=true&&characterEncoding=utf8";
            Properties info = new Properties();
            info.setProperty("user","root");
            info.setProperty("password","XXX");
            conn = driver.connect(URL, info);//获取连接
            String sql="select novel from mynovel where id=?";//预编译SQL
            preparedStatement = conn.prepareStatement(sql);//

            preparedStatement.setInt(1,1);//设置第一个参数

            resultSet = preparedStatement.executeQuery();

            if(resultSet.next()){//对结果集处理
                Reader novel = resultSet.getCharacterStream("novel");//获取从数据库查询到的字符集
                FileWriter writer = new FileWriter("src/小说.txt");//把字符写入到src/小说.txt文件
                char[] tem=new char[100];
                int len=-1;
                while((len=novel.read(tem))!=-1){
                    writer.write(tem,0,len);
                }
                writer.close();
                novel.close();

            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
//        ClobDemo();
        ClobReader();
    }
}

报错信息:

Packet for query is too large (4241240 > 4194304). You can change this value on the server by setting the max_allowed_packet'

超过了默认的最大的容量

show variables like '%max_allowed_packet%';

在这里插入图片描述
大文件存放在mynovel表格中

create table mynovel(
    id numeric primary key,
    novel MEDIUMTEXT --可根据文件大小设置属性
);

进行了修改

alter table mynovel modify novel LONGTEXT;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的纺织品企业财务管理系统,源码+数据库+毕业论文+视频演示 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对纺织品企业财务信息管理的提升,也为了对纺织品企业财务信息进行更好的维护,纺织品企业财务管理系统的出现就变得水到渠成不可缺少。通过对纺织品企业财务管理系统的开发,不仅仅可以学以致用,让学到的知识变成成果出现,也强化了知识记忆,扩大了知识储备,是提升自我的一种很好的方法。通过具体的开发,对整个软件开发的过程熟练掌握,不论是前期的设计,还是后续的编码测试,都有了很深刻的认知。 纺织品企业财务管理系统通过MySQL数据库与Spring Boot框架进行开发,纺织品企业财务管理系统能够实现对财务人员,员工,收费信息,支出信息,薪资信息,留言信息,报销信息等信息的管理。 通过纺织品企业财务管理系统对相关信息的处理,让信息处理变的更加的系统,更加的规范,这是一个必然的结果。已经处理好的信息,不管是用来查找,还是分析,在效率上都会成倍的提高,让计算机变得更加符合生产需要,变成人们不可缺少的一种信息处理工具,实现了绿色办公,节省社会资源,为环境保护也做了力所能及的贡献。 关键字:纺织品企业财务管理系统,薪资信息,报销信息;SpringBoot
### 回答1: 在Java中使用JDBC连接MySQL数据库需要遵循以下步骤: 1. 下载并安装MySQL数据库,创建一个数据库,并在该数据库中创建一个表。 2. 下载MySQLJDBC驱动程序,在Java项目中添加该驱动程序的jar包。 3. 在Java代码中导入JDBC相关类,如:java.sql.DriverManager、java.sql.Connection、java.sql.Statement等。 4. 加载MySQLJDBC驱动程序,使用Class.forName()方法加载。 5. 使用DriverManager.getConnection()方法建立数据库连接,传入MySQL数据库的URL、用户名和密码。 6. 使用Connection对象创建Statement对象。 7. 使用Statement对象执行SQL语句,并接收返回的结果。 8. 处理查询结果,关闭Statement和Connection对象。 以下是一个示例代码: ```java import java.sql.*; public class JDBCExample { static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/TEST"; static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ Class.forName(JDBC_DRIVER); conn = DriverManager.getConnection(DB_URL,USER,PASS); stmt = conn.createStatement(); String sql = "SELECT id, name, age FROM student"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.print("ID: " + id); System.out.print(", Name: " + name); System.out.print(", Age: " + age); System.out.println(); } rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ se.printStackTrace(); }catch(Exception e){ e.printStackTrace(); }finally{ try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } } } ``` 在上面的示例中,我们首先加载MySQLJDBC驱动程序,然后使用DriverManager.getConnection()方法建立数据库连接。之后,我们创建一个Statement对象,使用该对象执行SQL查询语句,并处理返回的结果。最后,我们关闭Statement和Connection对象。 ### 回答2: JDBC(Java数据库连接)是一种Java编程语言的API,用于连接和操作数据库。要连接MySQL数据库,首先需要下载并安装适当版本的MySQL驱动程序,然后在Java代码中使用JDBC API进行连接。 首先,在Java代码中导入JDBC API的相关类,例如 `java.sql.Connection` 和 `java.sql.DriverManager`,以及MySQL驱动程序类。接下来,使用 `Class.forName("com.mysql.jdbc.Driver")` 方法加载并注册驱动程序。 然后,使用 `DriverManager.getConnection(url, username, password)` 方法创建一个数据库连接。其中,`url` 是包含数据库名称和其他连接信息的字符串,例如 "jdbc:mysql://localhost:3306/mydatabase";`username` 和 `password` 是连接数据库所需的用户名和密码。 如果连接成功,`getConnection()` 方法将返回一个 `Connection` 对象,可以使用它来执行各种数据库操作。例如,可以使用 `Statement` 对象来执行 SQL 语句,或者使用 `PreparedStatement` 对象来预编译和执行参数化的 SQL 语句。 在执行完数据库操作后,应该使用 `connection.close()` 方法关闭数据库连接,以释放系统资源。 使用JDBC连接MySQL数据库的代码示例如下: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class JDBCExample { public static void main(String[] args) { try { // 加载并注册MySQL驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 创建数据库连接 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password"); // 执行SQL查询 String sql = "SELECT * FROM mytable"; PreparedStatement statement = connection.prepareStatement(sql); ResultSet resultSet = statement.executeQuery(); // 处理查询结果 while (resultSet.next()) { int id = resultSet.getInt("id"); String name = resultSet.getString("name"); System.out.println("ID: " + id + ", Name: " + name); } // 关闭数据库连接 connection.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } } ``` 以上是使用JDBC连接MySQL数据库的简单示例。然而,在实际应用中,还需要处理异常、参数化查询、事务管理等更复杂的情况。 ### 回答3: JDBC(Java Database Connectivity)是Java程序连接数据库的标准接口,可以通过JDBC连接MySQL数据库进行数据的读取写入。 要使用JDBC连接MySQL数据库,首先需要下载并安装MySQLJDBC驱动程序(JDBC driver),然后引入该驱动程序的相关库文件到Java项目中。可以从MySQL官方网站上找到合适的JDBC驱动程序。 一旦驱动程序安装完成,就可以在Java代码中使用JDBC API来连接MySQL数据库。首先需要加载驱动程序并注册驱动。例如: ```java Class.forName("com.mysql.jdbc.Driver"); ``` 然后,创建一个连接对象,并指定连接的URL、用户名和密码。例如: ```java String url = "jdbc:mysql://host:port/database"; String username = "username"; String password = "password"; Connection conn = DriverManager.getConnection(url, username, password); ``` 这里的URL是连接MySQL数据库的地址,包括主机名、端口号和数据库名。用户名和密码是访问数据库的凭证。 连接成功后,可以使用Connection对象创建Statement对象,通过Statement对象执行SQL语句,如查询数据或更新数据。例如: ```java Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM table"); ``` 以上代码执行一个查询操作,将结果保存在ResultSet对象中。 最后,记得在使用完连接后关闭连接,以释放资源。代码如下: ```java rs.close(); stmt.close(); conn.close(); ``` 这样就完成了JDBC连接MySQL数据库的过程。通过使用JDBC接口,Java程序能够方便地与MySQL数据库进行数据交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值