开发者

Mybatis中sql映射文件中的增删查改

目录
  • 映射文件内的增删查改
    • 准备工作
    • 新增数据
    • 删除数据
    • 修改数据
    • 查询数据
      • 查询所有
      • 条件查询
      • 模糊查询
  • 映射文件的相关补充
    • #{}与${}
      • parameterType和resultType

      映射文件内的增删查改

      准备工作

      1. 准备一张数据表,用于进行数据库的相关操作。
      2. 新建maven工程, 导入mysql-connector-Java和myBATis依赖。
      3. 新建一个实体类,类的字段要和数据表的数据对应
      4. 编写接口
      5. 编写mybatis主配置文件
      public class User {
          private String name;
          private String gender;
          private int age;
          private String address;
          private String email;
          private String qq;
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      
          public StrinGxoyKRlGpNg getGender() {
              return gender;
          }
      
          public void setGender(String gender) {
              this.gender = gender;
          }
      
          public int getAge() {
              return age;
          }
      
          public void setAgandroide(int age) {
              this.age = age;
          }
      
          public String getAddress() {
              return address;
          }
      
          public void setAddress(String address) {
              this.address = address;
          }
      
          public String getEmail() {
              return email;
          }
      
          public void setEmail(String email) {
              this.email = email;
          }
      
          public String getQq() {
              return qq;
          }
      
          public void setQq(String qq) {
              this.qq = qq;
          }
      }
      <?XML version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE configuration
              PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
              "http://mybatis.org/dtd/mybatis-3-config.dtd">
      <configuration>
          <environments default="development">
              <environment id="development">
                  <transactionManager type="JDBC"></transactionManager>
      
                  <dataSource type="POOLED">
                      <property name="driver" value="com.mysql.jdbc.Driver"/>
                      &javascriptlt;property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false"/>
                      <property name="username" value="root"/>
                      <property name="password" value="123456"/>
                  </dataSource>
      
              </environment>
          </environments>
      </configuration>
      public class Main {
          public static void main(String[] args) throws IOException {
              InputStream resourceAsStream = Resources.getResourceAsStream("mybatis.xml");
              SqlSession sqlSession = new SqlSessionFactoryBuilder().build(resourceAsStream).openSession();
          }
      }

      后续只需在接口内添加相关方法,编写mapper映射文件进行测试,后面仅展示mapper映射文件。

      新增数据

      插入数据的方法sqlSession.insert("mapper映射文件内insert标签的id","传入的参数"),并且例如增删改的方法需要调用commit方法进行提交。

      编写sql语句时,如果输入的参数为java对象类型,#{}表示接收java对象的属性名 

      <insert id="add" parameterType="com.cc.UserMapper" >
      insert into tb_userinfo (name,gender,age,address,email,qq) values (#{name},#{gender},#{age},#{address},#{email},#{qq});
      </insert>

      这里将user对象作为参数传入。 

              InputStream resourceAsStream = Resources.getResourceAsStream("mybatis.xml");
              SqlSession sqlSession = new SqlSessionFactoryBuilder().build(resourceAsStream).opeGxoyKRlGpNnSession();
              //插入数据
              User user = new User("张四丰","女",25,"宁夏","1212@qq.com","987654");
              sqlSession.insert("add",user)php;
              sqlSession.commit();

      删除数据

      根据姓名删除数据:调用sqlSession.delete方法,同时传入一个字符串。

      sqlSession.delete("delete","张大2");

          <delete id="delete" parameterType="String">
              delete from tb_userinfo where name = #{na}
          </delete>

      修改数据

      当要传入多个参数时,除了使用类将数据封装起来,还能使用map集合作为参数传入,注意map的key值要和#{}内的值一致。

          <update id="update" parameterType="map">
              update tb_userinfo set gender=#{gender},address=#{address} where name=#{nam}
          </update>
              Map<String,String> map = new HashMap<>();
              map.put("gender","女");
              map.put("nam","李思思");
              map.put("address","四川");
              sqlSession.update("update",map);
      

      查询数据

      查询所有

          <select id="seleteAll" resultType="com.cc.User">
              select * from tb_userinfo;
          </select>
              List<User> users = sqlSession.selectList("seleteAll");
              for(User u : users){
                  System.out.print(u.getName());
                  System.out.println(u.getAge());
              }

      条件查询

          <select id="seleteByName" resultType="com.cc.User" parameterType="String">
              select * from tb_userinfo where name = #{name}
          </select>
              User user = sqlSession.selectOne("seleteByName", "李思思");
              System.out.println(user.getGender());
              System.out.println(user.getAddress());

      模糊查询

          <select id="seleteLike" resultType="com.cc.User" parameterType="String">
              select * from tb_userinfo where name like #{name}
          </select>
              User o = sqlSession.selectOne("seleteLike", "%大%");
              System.out.println(o.getName());

      映射文件的相关补充

      #{}与${}

      #{}与${}都能够接收输入的参数,区别是#{}表示一个占位符号,${}表示一个拼接符号,这样会导致sql注入,因此不建议使用${}

      parameterType和resultType

      parameterType:指定输入参数类型,mybatis通过ognl从输入对象中获取参数值拼接在sql中。

      resultType:指定输出结果类型,mybatis将sql查询结果的一行记录数据映射为resultType指定类型的对象。

      到此这篇关于Mybatis中sql映射文件中的增删查改的文章就介绍到这了,更多相关Mybatis sql映射文件增删查改内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

      0

      上一篇:

      下一篇:

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      最新开发

      开发排行榜