spring+hibernate jpa(三)
测试类
package com; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import domain.User; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { /** * @param args */ public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext( "ApplicationContext.xml"); Userdao dao = (Userdao) ctx.getBean("userdao"); // System.out.println("姓名:"+dao.getUser().getName()); // System.out.println("年龄:"+dao.getUser().getAge()); /* * dao.deleteUserById(1); dao.deleteUserById(2); dao.deleteUserById(3); */ // System.out.println(dao.deleteAllUsers()); // User user1 = new User(4,"lb","1235","lb@163.com"); // User user2 = new User(5,"hjp","1236","hjp@163.com"); // User user3 = new User(6,"zrq","1237","zrq@163.com"); // dao.createUser(user1); // dao.createUser(user2); // dao.createUser(user3); User user11 = dao.findUserById(8); if (user11 != null) {System.out.println("姓名: " + user11.getName() + "(id=" + user11.getId() + ");"); dao.deleteUser(user11);} System.out.println("<----------------------------------->"); User user = dao.findUserById(1); user.setName("yyq"); user.setEmail("yyq2007aa@163.com"); dao.updateAndsaveUser(user); List<User> userlist = new ArrayList<User>(); userlist = dao.findAllUsers(); Iterator item = userlist.iterator(); int i = 0; while (item.hasNext()) { i++; System.out.println(i + ". 姓名:" + ((User) item.next()).getName()); } } }
?
要注意的就是在Userdao.java中对User的cud等操作的事务性处理,事务通过@Transactional来声明,那么在ApplicationContext.xml中配置的事务管理器会自动把这个操作当作事务来处理。
?
JPA是持久化的标准,需要provider。现在支持JPA的ORM包有多种。Netbeans自带Toplink,如果想使用ORM框架的一些高级的功能,可以使用Hibernate作为JPA的实现。
?