什么是构造方法?
方法名与类名一样,没有返回值.
在JDBC操作封装的细节
方法的参数中使用object[] objs来保存sql语句中?的参数.
执行增删改的sql执行方法是executeUpdate().
封装的方法一般包括增删改查四个方法加一个通用的执行方法一共5个.
sql语句执行成功但没有影响行数和执行失败没有影响行数怎么区别
一般来说sql执行成功但没有影响行数可以视作执行失败(也就是没执行),但是如果非要区别这两种情况的话,这种情景往往出现在更新操作中,可以在更新之前执行一条查询语句,该语句查询表中是否有与要修改数据一样的数据,若有则不执行修改,直接判断执行成功.
UUID是啥,怎么保证高并发下数据库表id的唯一性(分布式全局id).
UUID是唯一字符串,UUID.randomUUID().toString()获取唯一字符串(不重复).
如何用原生JDBC获取表中一行数据
这里我们使用一个实体类对表进行映射(实体类与表的字段一一对应),然后使用反射机制获取字段,再一一赋值.关于获取字段与修改字段:
Filed[] fileds=类名.class.getDeclaredFields();
for(Filed filed:fileds)
{
filed.setAccessible(true);
filed.set(类对象,修改值);
}
关于读取db.properties的细节
这是一个标准的读取properties文件的代码段:
final Properties properties = new Properties();
try {
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
} catch (IOException e) {
}
读取当前线程的上下文类加载文件,而读取值的方法是:
properties.getProperty("属性名");
对封装的查询方法需要注意哪些细节?
- 返回的数据类型应该是泛型(object),因为每行数据的字段类型不一定相同.
- 通用的查询方法应具有至少如下三个参数:
sql语句,每张表的查询语句是不一样的,应在函数外进行sql语句设置.
传入的查询参数.
Class,作为实体类的通用类型(所有类的基类都是Class). - 使用resultSet.getObject(字段名)可以不管表字段类型获取字段值,但赋予实体类时需要通过filed.getType()转回原类型.
WEB-INF下的网页能直接访问吗?
不能,里面的网页只能通过函数的重定向或者跳转访问。
target包与项目文件不同步更新。
点击tomcat重新部署artifact就可以了。
前后端对接要注意什么?
表单部分后台要告诉前端action传到哪个servlet(并不是只能传给servlet).
商品读取部分前端要会使用c:foreach这个jstl标签调用后台给的数据动态生成div(每一个商品展示不一定是div).