zoukankan      html  css  js  c++  java
  • mybatis与ibatis--个人总结。

    简要说明:前面是ibatis,后面是mybatis。

    1.SqlMapConfig.properties与mybatis-config.properties是一样的,这里是数据库连接的参数设置。

    2.SqlMapConfig.xml与mybatis-config.xml

    头文件不同,因为前才是2.0版本,后者是3.0版本。

    里面的具体支点的格式的写法也有所不同。

    前者dataSource type="SIMPLE"则用

    <dataSource type="SIMPLE">
       <property name="JDBC.Driver" value="${driver}" />
       <property name="JDBC.ConnectionURL" value="${url}" />
       <property name="JDBC.Username" value="${username}" />
       <property name="JDBC.Password" value="${password}" />
      </dataSource>

    后者用pooled则用

    <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
       </dataSource>

    3.map.xml与mapper.xml

    头文件不同。

    支点的格式:前者是<sqlMap> 后者是<mapper>

    里面的属性也不太一样:

    前者可以用别名,但后者可能没有别名这个属性

    前者是parameterClass resultClass 后者是parameterType resultType

    前者用id=#id#及 #id   后者用id=#{id}

    前者: <!-- 相等查询:可以用sname=#sname# 模糊查询:'%$sname$%'-->

    后者用注解时就不用mapper.xml而是DAO中加入注解:

     @Insert("insert into student(id,sname,birth,score) values(#{id},#{sname},#{birth},#{score})")
         public void insert(Student student); //插入 

    4.都有DAO类与实体类。

    5.前者用DAOImpl类:

     1 private static SqlMapClient sqlMapClient=null;
     2     static{
     3         try {
     4             Reader reader=Resources.getResourceAsReader("com/com/SqlMapConfig.xml");
     5             sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(reader);
     6             reader.close();
     7         } catch (IOException e) {
     8             // TODO Auto-generated catch block
     9             e.printStackTrace();
    10         }
    11         
    12     }
    13 
    14 
    15 
    16     public void addStudent(Student student) {
    17         try {
    18             sqlMapClient.insert("addStudent", student);
    19         } catch (SQLException e) {
    20             // TODO Auto-generated catch block
    21             e.printStackTrace();
    22         }
    23     }
    24 
    25     public void deleteStudent(int id) {
    26         // TODO Auto-generated method stub
    27         try {
    28             sqlMapClient.delete("deleteStudent", id);
    29         } catch (SQLException e) {
    30             // TODO Auto-generated catch block
    31             e.printStackTrace();
    32         }
    33     }
    DAOImpl

    前者再用Test:

     1 IStudentDAO iStudentDAO=new IStudentDAOImpl();
     2         //1.查询所有
     3         /*System.out.println("测试查询所有:");
     4         List<Student> students=iStudentDAO.selectAllStudent();
     5         for(Student student:students)
     6             System.out.println(student.toString());*/
     7         //2.插入
     8         /*Student student=new Student();
     9         student.setId(311);
    10         student.setSname("依依");
    11         student.setBirth(Date.valueOf("2013-5-5"));
    12         student.setScore(100);
    13         iStudentDAO.addStudent(student);*/
    test代码

    6.后者没有实现类,而是用直接的Test:

     1 @Test
     2     public void IStudentDAOTest()throws Exception
     3     {
     4         String resource = "com/com/mybatis-config.xml";
     5         Reader reader = Resources.getResourceAsReader(resource);
     6         SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
     7         SqlSessionFactory factory = builder.build(reader);
     8         
     9         factory.getConfiguration().addMapper(IStudentDAO.class);//利用注解要加上这句是注册,否则不用加
    10         SqlSession session = factory.openSession();
    11         IStudentDAO iStudentDAO = session.getMapper(IStudentDAO.class);
    12         
    13         //1.insert:
    14         //(错)不可为何不能让接口函数是public int insert(Student student);会出现如下
    15         //(错)org.apache.ibatis.binding.BindingException:
    16         //(错)映射法'com.com.IStudentDAO.insert试图从一种原始的返回类型(int)方法返回null。
    17         //(错)只能用void类型
    18         //上面的说法是错的,是我在mapper.xml中写错了,本来是<insert>,让我写成了<selcet>
    19         //经我验证可以用int也可以void。
    20         
    21         //但也可以知道用<select>来插入,那样就把接口中的函数定义为void型
    22         Student student=new Student();
    23         student.setId(17);
    24         student.setSname("xiaoming");
    25         student.setBirth(java.sql.Date.valueOf("2012-9-8"));
    26         student.setScore(89);
    27         iStudentDAO.insert(student);
    28         
    29         //2.update
    30         /*Student dStudent=new Student();
    31         dStudent.setSname("dada2");
    32         dStudent.setId(16);
    33         dStudent.setBirth(java.sql.Date.valueOf("2013-7-1"));
    34         dStudent.setScore(48);
    35         iStudentDAO.update(dStudent);*/
    36         
    37         //3.delete
    38         /*iStudentDAO.delete("dada2");*/
    39         
    40         //1.记录的条数:
    41         /*iStudentDAO.countAll();
    42         System.out.println("记录条数:"+iStudentDAO.countAll()); */  
    43         //2.所有记录的列举:
    44         /*List<Student> students=iStudentDAO.selectAll();
    45         Iterator<Student> iter=students.iterator();
    46         while(iter.hasNext())
    47         {
    48             Student st=iter.next();
    49             //编号与数据库中的id不一样就会全为0,而不是具体的数字。
    50             System.out.println("编号:"+st.getId()+"  学生名:"+st.getSname()+"出生日期:"+st.getBirth()+"成绩:"+st.getScore());
    51         }*/
    52       //4.findBySname
    53        /* Student findStudent=iStudentDAO.findBySname("caocao");
    54         System.out.println(findStudent.getBirth());*/
    55         
    56         
    57         session.commit();
    58         session.close();
    59         
    60     }
    61     
    62 
    63 }
    seesion代码

    主要是前代码与后代码。

  • 相关阅读:
    nunit2.5.7 单元测试时提示:“当前不会命中断点 还没有为该文档加载任何符号”
    文件下载报错:引发类型为“System.OutOfMemoryException”的异常-.Net 内存溢出
    asp.net 访问页面访问统计实现 for iis7
    easyui tree 更改图标
    asp.net 访问页面访问统计实现
    记一次空格引起的查询问题
    SVN如何忽略dll文件和bin目录
    vmware 中安装Ghost XP 版本心得
    冒泡排序
    JS数组去重
  • 原文地址:https://www.cnblogs.com/yyy88168/p/3202642.html
Copyright © 2011-2022 走看看