使用mybatis插入数据
1. 在持久层dao接口下增加一个插入方法
1 package com.bjpowernode.dao; 2 3 import com.bjpowernode.domain.Student; 4 5 import java.util.List; 6 7 /*接口操作student表*/ 8 //4. 创建持久层dao接口,定义操作数据库的方法 9 public interface StudentDao { 10 //查询student表的所有数据,返回的是一个集合,里面存放了student对象 11 //selectStudents对应的是一个sql的执行 12 public List<Student> selectStudents(); 13 //增加一个插入方法 14 public int insertStudent(Student student); 15 }
2. 在sqlmapper中添加insert标签
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 <!--5.创建一个mybatis使用的配置文件 6 叫做sql映射文件:用来写sql语句,mybatis会执行这些sql,一般一个表一个映射文件 7 这个文件是xml文件 8 文件在接口所在的目录中 9 文件名和接口名保持一致--> 10 <!-- 11 1. 指定约束文件 12 <!DOCTYPE mapper 13 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 14 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 15 mybatis-3-mapper.dtd:约束文件名称,dtd是扩展名 16 2. 约束文件的作用:限制和检查当前文件中出现的标签,属性必须符合mybatis的要求 17 3. mapper是当前文件的根标签 18 namespace叫做命名空间,唯一值,是自定义的,要求使用dao接口的全限定名称 19 4. 在当前文件中可以使用特定的标签来执行特定的操作 20 <select>:表示执行查询 21 <update>:表示执行查询,里面放的是update语句 22 <insert>:表示插入 23 <delete>:表示删除 24 5. select表示执行的查询操作, 25 id是要执行sql语法的唯一标识,mybatis会使用这个id来找到要执行的sql语句 26 可以自定义,但是要求使用接口中的方法名称 27 resultType表示结果类型的,是sql语句执行的ResultSet,遍历这个结果集得到的java对象的类型 28 我们这里需要把结果集保存成Student对象,所以写的是Student的全限定名称 29 --> 30 <mapper namespace="com.bjpowernode.dao.StudentDao"> 31 <select id="selectStudents" resultType="com.bjpowernode.domain.Student"> 32 select id,name,email,age from student order by id 33 </select> 34 <insert id="insertStudent"> 35 insert into student values(#{id},#{name},#{email},#{age}) 36 </insert> 37 38 </mapper>
3. 在主程序中修改sqlSession对象的执行语句,执行插入sql
1 String sqlId ="com.bjpowernode.dao.StudentDao"+"."+"insertStudent"; 2 //7. 【重要】执行sql语句,通过sqlId找到语句 3 Student student = new Student(); 4 student.setId(1003); 5 student.setName("王五"); 6 student.setEmail("wangwu@126.com"); 7 student.setAge(22); 8 int nums = sqlSession.insert(sqlId,student); 9 //8. 输出结果 10 System.out.println("执行影响的结果数:"+nums); 11 /*mybatis中事务不自动提交,执行delete,insert,update需要手动提交*/ 12 sqlSession.commit();

浙公网安备 33010602011771号