• Mybatis学习总结2


    增删改查实现

    1. UserMapper.java -->接口类

    int addUser(User user);//增
         
    int deleteUser(int id);//删
    
    int updateUser(User user);//改
    
    User getUserById(int id);//查
    
    List<User> getUserLike(String name);//模糊查询
    

    2. UserMapper.xml

    //增
    <insert id="addUser" parameterType="com.mybatis_test.pojo.User" >
        insert into mybatis.user(id,username,password) values (#{id},#{username},#{password})
    </insert>
    
    //删
    <delete id="deleteUser" parameterType="com.mybatis_test.pojo.User">
        delete from mybatis.user where id = #{id}
    </delete>
    
    //改
    <update id="updateUser" parameterType="com.mybatis_test.pojo.User">
        update mybatis.user  set username =#{username},password=#{password} where id = #{id};
    </update>
    
    //查
    <select id="getUserById" resultType="com.mybatis_test.pojo.User">
        select * from mybatis.user where id = #{id}
    </select>
    
    //模糊查询
    <select id="getUserLike" resultType="com.mybatis_test.pojo.User">
        select * from mybatis.user where username like "%"#{value}"%";
    </select>
    //这里的模糊查询设计到一个问题,附在最后
    

    重点要注意

    1. 增删改事务需要提交!
    2. 标签要对应
    3. 配置文件当中的映射要写对
    4. 传递的参数多于两个的时候,在接口方法的参数前加 @Param属性!!
    User selectUserByNP(@Param("username") String username,@Param("pwd") String pwd);
    
    <select id="selectUserByNP" resultType="com.kuang.pojo.User">
         select * from user where name = #{username} and pwd = #{pwd}
    </select>
    

    Sql语句编写的时候,直接取@Param中设置的值即可,不需要单独设置参数类型

    Map的使用

    1. 例子

    int addUser2(Map<String,Object>map);
    
    <insert id="addUser2" parameterType="map" >
        insert into mybatis.user(id,username,password) values (#{userid},#{username},#{passworD})
    </insert>
    

    2. 参数过多考虑使用Map

    配置解析

    1. 配置顺序
      properties(属性)
      settings(设置)
      typeAliases(类型别名)
      typeHandlers(类型处理器)
      objectFactory(对象工厂)
      plugins(插件)
      environments(环境配置)
      environment(环境变量)
      transactionManager(事务管理器)
      dataSource(数据源)
      databaseIdProvider(数据库厂商标识)
      mappers(映射器)
      注意元素节点的顺序!顺序不对会报错
      //注意不是都需要配置的

    1. 数据库的配置
      Mybatis核心配置文件中加上这样的语句
    <properties resource="db.properties"/>
    

    db.properties写法(放到resources下)

    driver=com.mysql.cj.jdbc.Driver //mysql8.* 才这样写 mysql5.* 不用 cj
    url=你的url
    username=用户
    password=密码
    

    待编辑

    附:模糊查询

    1. 在Java代码中添加sql通配符
    string wildcardname = “%smi%”;
    list<name> names = mapper.selectlike(wildcardname);
    <select id=”selectlike”>
        select * from foo where bar like #{value}
    </select>
    
    1. 在sql语句中拼接通配符,会引起sql注入
    string wildcardname = “smi”;
    list<name> names = mapper.selectlike(wildcardname);
    
    <select id=”selectlike”>
        select * from foo where bar like "%"#{value}"%"
    </select>
    
    © 版权声明
    文章版权归作者所有,未经允许请勿转载。
    THE END
  • 相关阅读:
    WPF杂难解 图片模糊的暂时解决方案
    wpf学习笔记 NotifyPropertyChanged实现数据变化自动更新UI
    WPF杂难解 粘贴板复制GIF图片时丢失透明背景
    WPF杂难解 RichTextBox粘贴图片地址处理,并保存的问题
    wpf学习笔记 依赖属性
    WPF杂难解 中文字体显示模糊
    雪花型,支架型,和桥型 的区别
    BI工具对比
    关于javac不是内部命令的解决办法
    转载 android listview getview() 反复调用
  • 原文地址:https://www.cnblogs.com/xp-thebest/p/13812274.html
Copyright © 2020-2023  润新知