首页 技术 正文
技术 2022年11月12日
0 收藏 401 点赞 5,123 浏览 3349 个字

学号 20175212 《Java程序设计》第九周学习总结

教材学习内容总结

一、MySQL数据库管理系统

1.在官网上下载并安装MySQL

2.在IDEA中输入测试代码ConnectionDemo.java

import static java.lang.System.out;
import java.sql.*;public class ConnectionDemo {
public static void main(String[] args)
throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
String jdbcUrl = "jdbc:mysql://localhost:3306/demo";
String user = "root";
String passwd = "";
try(Connection conn =
DriverManager.getConnection(jdbcUrl, user, passwd)) {
out.printf("已%s数据库连接%n",
conn.isClosed() ? "关闭" : "打开");
}
}
}

二、MySQL客户端管理系统

1.使用老师推荐的XAMPP,在官网进行下载

2.成功连接MySQL,如下图

3.用浏览器输入http://127.0.0.1 打开XAMPP。

4.SQL建立数据库:

CREATE SCHEMA demo;

5.建立数据库表:

use demo;
CREATE TABLE t_message (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name CHAR(20) NOT NULL,
email CHAR(40),
msg TEXT NOT NULL
) CHARSET=UTF8;

三、连接数据库

1.在官网https://dev.mysql.com/downloads/connector/j/ 上下载驱动

mysql-connector-java-5.1.41-bin.jar

2.在IDEA中添加驱动,如下图:

3.运行示例代码,显示成功连接如下图

四、查询操作

  1. 得到SQL查询语句对象
try{  Statement sql=con.createStatement();
}
catch(SQLException e ){}

2.处理查询结果

SQL查询语句对数据库的查询操作将返回一个ResultSet对象,ResultSet对象是按“列”(字段)组织的数据行构成

ResultSet rs = sql.executeQuery("SELECT * FROM students");

下图为若干方法:

3.关闭连接:

con.close();

ResultSet对象和数据库连接对象(Connection对象)实现了紧密的绑定,一旦连接对象被关闭,ResultSet对象中的数据立刻消失

4.顺序查找

使用next()方法移到下一个数据行

5.控制游标

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

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

常用的滚动查询方法:

  • Public boolean absolute(int row):将游标移到参数row的指定行后
  • Public int getRow();得到当前游标所指向的行号

6.条件与排序查找

  1. where子语句

一般格式: select 字段 from 表名 where 条件

(1)字段值和固定值比较,例如:select name,height from mess where name='李四'

(2)字段值在某个区间范围,例如:select * from mess where height>1.60 and height<=1.8

  1. 排序

order by子语句对记录排序

五、更新、添加与删除

1.更新

update  表 set 字段 = 新值 where <条件子句>

2.添加

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

insert into 表 values (对应的具体的记录)

3.删除

delete from  表名 where <条件子句>
select * from mess where name like '%林%' order by name

教材学习中的问题和解决过程

教材学习有问题先去https://shimo.im/doc/1i1gldfsojIFH8Ip/看看,如果别人没有提出相同问题,可以编辑文档添加,然后把自己提出的问题复制到下面:

  • 问题1:XAMMPP中无法启动MySQL

  • 问题1解决方案:在计算机管理 ->服务中停止MySQL的进程

    成功启动

  • 问题2:根据教程IDEA连接数据库时,提示错误
  • 问题2解决方案:根据错误提示,修改代码
import static java.lang.System.out;
import java.sql.*;public class ConnectionDemo {
public static void main(String[] args)
throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");
String jdbcUrl = "jdbc:mysql://localhost:3306/demo?serverTimezone=UTC";
String user = "root";
String passwd = "";
try(Connection conn =
DriverManager.getConnection(jdbcUrl, user, passwd)) {
out.printf("已%s数据库连接%n",
conn.isClosed() ? "关闭" : "打开");
}
}
}

修改了两部分

  • 首先是Class.forName("com.mysql. cj .jdbc.Driver");为根据错误提示添加驱动。
  • 第二处是String jdbcUrl = "jdbc:mysql://localhost:3306/demo ?serverTimezone=UTC ";是根据错误提示添加time zone信息。

修改后成功连接

代码调试中的问题和解决过程

教材中代码调试有问题先去https://shimo.im/doc/1i1gldfsojIFH8Ip/看看,如果别人没有提出相同问题,可以编辑文档添加,然后把自己提出的问题复制到下面:

  • 问题1:在测试访问数据库时,输入信息无法输入数据库

  • 问题1解决方案:修改代码加入时区信息
import static java.lang.System.out;
import java.util.Scanner;public class MessageDAODemo {
public static void main(String[] args) throws Exception {
MessageDAO dao = new MessageDAO(
"jdbc:mysql://localhost:3306/demo?" +
"serverTimezone=UTC",
"root", "");
Scanner console = new Scanner(System.in, "Big5");
while(true) {
out.print("(1) 显示留言 (2) 新增留言:");
switch(Integer.parseInt(console.nextLine())) {
case 1:
dao.get().forEach(message -> {
out.printf("%d\t%s\t%s\t%s%n",
message.getId(),
message.getName(),
message.getEmail(),
message.getMsg());
});
break;
case 2:
out.print("姓名:");
String name = console.nextLine();
out.print("邮件:");
String email = console.nextLine();
out.print("留言:");
String msg = console.nextLine();
dao.add(new Message(name, email, msg));
}
}
}}

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,497
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,910
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,744
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,498
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,135
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,300