用ssm框架简单创建一个增删改查案列

大方向:
1.首先要配置.xml文件(总的映射文件,加载后来写的各种xml文件,每一个映射文件都得在这里面加载
<mappers>
  <!-- 加载映射文件 -->
  <mapper resource="org/lanqiao/mapper/studentMapper.xml"/>
  <mapper resource="org/lanqiao/mapper/studentCardMapper.xml"/>
  <mapper resource="org/lanqiao/mapper/studentClassMapper.xml"/>
</mappers>)
以及配置数据库信息,起别名等
2.Reader reader = Resources.getResourceAsReader("conf.xml") ;
通过reader去读总的配置文件
3.SqlSessionFactory sessionFacotry = new SqlSessionFactoryBuilder().build(reader,"development") ;
获取sql会话产生工厂,"development"是 指定数据库环境,有开发,测试,实施等几种
4.SqlSession session = sessionFacotry.openSession() ;
产生会话,这几步就封装了原来的jdbc的对数据库的操作,所以mybatis是对jdbc的封装

5.StudentMapper studentMapper = session.getMapper(StudentMapper.class) ;
StudentMapper是一个java接口文件,里面有各种接口方法,也就是未实现的 如
Student queryStudentById(int stuno);
Student queryStudentByIdWithHashMap(int stuno);
List<Student> queryStudentsWithNosInGrade(Grade grade);
StudentMapper.class 利用了Proxy动态代理反射生成类文件

6.Student student = studentMapper.queryStudentByStunoWithConverter(1) ;//接口中的方法->SQL语句
queryStudentByStunoWithConverter(1)这些方法在studentMapper.xml中具体实现,因为studentMapper会去找他的映射文件,也就是studentMapper.xml文件,这里面实现了方法,写在<select>里
<select id="queryStudentById"   parameterType="int" resultMap="queryStudentByIdMap" >
  select id,name from student where id = #{id}
</select>
1.方法名和studentmapper.xml文件中标签的id值相同
2.方法的 输入参数 和studentmapper.xml文件中标签的 parameterType类型一致
3.方法的返回值  和studentmapper.xml文件中标签的 resultType类型一致

7.System.out.println(student);
 session.close();

另:
studentMapper.xml的写法
<mapper namespace="org.lanqiao.mapper.StudentMapper">
<!-- namespace:该mapper.xml映射文件的 唯一标识 -->
<!--查询和删除的写法-->
 <select id="queryCountByGradeWithProcedure" statementType="CALLABLE"  parameterType="HashMap" >
  {
   CALL queryCountByGradeWithProcedure(
    #{gName,jdbcType=VARCHAR,mode=IN},
    #{scount,jdbcType=INTEGER,mode=OUT}
   )
  } 
 </select>
 
 <!-- 通过存储过程实现删除 -->
 <delete id="deleteStuBynoWithProcedure" statementType="CALLABLE" parameterType="HashMap">
  {
   CALL deleteStuBynoWithProcedure(
    #{sno,jdbcType=INTEGER,mode=IN}
   )
  } 
 </delete>
</mapper>
原文地址:https://www.cnblogs.com/wl889490/p/12573523.html