发表于: 2017-10-22 21:10:51

1 696


day5

今日完成

在网上找了教程,想在IDEA中通过JDBC来连接数据库,并对数据库进行操作。

jdbc连接数据库的具体步骤:

1.如果要使用数据库就要事先添加jar程序驱动包

2.加载驱动程序
Class.forName(“com.mysql.jdbc.Driver”);

3.获得数据库连接

通过DriverManager工具类中的getConnection方法,DriverManager类:管理JDBC驱动服务类,主要功能是获取Connection对象。

Connection c=DriverManager.getConnection(url,username,passward);

url,username,password参数都是String字符串。

其中username和password就是Mysql的用户名和密码。url:数据库地址。

在Mysql中是:jdbc:mysql://主机:端口/数据库名?参数的形式。

String url = "jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=UTF-8";

4.通过Connection创建Statement对象

Connection类: 代表数据库连接,要想访问数据库,必须先获得数据库连接

通过connection类中的createStatement方法,创建Statement对象

Statement st = conn.createStatement();

5.通过Statement类中的excuteQuery或excuteUpdate方法,执行sql语句。CRUD等操作,返回一个ResultSet对象。

String sql = "SELECT name FROM student WHERE id = 1";
ResultSet rs = st.excuteQuery(sql);

6.ResultSet操作结果集

从结果集中获取数据

数据在结果集rs中的存放方式:类似于表格的形式,初始游标指向表头。

要获取数据时,通过rs.next()方法,令游标指向下一行,然后通过rs.get*(*)方法获取该行的数据。

getXxx()方法:获取当前游标指向的这条记录中的列数据。如:getInt(),getString(),getDate(),getDouble()等。

当存在下一行时,rs.next()返回true,否则返回false。

所以rs.next()的返回值可以作为遍历结果集rs时的循环条件。


获取数据的方法:

(1)getInt("列名"),getString("列名")……

(2)getObject("列名")

通过ResultSet类中的方法获取rs中的数据:

 String name = null;

while(rs.next()) {

    name = rs.getString("name");

}

7.释放资源

与创建资源顺序相反,注意要放在finally中。

 

    释放rsrs.close();

    释放stst.close();

    关闭数据库链接:conn.close();

先关闭statement,再关闭connection


遇到的问题

1.不知道为什么,rs和st放在finally中就是红色的,找不到。放在try里面就没事。


2.如图的catch语句会报异常


当我将catch语句注释掉就好了,搞不懂。

3.这个异常的意思是sql语法错误吧,但是语法应该没错啊

明日计划

希望明天能将JDBC这些疑惑搞定,然后学习jdbctemplate

收获

学习了Java通过jdbc连接数据库的具体步骤,但是有很多细节还没有搞懂,明天继续。


返回列表 返回列表
评论

    分享到