subjectdao.java

来自「使用annotation封装的jdbc」· Java 代码 · 共 61 行

JAVA
61
字号
package example.db.dao;

import java.util.ArrayList;
import cn.cja.sql.Query;
import cn.cja.sql.SubQuery;
import cn.cja.sql.Update;
import example.SubjectMapper;
import example.db.entity.Comment;
import example.db.entity.Subject;

public interface SubjectDAO {
	@Query("select * from subjects where id=?")
	public Subject getById(int id);

	/**
	 * 可自定义注入beans的方法(实现IORMapper接口)
	 * 
	 * @param id
	 * @return
	 */
	@Query(value = "select * from subjects where id=?", orm = SubjectMapper.class)
	public Subject getByIdWidthCustomMapper(int id);

	/**
	 * 带子查询
	 * 
	 * @param id
	 * @return
	 */
	@Query(value = "select * from subjects where id=?", subs = { @SubQuery(queryId = "myComment", params = { "id" }, property = "commentList") })
	public Subject getByIdWidthSubQuery(int id);

	@Query(id = "myComment", value = "select * from comments where subjectId=?", entityClass = Comment.class)
	public ArrayList<Comment> getAllComment(int subjectId);

	@Query("select * from subjects")
	public Subject[] getAll1();

	/**
	 * 容器类要用实类(不能用List之类的接口),并且要定义entityClass
	 * 
	 * @return
	 */
	@Query(value = "select * from subjects", entityClass = Subject.class, subs = { @SubQuery(queryId = "myComment", params = { "id" }, property = "commentList")})
	public ArrayList<Subject> getAll2();

	@Query("select last_insert_id() from subjects")
	public int getLastInsertSubjectId();

	/**
	 * @Update就比较寒酸了,仅仅用来执行无返回的sql而已
	 * @param title
	 * @param content
	 */
	@Update("insert into subjects(title,content) values(?,?)")
	public void insertSubject(String title, String content);

	@Update("insert into comments(title,content,subjectId) values(?,?,?)")
	public void insertComment(String title, String content, int subjectId);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?