Ibaits实现CRUD之二

转载请注明:来自http://changong.iteye.com/作者:张燕广

该篇主要编写beanibaits实现的DAO层代码。

src下创建包com.zyg.ssi.bean,在该包下创建beanStudents,其代码如下:

package com.zyg.ssi.bean; public class Student { private Integer stuId; private String stuName; public Student() {} public Student(String stuName) { this.stuName = stuName; } public Integer getStuId() { return stuId; } public void setStuId(Integer stuId) { this.stuId = stuId; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } @Override public String toString() { String result = "学号:"+this.stuId+",姓名:"+this.stuName; return result; } }  

      sqlmap-config.xml的配置中引用了Studentxml配置,在该包下创建Student.xml配置文件,其代码如下:

      <?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.zyg.ssi.bean.Student"/> <resultMap id="Student" class="Student"> <result property="stuId" column="stuid"/> <result property="stuName" column="stuname"/> </resultMap> <select id="selectAllStudent" resultClass="Student"> select * from student </select> <select id="selectStudentById" parameterClass="int" resultClass="Student"> select * from student where stuid=#sid# </select> <delete id="delStudentById" parameterClass="int"> delete from student where stuid=#id# </delete> <insert id="insertStudent" parameterClass="Student"> insert into Student (stuid,stuname) values (#stuId#,#stuName#) </insert> <!-- oracle 序列使用 --> <!-- <insert id="insertStudentBySequence" parameterClass="Student"> <selectkey resultClass="int" KeyProperty="sid"> select PK_StudentSequence.nextVal from dual </selectkey> insert into Student (stuid,stuname) values (#sid#,#sname#) </insert> --> <update id="updateStudent" parameterClass="Student"> update Student set stuName=#stuName# where stuId=#stuId# </update> <select id="selectStudentByName" parameterClass="String" resultClass="Student"> select stuId,stuName from student where stuName like '%$stuName$%' </select> </sqlMap>

     

sqlmap-config.xml的配置中引用了Studentxml配置,在该包下创建Student.xml配置文件,其代码如下:

       src下创建包com.zyg.ssi.dao在该包下创建实现针对StudentCRUD操作的接口StudentDao,其代码如下:

package com.zyg.ssi.dao; import java.util.List; import com.zyg.ssi.bean.Student; public interface StudentDao { /** * 保存学生信息 * @param student */ public void addStudent(Student student); /** * 根据学号删除学生信息 * @param studentId */ public void delStudentById(int id); /** * 更新学生信息 * @param student */ public void updateStudentById(Student student); /** * 根据学号获取学生信息 * @param studentId */ public Student queryStudentById(int id); /** * 根据姓名获取学生信息 * @param studentId */ public List<Student> queryStudentByName(String name); /** * 获取全部学生信息 * @param studentId */ @SuppressWarnings("unchecked") public List<Student> queryAllStudents(); }

     src下创建包com.zyg.ssi.dao.ibaits在包下创建接口StudentDao的实现类StudentDaoImpl,其代码如下:

package com.zyg.ssi.dao.ibaits; import java.io.IOException; import java.io.Reader; import java.sql.SQLException; import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; import com.zyg.ssi.bean.Student; import com.zyg.ssi.dao.StudentDao; public class StudentDaoImpl implements StudentDao { private static SqlMapClient sqlMapClient = null; static{ try { Reader reader = com.ibatis.common.resources.Resources .getResourceAsReader("sqlmap-config.xml"); sqlMapClient = com.ibatis.sqlmap.client .SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void addStudent(Student student) { // TODO Auto-generated method stub try { sqlMapClient.insert("insertStudent", student); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void addStudentBySequence(Student student) { // TODO Auto-generated method stub } public void delStudentById(int id) { try { sqlMapClient.delete("delStudentById", id); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public List<Student> queryAllStudents() { // TODO Auto-generated method stub List<Student> stuList = null; try { stuList = sqlMapClient.queryForList("selectAllStudent"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return stuList; } public Student queryStudentById(int id) { Student student=null; try { student = (Student)sqlMapClient.queryForObject("selectStudentById", id); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return student; } public List<Student> queryStudentByName(String name) { // TODO Auto-generated method stub List<Student> stuList = null; try { stuList = sqlMapClient.queryForList("selectStudentByName",name); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return stuList; } public void updateStudentById(Student student) { // TODO Auto-generated method stub try { sqlMapClient.update("updateStudent", student); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

  

   至此,通过ORM框架iBaits实现的CRUD操作已完成,下一篇编写Junit测试类进行单元测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值