1、总中的配置文件
<?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"> <!-- 定义了ibatis的事务管理器有3中(JDBC,JTA,EXTERNAL) --> <dataSource type="SIMPLE"> <!-- type属性指定了数据源的链接类型,也有3种类型(SIMPLE,DBCP,JNDI) --> <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" /> <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/ibatis" /> <property name="JDBC.Username" value="root" /> <property name="JDBC.Password" value="123" /> </dataSource> </transactionManager> <sqlMap resource="com/huwei/model/Student.xml" /> </sqlMapConfig>
2、映射文件,ibatis 可以将sql语句写在配置文件中
<?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> <typeAlias alias="Student" type="com.huwei.model.Student" /> <select id="selectAllStudent" resultClass="Student"> select * from student </select> <select id="selectById" parameterClass="int" resultClass="Student"> select * from student where id=#id# </select> <insert id="insertStudent" parameterClass="Student"> insert into Student(name,major) values (#name#,#major#) </insert> <delete id="deleteStudentById" parameterClass="int"> delete from Student where id=#id# </delete> </sqlMap>
3、实体类
public class Student { private int id; private String name;//名字 private String major;//专业 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } @Override public String toString() { return "name="+name+" id="+id+" major="+ major; } }
4、几个主要的dao层方法
public void deleteStudentById(int id) {//根据id删除学生 try { sqlMapClient.delete("deleteStudentById",id); } catch (SQLException e) { e.printStackTrace(); } } @Override public void addStudent(Student student) {//添加学生 try { sqlMapClient.insert("insertStudent",student); } catch (SQLException e) { e.printStackTrace(); } }
5、目录结构如下
6、ibatis总结
个人觉得相比于hibernate,ibatis更加容易上手