データベースアクセスする際のオブジェクト
Data Access Object
Dao interface
package com.example.demo; import java.io.Serializable; import java.util.List; public interface MyDataDao <T> extends Serializable { public List<T> getAll(); }
MyDataDaoImpl.java
package com.example.demo; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.Query; import org.springframework.stereotype.Repository; @Repository public class MyDataDaoImpl implements MyDataDao<MyData> { private static final long serialVersionUID = 1L; private EntityManager entityManager; public MyDataDaoImpl() { super(); } public MyDataDaoImpl(EntityManager manager) { this(); entityManager = manager; } @Override public List<MyData> getAll(){ Query query = entityManager.createQuery("from MyData"); @SuppressWarnings("unchecked") List<MyData> list = query.getResultList(); entityManager.close(); return list; } }
Controller
@Controller public class HelloController { @Autowired MyDataRepository repository; @PersistenceContext EntityManager entityManager; MyDataDaoImpl dao; @PostConstruct public void init() { dao = new MyDataDaoImpl(entityManager); MyData d1 = new MyData(); d1.setName("yamada"); d1.setAge(20); d1.setMail("yamada@gmail.com"); d1.setMemo("090999999"); repository.saveAndFlush(d1); MyData d2 = new MyData(); d2.setName("hanako"); d2.setAge(18); d2.setMail("hanako@gmail.com"); d2.setMemo("080888888"); repository.saveAndFlush(d2); MyData d3 = new MyData(); d3.setName("sachiko"); d3.setAge(35); d3.setMail("sachiko@gmail.com"); d3.setMemo("070777777"); repository.saveAndFlush(d3); } @RequestMapping(value="/", method=RequestMethod.GET) public ModelAndView index( @ModelAttribute("formModel") MyData mydata, ModelAndView mav) { mav.setViewName("index"); mav.addObject("msg","this is sample content."); Iterable<MyData> list = dao.getAll(); mav.addObject("datalist", list); return mav; } // 省略
HTML
<h1>Helo page</h1> <p th:text="${msg}"></p> <table> <form method="post" action="/" th:object="${formModel}"> <tr> <th>ID</th><th>名前</th><th>メール</th><th>年齢</th><th>メモ(tel)</th> </tr> <tr th:each="obj: ${datalist}"> <td th:text="${obj.id}"></td> <td th:text="${obj.name}"></td> <td th:text="${obj.mail}"></td> <td th:text="${obj.age}"></td> <td th:text="${obj.memo}"></td> </tr> </form> </table>
なんやとおおおおおおおおおおおおお