sql语句的问题 ,以及怎么使用到 sql语句的前因后果
来源:3-8 登陆
LLLL_
2020-01-11 13:39:06
这个接口被谁实现了 , 或者说 我在登陆的时候 ,怎么就 到这个接口 ,为什么就用了@Select("select * from user where account=#{name}") 这句话?
@Results(value={
@Result(id = true,column = "id",property = "id"),
@Result(column = "account",property = "name"),
@Result(column = "password",property = "password"),
@Result(column = "nick_name",property = "nickName")}
) 他们为什么要这么写呢 ?
查询到了后 他又是怎么往下一步进行的呢?
比如现在写注册功能,
@Select( "insert into account values(#{id},#{name},#{apssword}),我也是写在 同一个Dao里吗,具体大概是怎么写? 然后在之前登陆是在 AccountBizImpl 验证 ,那注册也不需要验证 ,是执行完插入语句,就算结束了吗?
1回答
1、首先,这个在接口上写了以上的注解后,mybatis底层就会自动帮这个接口自动生成一个实现类。
2、
@Select("select * from user where account=#{name}") 这是mybatis的注解形式,
@Results(value={
@Result(id = true,column = "id",property = "id"),
@Result(column = "account",property = "name"),
@Result(column = "password",property = "password"),
@Result(column = "nick_name",property = "nickName")}
)
这个查询结果可以按照接口返回值的类型进行封装,一些不同对应的字段,可以通过Results进行映射到接口的返回值中。
当调用这个接口时,则会执行上边的sql语句,进行查询,并把数据进行封装后,返回给调用者。
3、只有查询语句才会用@Select,插入的时候或会用到@insert注解:例如:
可以写到同一个AccountDao中的。
@Insert( "insert into account values(#{id},#{name},#{apssword}) ;
void insert(Account account);
执行完插入语句,把注册的写到数据库中,就算注册成功了
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题
回答 1
回答 1
回答 1
回答 1
回答 3