《JAVA程序设计》_第九周学习总结

1、学习内容

1.数据库的创建、配置

  • 在官网先下载好MySQL、navicat for MySQL、XAMPP、MySQL-connecter
  • 在XAMPP中点击start开启MySQL

  • 在navicat for MySQL中点击链接,输入信息后肯定

  • 在链接名处右击,建立新数据库,输入数据库名,字符集和校对均选择gb2312...

  • 处右击,输入表的信息html

  • 点开建立的mess表输入信息,按tab键可快速换行java

  • 将MySQL-connecter添加到IDEA的module中

  • 输入如下代码,检测数据库是否链接
import java.sql.*;
public class GetDBConnection {
    public static Connection connectDB(String DBName,String id,String p) {
        Connection con = null;
        String
                uri = "jdbc:mysql://localhost:3306/"+DBName+"?serverTimezone=GMT%2B8&characterEncoding=utf-8";
        try{  Class.forName("com.mysql.cj.jdbc.Driver");
        }
        catch(Exception e){}
        try{
            con = DriverManager.getConnection(uri,id,p); 
        }
        catch(SQLException e){}
        return con;
    }
}

2.数据库的查询

1.向数据库发送SQL查询语句

  • 首先使用Statement声明一个SQL语句对象,而后让已建立的链接对象con调用方法createStatement()建立这个SQL语句对象,代码以下:
try{Statement sql = con.createStatement();
}
catch(SQLException e){}

2.处理查询结果

  • 有了SQL语句对象后,这个对象就能够调用相应的方法实现对数据库中表的查询和修改,并将查询结果存放在一个ResultSet类声明的对象中。也就是说SQL查询语句对数据库的查询操做将返回一个ResultSet对象,ResultSet对象是按“列”(字段)组织的数据行构成。
ResultSet rs = sql.executeQuery("SELECT * FROM students");
  • 结果集rs的列数是4列,恰好和students的列数相同
  • 而对于:ResultSet rs = sql.executeQuery("SELECT name,height FROM students");ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数据行,得到一行数据后,ResultSet对象可使用getXxx方法得到字段值(列值),将位置索引(第一列使用1,第二列使用2等)或列名传递给getXxx方法的参数便可。
  • 不管字段是何种属性,总可使用getString(int columnIndex)或getString(String columnName)方法返回字段值的串表示

3.关闭链接

  • ResultSet对象和数据库链接对象(Connection对象)实现了紧密的绑定,一旦链接对象被关闭,ResultSet对象中的数据马上消失。这就意味着,应用程序在使用ResultSet对象中的数据时,就必须始终保持和数据库的链接,直到应用程序将ResultSet对象中的数据查看完毕。若是在代码ResultSet rs = sql.executeQuery("SELECT * FROM students");以后马上关闭链接:con.close();,程序将没法获取rs中的数据。

3.控制游标

  • 为了获得一个可滚动的结果集,需使用下述方法得到一个Statement对象。

Statement stmt = con.createStatement(int type ,int concurrency);mysql

4.条件与排序查询

5.更新、添加与删除操做

  • 更新
update 表 set 字段 = 新值 where <条件子句>
  • 添加

insert into 表(字段列表) values (对应的具体的记录)insert into 表 values (对应的具体的记录)git

  • 删除
delete from 表名 where <条件子句>

2、学习中的问题及解决方法

问题1:在链接数据库时出现如下问题sql

解决1:上网查询、询问同窗后发现是,module里没有添加MySQL-connecter数据库

问题2:解决了上述问题后发现仍是链接不了学习

解决2:参考hy同窗的博客zxy同窗的博客解决了问题,是时区不对,须要在这里加上?serverTimezone=GMT%2B8代码3d

问题3:在运行Example11_3时出现的返回空值的问题调试

解决3:调试了很久,发现rs的值为空,没有进入while循环,最后忽然发现表中有汉字,因而在创建链接的代码中加入了characterEncoding=utf-8,解决了问题code

3、代码托管

代码托管

相关文章
相关标签/搜索