Mybatis第二次

增删改

  增删改都需要程序员通过session.commit提交事务

MyBatis中如何去集成log4有什么作用:可以 在控制台打印出SQL语句 ;

MyBatis中如何去集成log4j

   步骤1:在pom.xml中添加一个log4j依赖
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
   步骤2:在Resource目录中添加一个名称为log4j.property文件

添加

添加的DAO代码:

public  int addStudent(studentinfo stu);
小配置里的代码
<insert id="addStudent">
    INSERT INTO studentinfo(stuName,stuAge,stuDate) VALUE (#{stuName},#{stuAge},#{stuDate})

</insert>
添加的单侧的代码
 @Test
  //02.根据主键查询单个对象
  public void add(){
      String path="MyBatis-config.xml";
      InputStream is= null;
      try {
          is = Resources.getResourceAsStream(path);
          SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
          SqlSession session=factory.openSession();
          IStudentInfoDAO dao = session.getMapper(IStudentInfoDAO.class);
          studentinfo stu=new studentinfo();
          stu.setStuName("太阳");
          stu.setStuAge(33);
           stu.setStuDate(new Date());
           dao.addStudent(stu);
           session.commit();
          System.out.println("ok!");
          session.close();
      } catch (IOException e) {
          e.printStackTrace();
      }

  }

修改的DAO代码:

//修改
    public int updateStudent(studentinfo info);
小配置 里面的修改代码:
<update id="updateStudent">
    UPDATE studentinfo SET stuName=#{stuName} where stuId=#{stuId}
</update>
修改的单侧
//修改
    @Test
    public void xg() throws  Exception
    {
//
        SqlSession session=myBatis.getSqlSession();
        IStudentInfoDAO dao=session.getMapper(IStudentInfoDAO.class);
        studentinfo stu=new studentinfo();
        stu.setStuName("星星");
        stu.setStuId(2);
        dao.updateStudent(stu);
        session.commit();
        System.out.println("完美");
        session.close();


    }*/

删除的DAO代码:

 //删除public int deleteStudent(int stuid);
小配置 里面的删除代码:
<delete id="deleteStudent">
    DELETE from studentinfo where stuId=#{stuId}
</delete>


删除单侧
//删除
/*@Test
public void xc() throws  Exception
{
//
    SqlSession session=myBatis.getSqlSession();
    IStudentInfoDAO dao=session.getMapper(IStudentInfoDAO.class);
    dao.deleteStudent(3);
    session.commit();
    System.out.println("ok");
    session.close();

}*/
.util:工具类层
 public class MyBatisUtil {
    //Mybatis
    static String path="Mybatis-config.xml";

    static SqlSessionFactory factory;
    static{
        try {
            InputStream is = Resources.getResourceAsStream(path);
        factory= new SqlSessionFactoryBuilder().build(is);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static SqlSession getSession(){
        return factory.openSession();
    }
}
底层数据表中的列和实体类中的属性,只要有一个不匹配,MyBatis框架就不能自动的帮我们装配对象了。装配出来的是null

---------多条件查询----------------------------------
select * from studentinfo where stuname like '%' #{stuName}  '%' and stuAge>#{stuAge}

select * from studentinfo where stuname like concat('%',#{stuName},'%') and stuAge>#{stuAge}

select * from studentinfo where stuname like '%${stuName}%' and stuAge>#{stuAge}

-------SQL片段:主要解决多个列重复书写的问题
<sql id="columns">
   stuid,stuname
</sql>


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值