学习笔记-Java连接数据库问题

本文讨论了在MySQL数据库中插入数据时遇到的问题,包括使用statement与preparedstatement的区别,以及在工程中使用GBK编码的原因。文章详细解释了如何通过使用preparedstatement对象和正确编码来解决数据插入失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做毕业设计,需要一个全文数据库,于是就想自己建立一个。遇到的问题如下:

1、插入数据问题

      在网数据库里面插入数据的时候,不能执行成功,所采用的方法是:

                 Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/infocloud", "root", "root");
        statement = connection.createStatement();

                 statement.execute("INSERT INTO DBFiles2Index(URL,DOCNO,CONTENTTITLE,CONTENT) VALUES(url,docno,contenttitle,content)");

     其中url,docno,contenttitle,content都是从文件中解析出来的字符串,采用MySQL数据库,每个字段均是text类型,但是插入均失败。

     经过排查,修改如下可以正常使用:

    a)  不采用statement对象,使用preparedstatement这个对象

                PreparedStatement pst = connection.prepareStatement("INSERT INTO DBFiles2Index (URL,DOCNO,CONTENTTITLE,CONTENT) VALUES (?,?,?,?);"); 
                pst.setString(1,url); 
                pst.setString(2,docnumber);
                pst.setString(3,contenttitle);
                System.out.println(content);
                pst.setString(4,content);
       
                pst.execute(); 

         PreparedStatement 的setString方法是设置第1,2,3,4个value值,这里还是以上的4个String类型的参数。

   b) 在工程的Properties->Resource采用GBK编码格式

        正常在工程中都是设置编码格式问UTF-8,这样中文才能显示,但是这时不能网数据库中插入数据,不知道为什么,具体还要再研究。采用GBK编码后,工程中中文显示为         乱码,但是插入数据库中的显示是中文,用SELECT语句查询的时候返回值也是正常显示中文。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值