使用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();

 

posted @ 2021-02-20 00:45  渐行、渐远  阅读(139)  评论(0)    收藏  举报