我们讲一下我遇到的SQL运行的问题:
1.项目未连接数据库(SQL服务关闭)
2.项目中的表名或者对象的名称不正确
如果项目进行中修改数据库添加修改表可能导致表名变动。‘pojo层的变动错误idea可能会提示’
3.标点符号的要求
可能是pom的依赖或者其他的原因导致存在特殊的要求,但SQL语句不运行并不会报错。因此说一下我遇见的奇怪错误。
我将SQL语句写在dao层的。
正常情况SQL的语法没有问题,而且之前的项目这样也能运行。但现在SQL语句没有运行。
package com.example.mybatisdemo.dao;
import com.example.mybatisdemo.pojo.Admin;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
import java.util.Map;
public interface AdminDao {
// 组织登录
@Select("select * from admin where admin_number=#{admin_number}")
public List<Map<String,Object>> alogin(Admin admin);
}
数据库连接也没有问题
但SQL无法运行,最后浏览网站找项目中SQL语句与我不一样的一个一个尝试,最后成功。
package com.example.mybatisdemo.dao;
import com.example.mybatisdemo.pojo.Admin;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
import java.util.Map;
public interface AdminDao {
// 组织登录
@Select("select * from `admin` where admin_number=#{admin_number}")
public List<Map<String,Object>> alogin(Admin admin);
}
表名上的标点加上后就能正常运行。
5.SQL语句演示
查询
@Select("select * from `use` where use_number=#{use_number} and use_password=#{use_password}") public User login(String user_number,String user_password);
插入
@Insert("insert into `use` (use_name,use_password,use_number,use_sex,use_old,use_phone,use_gt,use_wj) values (#{use_name},#{use_password},#{use_number},#{use_sex},#{use_old},#{use_phone},0,0)") public int regist(User user);
更新信息
@Update("update `use` set use_wj=#{use_wj},use_gt=#{use_gt} where use_id=#{use_id}" ) public int updategt(User user);
多表(多条件)查询
@Select("select s.* from `vido` s, `raise` where s.vido_yn='yes' and raise_pet=s.vido_pet and raise_use=#{raise_use}") public List<Map<String,Object>> getpetvidos(Integer raise_use);