当前位置: 首页 > wzjs >正文

论文网站建设的参考文献手机网站建设的影响

论文网站建设的参考文献,手机网站建设的影响,人才网招聘网官网,中国最厉害的公关人菜鸟之路Day34一一Mybatis-基础操作 作者:blue 时间:2025.5.25 文章目录 菜鸟之路Day34一一Mybatis-基础操作1.删除操作2.插入操作3.修改操作4.查询操作 1.删除操作 接口 Mapper public interface EmpMapper {//根据ID删除数据Delete("delete f…

菜鸟之路Day34一一Mybatis-基础操作

作者:blue

时间:2025.5.25

文章目录

  • 菜鸟之路Day34一一Mybatis-基础操作
      • 1.删除操作
      • 2.插入操作
      • 3.修改操作
      • 4.查询操作

1.删除操作

接口

@Mapper
public interface EmpMapper {//根据ID删除数据@Delete("delete from tb_emp where id = #{id}")public void delete(int id);
}

测试

@Autowired
private EmpMapper empMapper;@Test
public void testDelete() {empMapper.delete(1);
}

日志

可以在application.properties中,打开mybatis的日志,并指定输出到控制台

#指定mybatis输出日志的位置,输出到控制台
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

再次执行程序,我们可以看到Sql在执行过程中采用的是预编译形式

在这里插入图片描述

这与所使用的不同的参数占位符有关

使用#{…}:执行SQL时会自动替换为?,生成预编译SQL,会自动设置参数值

使用${…}:拼接SQL。直接将参数拼接在SQL语句中,存在SQL注入的问题

2.插入操作

接口

//新增用户信息@Insert("insert into tb_emp(username, password, name, gender, image, job, entry_time, create_time, update_time, dept_id)" +"values (#{username},#{password},#{name},#{gender},#{image},#{job},#{entry_time},#{create_time},#{update_time},#{dept_id})")public void insert(Emp emp);

测试

@Test
public void testInsert() {Emp emp = new Emp();emp.setUsername("blue");emp.setPassword("123456");emp.setName("bruce");emp.setGender(1);emp.setImage("blue.jpg");emp.setJob(1);emp.setEntry_time(LocalDate.of(2022,11,1).atStartOfDay());emp.setCreate_time(LocalDateTime.now());emp.setUpdate_time(LocalDateTime.now());emp.setDept_id(1);empMapper.insert(emp);
}

主键返回

描述:在数据添加成功后,需要获取插入数据库的主键

实现

//新增用户信息@Options(keyProperty = "id", useGeneratedKeys = true)//会自动生成主键值,赋值给emp对象的id属性@Insert("insert into tb_emp(username, password, name, gender, image, job, entry_time, create_time, update_time, dept_id)" +"values (#{username},#{password},#{name},#{gender},#{image},#{job},#{entry_time},#{create_time},#{update_time},#{dept_id})")public void insert(Emp emp);

3.修改操作

接口

    //更新用户操作@Update("update tb_emp set username=#{username},password=#{password},name=#{name},gender=#{gender},image=#{image}," +"job=#{job},entry_time=#{entry_time},update_time=#{update_time},dept_id=#{dept_id} " +"where id=#{id}")public void update(Emp emp);

测试

@Test
public void testUpdate() {Emp emp = new Emp();emp.setId(16);//指定要修改的对象的idemp.setUsername("blue");emp.setPassword("123456");emp.setName("bruce");emp.setGender(1);emp.setImage("blue.jpg");emp.setJob(1);emp.setEntry_time(LocalDate.of(2022,11,1).atStartOfDay());emp.setCreate_time(LocalDateTime.now());emp.setUpdate_time(LocalDateTime.now());emp.setDept_id(5);empMapper.update(emp);
}

4.查询操作

根据ID查询

接口

//根据id查询员工信息
@Select("Select * from tb_emp where id=#{id}")
public Emp getEmpById(int id);

测试

@Test
public void testSelect() {Emp emp = empMapper.getEmpById(16);System.out.println(emp);
}

注意:

实体类属性名和数据库表查询返回的字段名一致,mybatis会自动封装。

如果实体类属性名和数据库表查询返回的字段名不一致,不能自动封装。

可以采取以下三种解决方案

但是注意,在采用方案三的时候必须严格遵循,数据库中用下划线命名,类中采用驼峰命名

在这里插入图片描述

根据条件查询

接口

//根据条件查询员工信息@Select("select * from tb_emp where name like '%${name}%' and " +"gender=#{gender} and entry_time between #{begin} and #{end} " +"order by update_time desc")public List<Emp> getEmpBy(String name, int gender, LocalDateTime begin, LocalDateTime end);

实现类

 @Test
public void testSelect2() {List<Emp> emplist =empMapper.getEmpBy("b",1,LocalDate.of(1970,1,1).atStartOfDay(),LocalDate.of(2035,1,1).atStartOfDay());for(Emp emp:emplist){System.out.println(emp);}
}

这里的模糊查询需求由于要采用字符串拼接,所以使用$

但是这种方式效率降低并且存在SQL注入的危险

所用可以使用采用concat函数修改以上代码,concat函数会做一个字符串拼接的操作

//根据条件查询员工信息@Select("select * from tb_emp where name like concat('%',#{name},'%') and " +"gender=#{gender} and entry_time between #{begin} and #{end} " +"order by update_time desc")public List<Emp> getEmpBy(String name, int gender, LocalDateTime begin, LocalDateTime end);
http://www.dtcms.com/wzjs/567160.html

相关文章:

  • 工业产品设计网站推荐怎样做号网站优化
  • 2017做哪些网站致富3d动画特效制作软件
  • 网站子网页怎么做怎么看一个网站好坏
  • 重庆网站制作设计公司网页设计师联盟qq群
  • 宁波网站制作优化服务公司怎样免费申请永久域名
  • 哪个网站有律师做的案件网站写好了怎么做后台管理
  • 北京网站建设公司哪个好中国企业网站模板
  • 做网站应该做到那几点网站开发员纵向发展
  • 单页网站对攻击的好处店铺logo设计免费
  • 如何把网站上传到凡科wordpress鼠标停留
  • 福州企业建站服务公司宣传页的样板
  • vue.js2.5 pc网站开发进货渠道网
  • 长沙企业建网站上海房产网签
  • 变更备案网站可以访问吗wordpress 半透明
  • 做去自己的网站首页wordpress 中文tag标签 404
  • 网站管理员密码nas 可以做网站吗
  • 东台建设局网站死链接对网站的危害有哪些
  • 用asp做网站需要准备什么wordpress qqword
  • 怎么让公司网站显示官网纯字母logo设计
  • 河北省建设安全监督站的网站网页设计与制作实训报告心得体会2000字
  • jsp网站开发书籍推荐做网站的属于什么工作类型
  • 湘潭网站建设电话工作的意义
  • 永久免费建站空间为企业做好服务优化营商环境
  • 手表网网站在线音乐网站开发教程
  • 苏州网站怎么做wordpress盲注
  • 给别人做网站被诉侵权建设工程分包合同
  • asp网站静态化夫唯老师seo
  • 外贸网站建设介绍建筑专业人才招聘网
  • 免费网站建设推销一个网站开发
  • 临淄网站建设价格网站备案为什么要关闭