发表于: 2017-06-02 00:29:43

2 1058


java


java任务17之还是一丢丢


在今天几乎10个小时的学习中遇到好多问题,大多问题都集中在于创建Statement,执行SQL语句,和关闭连接中卡出不来。

package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public  class JBDC {
public  static void main(String[] args) {
Connection c = null;
Statement s = null;
try {
Class.forName("com.mysql.jdbc.Driver");

c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db1?characterEncoding=UTF-8&useSSL=false",
"root","luozeying");

s = c.createStatement();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (s != null)
try{
s.close();
} catch (SQLException e) {
e.printStackTrace();
}
if (c != null)
try {
c.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

执行Statement非常的简单,只要用import语句便可以引用了import java.sql.Statement;在类中的语句是:

Statement s = c.createStatement();

接下来就是执行自己的SQL语句插入数据。但是在插入数据时,无论如何用那些简单的SQL语句都无法实现插入,至今找不到错误在哪里,所以我就暂时跳过了这一步。接下来我需要关闭数据库。

数据库的连接是有限资源,相关操作结束后,养成关闭数据库的好习惯
先关闭Statement
后关闭Connection

那么我在选择关闭数据库的选择上一开始选择用一个叫try-with-resource的方式去关闭数据库。但是失败了。报错的原因是说没有找其中加一个大括号,问了些师兄,有的师兄说少加了大括号,有的说语法错误。可能没有很好的去了解这个方式,这个方式有的人说是个语法糖,听说会在系统中会自动帮我补全不完整代码。一开始的代码和这个一样的,但是怎么修改都跑不动,只能用一个finally语句来做这个关闭连接.不知道用try-with-resource的方式是不是不能省去SQL的插入语句而导致的。

--------------------------------------------------------------------------------------------我是萌萌的分割线------------------------------------------------------------------------------------------------------------

明天计划的事:在自己的这个JDBC中加入CRUD。因为没有这些操作,编写一个DAO是不现实的,也无法进行下去。

C 增加(Create) 
R 读取查询(Retrieve) 
U 更新(Update) 
D 删除(Delete) 

今天问题:1:报错:类TestCalss是公共的, 应在名为 TestCalss.java 的文件中声明

                  解决的方案,百度,得到答案,首先要查看公共类名和文件名是否一致,文件中有而且只有一个public的class。我的问题是前者。在创建这个类的时候是叫jbdc,打错了,我之后在打怎么正确的jdbc也是没用的。

                2:用try-with-resource的方式去关闭数据库失败

                               解决方案,用了另外一个方式,只是觉得另外的一个方案代码比较长而且冗长,虽然对于新手的我来说不是坏事。(其实我是懒)

                   3:在使用了Statement后发现,自己执行的插入语句无法正确的插入数据到表中

                                 解决方案:未解决,自己在用SQL语句应该没有用到正确的方式,只是用了最简单的两个方式,从而插入不到表中。明天得找个时间好好研究一下插入语句为什么失败。

                     4:刚开始用jdbc连接数据库时看到的报错:

Wed Jun 29 17:59:32 CST 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

            解决方法:百度,查找得知是要指明SSL连接,要在协议后面+上?characterEncoding=utf8&useSSL=true,我添加的是红字所以就好了。

      

       收获不大,问题很多。收获全在问题里面了,学到几点,但是这些远远不够,还是需要学习基础知识的。


返回列表 返回列表
评论

    分享到