ibatis和Spring整合的详细例子 ibatis和Spring整合的详细例子,数据库用的是mysql,开发环境是Eclipse3.2: 1.首先把用到的包导入进来,此例用的是spring-framework-1.2.7,iBATIS_DBL-2.1.7.597,mysql的数 据库连接包用的是mysql-connector-java-5.0.3-bin.jar. ibatis和Spring整合的详细例子 ibatis和Spring整合的详细例子,数据库用的是mysql,开发环境是Eclipse3.2: 1.首先把用到的包导入进来,此例用的是spring-framework-1.2.7,iBATIS_DBL-2.1.7.597,mysql的数 据库连接包用的是mysql-connector-java-5.0.3-bin.jar. 2.建POJO类,在此我们用的是一个Student类. 01.package cn.itcast; 02. 03. public class Student { 04. private Integer id; 05. 06. private String firstname; 07. 08. private String lastname; 09. 10. public String getFirstname() { 11. return firstname; 12. } 13. 14. public void setFirstname(String firstname) { 15. this.firstname = firstname; 16. } 17. 18. public Integer getId() { 19. return id; 20. } 21. 22. public void setId(Integer id) { 23. this.id = id; 24. } 25. 26. public String getLastname() { 27. return lastname; 28. } 29. 30. public void setLastname(String lastname) { 31. this.lastname = lastname; 32. } 33. } 3.POJO的映射文件Student.xml,在这里面只有两个功能,即根据student的id检索出一个Student对象,另一 个就是向数据库插入一条记录(一个Student对象),注意:此应用程序中所有的配置文件(xml文件和properties文件都放在configfile包下面). 01.
02.
03.
04. 05.
11. 12. select id,firstname,lastname from student where id=#value# 13. 14. 15. 16. insert into student(firstname,lastname) values(#firstname#,#lastname#) 17. 18. 4.建一个SqlMap的配置文件sql-map-config.xml,sqlMap元素的resource属性告诉Spring去哪找POJO映射文件. 01.
02.
05. 06. 07. 5.jdbc.properties文件,存储数据库连接的driver,url,username,password等信息, 01.jdbc.driver=com.mysql.jdbc.Driver 02.jdbcjdbc.url=jdbc:mysql://localhost/itcast 03.jdbc.username=root 04.jdbc.password= 6.Spring配置文件applicationContext.xml 01.
02.
03. 04. 05. 06.
07. 09. 10. configfile/jdbc.properties 11. 12. 13. 14.
15. 17. 18. ${jdbc.driver} 19. 20. 21. ${jdbc.url} 22. 23. 24. ${jdbc.username} 25. 26. 27. ${jdbc.password} 28. 29. 30. 31.
32. 34. 35. configfile/sql-map-config.xml 36. 37. 38. 39. 40. 41. 42.
43. 45. 46. 47. 48. 49. 50.
51. 52. 53. 54. 55. 56. 57. 7.StudentDaoSqlMap 是一个DAO,它负责和数据库的交互,在这里实现了查询单条记录和插入单条记录的功能. 01.package cn.itcast; 02. 03.import org.springframework.orm.ibatis.SqlMapClientTemplate; 04. 05.public class StudentDaoSqlMap { 06. private SqlMapClientTemplate sqlMapClientTemplate; 07. 08. public SqlMapClientTemplate getSqlMapClientTemplate() { 09. return sqlMapClientTemplate; 10. } 11. 12. public void setSqlMapClientTemplate( 13. SqlMapClientTemplate sqlMapClientTemplate) { 14. this.sqlMapClientTemplate = sqlMapClientTemplate; 15. } 16. 17. //此方法的返回值与Student.xml的select元素的resultClass对应. 18. public Student getStudent(Integer id) { 19. return (Student) sqlMapClientTemplate.queryForObject("getStudentById",id); 20. //注意:queryForObject方法返回一个Object,第一个参数与Student.xml的select元素 21. //的id属性值对应,第二个参数的类型与Student.xml的select元素的parameterClass 22. //属性值对应. 23. } 24. 25. public Object insertStudent(Student student) { 26. return sqlMapClientTemplate.insert("insertStudent", student); 27. } 28.} 8.下面写一个带main函数的类来测试上面的代码.代码非常简单就不再解释了. 01.package cn.itcast; 02. 03. import org.springframework.context.ApplicationContext; 04. import org.springframework.context.support.ClassPathXmlApplicationContext; 05. 06. public class Client { 07. 08. public static void main(String[] args) { 09. ApplicationContext factory = new ClassPathXmlApplicationContext( 10. "applicationContext.xml"); 11. 12. StudentDaoSqlMap studentDao = (StudentDaoSqlMap) factory 13. .getBean("studentDao"); 14. 15. //插入一个student 16. Student student = new Student(); 17. student.setFirstname("tian"); 18. student.setLastname("xiangdong"); 19. studentDao.insertStudent(student); 20. 21. //查询出id是1的Student对象. 22. //Student student = studentDao.getStudent(1); 23. //System.out.println(student.getId()); 24. //System.out.println(student.getFirstname()); 25. //System.out.println(student.getLastname()); 26. } 27. 28. }