课本知识总结
第十一章 JDBC与MySQL数据库
- 安装XAMPP软件及启动MySQL
- 下载链接:XAMPP
- 安装步骤:参考教程xampp新手学习指引(windows示例)
- 启动MySQL:打开系统cmd命令,转到MySQL的bin目录下
- 初始化:mysqld --initialize-insecure
- 启动:mysqld或mysqld -nt
- 修改root用户密码:mysqladmin -u root -p password
- 连接数据库
- 下载JDBC-MySQL数据库驱动
- 加载JDBC-MySQL数据库驱动
- 连接数据库
Connection getConnection(java.lang.String,java.lang.String,java.lang.String)
Connection getConnection(java.lang.String)
- 查询操作
- 向数据库发送SQL查询语句
try { statement sql=con.createStatement();
}
catch(SQLException e) {}
- 顺序查询
- 使用next()方法移到下一个数据行
- 移动成功返回true,否则返回false
- 条件与排序查询
- where子语句:select 字段 from 表名 where 条件
- 排序:用order by子语句对记录进行排序
select * from mess order by height
select * from mess where name like '%林%' order by name
- 通用查询:使用返回到程序中的结果集来获取相关的信息
- 更新、添加与删除操作
- 更新:update 表 set 字段 = 新值 where <条件子句>
- 添加:insert into 表(字段列表) values (对应的具体记录)
- 删除:delete from 表名 where <条件子句>
- 预处理语句:可使用通配符?来代替字段的值
- JDBC事务处理
- 用setAutoCommit(booean b)方法关闭自动提交模式
con.setAutoCommit(false);
sql = con.createStatement();
- 用commit()方法处理事务
- 用rollback()方法处理事务失败:即撤销事务所做的操作
遇到的问题及解决方法
- 在安装XAMPP时出现Tomcat下载不成功
解决方法:上网查了好多没有看懂,我在卸载重新下载后又重启了电脑,发现下载成功
- 在输入127.0.0.1 来进入XAMPP时出现下图
在看同学的博客后发现,只要将网址改成http://localhost/phpmyadmin就可以直接进入了
- 在虚拟机里运行代码时遇到
解决方法:1. 下载mysql,输入sudo apt-get install mysql-server mysql-client 2. 找到mysql所在目录:/var/lib/mysql 3.启动mysql:mysql start
代码托管
错题总结
第五周
解析:C项:内部类的类体中不可以声明类变量和类方法。
解析:对于严重的错误,通过Error类来描述,而对于非严重的问题,则是通过Exception类来进行描述的。
解析:B项:finally代码块定义一定会执行的代码,它通常用于关闭资源。对于异常的部分,如果没有做finally处理,那么这个程序是有缺陷的,每次调用完资源再把资源释放掉是必须的,否则运行压力会特别大。
解析:File类不涉及对文件的读写操作。
解析:通过查询API可知,以上均为File类的构造方法。
解析:public int hashCode():计算此抽象路径名的哈希码。
解析:InputStream是父类。
解析:参数name指定的文件称为输出流的目的地。
解析:A项,以时间换取空间。
第六周
- 由于时间预估错误及手机自身问题,虽然已经作答完成,却在最后提交时错失提交时间,所以没能按时提交答案,也就没有纠错,以下仅凭印象列出个错题:
- 1:下列关于Math类的说法,正确的是
A. public static double cbrt(double a) 返回 double 值的立方根。如果参数为 NaN,那么结果为 NaN。
B. public static double cos(double a) 返回角的三角余弦。如果参数为 NaN 或无穷大,那么结果为 NaN。
C. public static double floor(double a) 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。如果参数为 NaN 或无穷大,那么结果为 NaN。
D. public static double log10(double a) 返回 double 值的底数为 10 的对数。如果参数为正 0 或负 0,那么结果为负无穷大。
答案:ABD 解答:查询API。C项:如果参数为 NaN、无穷大、正 0 或负 0,那么结果与参数相同。
- 2:对于如下代码,下列哪个叙述是正确的?
public class E {
public static void main (String args[]) {
String s1 = args[1];
String s2 = args[2];
String s3 = args[3];
System.out.println(s3);
}
}
A. 程序出现编译错误。
B. 无编译错误,在命令行执行程序:“java E I love this game”,程序输出this。
C. 无编译错误,在命令行执行程序:“java E let us go”,程序无运行异常。
D. 无编译错误,在命令行执行程序:“java E 0 1 2 3 4 5 6 7 8 9”程序输出3。
答案:D
- 3:下列哪个叙述是错误的?
A. "9dog".matches("\ddog")的值是true。
B. "12hello567".replaceAll("[123456789]+","@")返回的字符串是@hello@。
C. new Date(1000)对象含有的时间是公元后1000小时的时间
D. "\hello\n"是正确的字符串常量。
答案:C