iBatis小结
最近学了iBatis,感觉虽然没有Hibernate那么强大,可是用起来很方便灵活,同JDBC相比代码量大大减少,而且sql与java代码分离,便于维护和移植,基本环境配置如下
1.首先将相关的数据库驱动包和ibatis jar包引入
2.编写配置文件,主体配置文件SqlMapconfig.xml,内容如下
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"><sqlMapConfig> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" /> <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/ibatis" /> <property name="JDBC.Username" value="root" /> <property name="JDBC.Password" value="123456" /> </dataSource> </transactionManager> <sqlMap resource="com/lamp/Student.xml" /> <!-- 映射文件 --></sqlMapConfig>
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"><sqlMap><!-- <resultMap id="Student" column="sid" /><result property="sname" column="sname" /><result property="major" column="major" /><result property="birth" column="birth" /></resultMap> 用了typeAlias就可以省略这些配置,javaBean的属性如上,并与数据库表student一一对应 --><typeAlias alias="Student" type="com.lamp.Student"/> <!--查询所有学生--><select id="selectAllStudent" resultresultparameterparameterparameterparameterparameterresultparameterkeyProperty="sid">select @@IDENTITY as sid</selectKey>insert into student (sid,sname,major,birth)values(#sid#,#sname#,#major#,#birth#)</insert></sqlMap>
private static SqlMapClient sqlMap = null;//加载配置文件static{try {Reader reader = Resources.getResourceAsReader("com/lamp/SqlMapConfig.xml");sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); reader.close();} catch (IOException e) {e.printStackTrace();} }//方法如下public List<Student> queryAllStudent() {List<Student> studentList = null;try {studentList = sqlMap.queryForList("selectAllStudent");} catch (SQLException e) {e.printStackTrace();}return studentList;}