题目要求
在安装配置好数据库Mysql后,需要使用Java编程完成如下任务:
(1)创建数据库表users,字段分别为username(主键,varchar(10))、pass(varchar(8));数据库表person,字段按分别为username(varchar(10),对应于users表的username)、name(主键,varchar(20))、age(int,可以为空)、teleno(char(11),可以为空);如表users中username则表person中也不能有相应的username的数据。
(2)在表users中插入4行数据,数据分别是(ly,123456)、(liming,345678)、(test, 11111)、(test1,12345),在表person中插入3行数据,数据分别为(ly,雷力)、(liming,李明,25)、(test,测试用户,20,13388449933);
(3)在person表中插入5行数据,分别为(ly,王五)、(test2,测试用户2)、(test1,测试用户1,33)、(test,张三,23,18877009966)、(admin,admin)。对于表中已有的username,则根据最新的数据修改其相应字段值;如该username不存在,则首先在表users中插入该username,默认的password为888888,然后才能将数据插入至person表。
(4)删除users表中test打头的username,同时按照规则一并删除person表相应的数据。
遇到问题
第三问做了比较久的时间,遇到的问题也比较多:
1. 一个stmt多个rs进行操作引起的ResultSet已经关闭错误
2. 更新字段值:
(当username == a的时候update )
String sql="update person set name='"+b+"' , age= "+c+", teleno= '"+d+"' where username = '"+a+" ';" ; //SQL语句
stat.execute(sql);
3. 插入操作:
-
insert into表示插入数据,数据库会检查主键(PrimaryKey),如果出现重复会报错;
-
insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;
4. Java的模糊处理:
在删除操作中,
stat.execute(“delete from users WHERE username LIKE ‘test%’”);
Like和%的使用也了解了一下。