jdbc,mysql结合练习

  恩。。。这几天做的一个阶段性的个人项目,因为个人原因导致时间不够,项目时间有点紧,做的不怎么好。下面说说在这个项目中遇到的一些问题
  1. 实例化的问题,注意类的实例化以及传值的问题,不然容易出现空指针异常。
  2. 数据库的字段名问题,在进行操作时最好直接复制数据库中的字段名,否则可能因为字段名不同出现问题
  3. jdbc中数据库操作语句在换行时记得加上"," ,然后在语句前面加上空格 
  4. 在javabean中,如果一个A类中包含多个B类对象就有一个B类集合属性,如果A类只有一个B类,那么在Javabean中有一个B类对象作为A类属性
  5. 注意使用面向对象的思维,善于使用封装。
  基本上记得的就是这些,等以后想到了在补充。


接下来是前面上课的时候的一些知识

1. 结合项目练习数据库

a. 时间类型的小问题(对时间要求不太精确可以在实体类中用string类型    精确的话就用date类型)

b. com.biz包(bussiness的简写)或者是service;业务逻辑层也是放的接口,com.biz.impl业务逻辑包的实现类包,在这里调用dao包进行实现,或者业务逻辑,传入前段,前段就不用dao包,用的是biz写的东西,起到数据库以及前段中间的斜街作用

c. ConnectionManager类放在com.util包中

d. 在url后写上?Unicode=true&CharacterEncoding=UTF-8然后每次连接数据库取出时都是对应的字符编码

e. ‘’ or 1=1 --  sql小漏洞  只能在statement使用这个漏洞 引出preparedstatement 预处理块

f. Sql语句中的小细节:在where判断后字段名 = 值,也可以字段名 > 值等等

运算符(算术,逻辑,比较)

And 多个条件都需要满足

Or多个条件一个条件满足就可以

g. 注意sql语句的正确性

h. 分页写法:select * from 表名 limit 0,5(从0开始显示5条数据 0是从多少开始显示  5是显示多少条)

i. Select * from 表名 order by id desc     (根据id降序排列)

j. 聚合函数(count sum avg maxmin)

k. 在count(*) as c (说明下面调用时用c把count(*)代替了)

l. 分页涉及到业务逻辑了    放在biz包

m. Sql分组查询:group by分组之后select语句可以跟的列名只有聚合函数和group by分组后的字段名

select count(*) asrenshu , 字段名 from 表名 group by 字段名

返回的就是根据字段名分组的行数一一对应

n.  分组之后再过滤 having 关键字

select count(*) asrenshu , 字段名 from 表名 group by 字段名having renshu > =10

      返回的是分组之后再进行renshu>=10的数据
 
    o. 模糊字查询:like关键字加上%

Select * from 表名 where 字段名 like 张% (查询表名中字段中以张开头的所有行)

Select * from 表名 where 字段名 like %张% (查询表名中字段中有张这个字的所有行)

p .  多条件查询拼接字符串,见下面截图 ,用if、判断语句

图片

原文地址:https://www.cnblogs.com/x-long/p/7712527.html