zoukankan      html  css  js  c++  java
  • 单纯的简单的mybatis无注解

    同一个包下:com.com

    数据库简要说明:

    数据库名:ibatisTest 用户名:sa 密码:yyy

    字段有:id(int),sname(varchar),birth(Date),score(float)

    利用的是sqlserver2008

    1.IStudentDAO.java

     1 package com.com;
     2 
     3 import java.util.List;
     4 
     5 import org.apache.ibatis.annotations.Insert;
     6 public interface IStudentDAO {
     7                         public void insert(Student student); //插入   
     8         public void update(Student student);//修改
     9         public void delete(String sname);//删除
    10         public int countAll();//计算总的条目数
    11         public List<Student> selectAll();//得到所有数据
    12         public Student findBySname(String sname);//依据单一字段查找
    13         
    14 }
    DAO代码

    2.IStudentDAOTest.java

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

    3.Student.java

     1 ackage com.com;
     2 
     3 import java.sql.Date;
     4 
     5 public class Student {
     6     private int id=0;
     7     private String sname=null;
     8     private Date birth=null;
     9     private float score=0;
    10     
    11     public int getId() {
    12         return id;
    13     }
    14     public void setId(int id) {
    15         this.id = id;
    16     }
    17     public String getSname() {
    18         return sname;
    19     }
    20     public void setSname(String sname) {
    21         this.sname = sname;
    22     }
    23     public Date getBirth() {
    24         return birth;
    25     }
    26     public void setBirth(Date birth) {
    27         this.birth = birth;
    28     }
    29     public float getScore() {
    30         return score;
    31     }
    32     public void setScore(float score) {
    33         this.score = score;
    34     }
    35     
    36 
    37 }
    Student实体类代码

    4.mybatis-config.properties

    5.mybatis-config.xml

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE configuration
     3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
     5 <configuration>
     6    <properties resource="com/com/mybatis-config.properties"/>
     7     <environments default="development">
     8         <environment id="development">
     9             <transactionManager type="JDBC" />
    10             <dataSource type="POOLED">
    11                 <property name="driver" value="${driver}"/>
    12                 <property name="url" value="${url}"/>
    13                 <property name="username" value="${username}"/>
    14                 <property name="password" value="${password}"/>
    15             </dataSource>
    16         </environment>
    17     </environments>
    18         <mappers>
    19         <mapper resource="com/com/StudentMapper.xml" />
    20     </mappers>
    21 </configuration>
    mybatis配置文件

    6.StudentMapper.xm

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     3  "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
     4 <mapper namespace="com.com.IStudentDAO">
     5    <select id="countAll" resultType="int">
     6         select count(*) c 
     7         from student;
     8    </select>
     9    <select id="selectAll" resultType="com.com.Student">
    10         select *
    11         from student 
    12         order by sname asc
    13    
    14    </select>
    15    
    16    <insert id="insert" parameterType="com.com.Student">
    17           insert into student(id,sname,birth,score)
    18                        values(#{id},#{sname},#{birth},#{score})
    19    </insert>
    20    
    21    <update id="update" parameterType="com.com.Student">
    22            update student 
    23            set sname=#{sname},birth=#{birth},score=#{score}
    24            where id=#{id}
    25    </update>
    26    
    27    <delete id="delete" parameterType="String">
    28            delete from student 
    29            where sname=#{sname}
    30    </delete>
    31    
    32    <select id="findBySname" parameterType="String" resultType="com.com.Student">
    33            select *
    34            from student
    35            where sname=#{sname}
    36    </select>
    37    
    38     
    39     
    40    
    41 </mapper> 
    mapper配置文件
  • 相关阅读:
    陪伴
    休假
    I'm back
    Mysql程序
    Mysql 行转列
    Struts2 设置--Myelipse
    struts2 严重: Error filterStart 原因
    廉价药
    在linux下用tomcat部署java web项目的过程与注意事项
    创建表格式
  • 原文地址:https://www.cnblogs.com/yyy88168/p/3201238.html
Copyright © 2011-2022 走看看