这两周主要在学习一些JavaWeb相关的知识,里面的内容主要涉及到记忆,纯技术部分的难度不是很大。
这里记录一些常犯的错误。
1.MySQL语句错误
SQL语句对于准确性要求很高,写错之后的提示不会很明显,所以平时练习时,要多加注意。每个都要以分号结尾。
创建和删除数据库时,可以加入exists的判断,不要忘记最后的S
CREATE DATABASE IF NOT EXISTS XXX;
DROP DATABASE IF EXISTS XXX;
选择数据库,或者使用数据库的语法和普通不太一样。要加括号,或者不加DATABASE关键字
SELECT DATABASE();
USE XXX;
修改表单属性的开头为ALTER TABLE XXX + 具体修改名称
ALTER TABLE XXX RENAME TO ...
ALTER TABLE XXX ADD ...
ALTER TABLE XXX MODIFY ...
ALTER TABLE XXX CHANGE ...
ALTER TABLE XXX DROP ...
2.MyBatis的ResultMap
项目的pojo类中的属性和数据库里保存的字段可能出现差别。
比如,pojo里是brandName,但数据库里是brand_name,这样的话,如果用MyBatis来查询,就会出现查不到的情况。
这个时候,可以在Mapper.xml里面设置ResultMap,把两者联系起来。
<resultMap id="brandResultMap" type="brand">
<result column="brand_name" property="brandName"></result>
<result column="company_name" property="companyName"></result>
</resultMap>
3.sqlSession后续处理
在使用MVC框架来处理web请求时,会用到MyBatis来生成sqlSession来和数据库做互动。
查询的时候,不需要提交事务,但查询过后,要记得把sqlSession关闭。
public List<Brand> selectAll(){
SqlSession sqlSession = factory.openSession();
BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
List<Brand> brands = mapper.selectAll();
sqlSession.close();
return brands;
}
如果涉及到添加或者删除数据,除了最后一步的close之外,还得记得提交事务,否则无法完成添加或删除的动作。
public void add(Brand brand){
SqlSession sqlSession = factory.openSession();
BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
mapper.add(brand);
sqlSession.commit();
sqlSession.close();
}