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

公司建设网站的通知书湖北住房和城乡建设部网站

公司建设网站的通知书,湖北住房和城乡建设部网站,seo优化服务公司,湖北企业网站建设开启mybatis sql日志打印 可以在日志中看到sql中执行的语句 在配置文件中加上下面这几条语句 mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl logging.level.com.example.demodebug查询操作 根据用户id查询用户 UserMapper#xff1a; User…开启mybatis sql日志打印 可以在日志中看到sql中执行的语句 在配置文件中加上下面这几条语句 mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl logging.level.com.example.demodebug查询操作 根据用户id查询用户 UserMapper UserInfo getUserById(Param(user_id) Integer id);UserMapper.xml: select idgetUserById resultTypecom.example.demo.entity.UserInfoselect * from userinfo where id${user_id} /select我们可以使用单元测试来测试查询到的信息是否正确 单元测试有如下特点 快速生成一个方法来测试一个功能模块只有所有单元测试通过才会打包防止程序出现bug用单元测试的事务可以回滚到未测试状态不会污染数据库的数据 可以看到spring中自带单元测试的依赖我们不用再引用junit了 只需要在要测试的类中右键选择generatetest即可创建单元测试 勾选需要添加的单元测试方法 然后就会在test包下生成对应的测试类 添加SpringBootTest注解可以让当前测试类运行在springBoot环境中 添加Transactional注解可以创建事务运行完测试类后会回滚到初始状态不会污染数据 SpringBootTest Transactional class UserMapperTest {AutowiredUserMapper userMapper;Testvoid getUserById(){UserInfo userInfo userMapper.getUserById(1);System.out.println(userInfo); Assertions.assertEquals(admin,userInfo.getUsername());} }可以看到查询到对应的userinfo对象并且控制台中有详细的sql语句 也可以使用#通配符 select idgetUserById resultTypecom.example.demo.entity.UserInfoselect * from userinfo where id#{user_id} /select可以发现使用$是直接用1替换id而使用#则是先使用占位符再在后面的语句中用1替换 查询所有用户 UserMapper ListUserInfo getAll();UserMapper.xml: select idgetAll resultTypecom.example.demo.entity.UserInfoselect * from userinfo /selectUserMapperTest Test void getAll() {ListUserInfo list userMapper.getAll();Assertions.assertEquals(1, list.size()); }根据用户名查询用户 UserMapper: ListUserInfo getUserByName(String username);UserMapper.xml: select idgetUserByName resultTypecom.example.demo.entity.UserInfoselect * from userinfo where username#{username} /selectUserMapperTest Test void getUserByName() {ListUserInfo list userMapper.getUserByName(admin);System.out.println(list.size()); }这时查找是成功的 如果使用$则会不成功 select idgetUserByName resultTypecom.example.demo.entity.UserInfoselect * from userinfo where username${username} /select可以看到sql语句中直接将username替换成admin而没有加上因此导致了查询操作不成功 #和$的区别 同样是占位符#是预编译处理也就是先将sql中的#{}内容替换成然后在使用PreparedStatement的set方法来赋值操作 因此在替换时admin会自动加上 而$则是直接替换操作因此admin没有加上 而直接替换也有好处例如我们要按顺序查找数据时,就不需要了因此需要使用$ select idgetAllBySort resultTypecom.example.demo.entity.UserInfoselect * from userinfo order by id ${sort} /select增添操作 UserMapper Integer add(UserInfo userInfo);UserMapper.xml: 除了查找操作其他的几种操作都不需要指定返回类型了并且可以直接使用对象中的属性来进行插入操作 insert idaddinsert into userinfo(username,password,createtime,updatetime)values(#{username},#{password},#{createTime},#{updateTime}) /insertUserMapperTest: Test void add() {UserInfo userInfo new UserInfo();userInfo.setUsername(san);userInfo.setPassword(123);userInfo.setCreateTime(LocalDateTime.now());userInfo.setUpdateTime(LocalDateTime.now());int result userMapper.add(userInfo);System.out.println(result);Assertions.assertEquals(1, result); }添加自增id 在xml中将useGeneratedKeys设置为true表示mybatis中使用数据库内部生成的主键 而keyProperty的值可以指定唯一识别对象的属性也就是说mybatis会使用getGeneratedKeys的返回值来设置值 insert idaddGetId useGeneratedKeystrue keyPropertyidinsert into userinfo(username,password,createtime,updatetime)values(#{username},#{password},#{createTime},#{updateTime}) /insert修改操作 UserMapper int upUserName(UserInfo userInfo);UserMapper.xml: update idupUserNameupdate userinfo set username#{username} where id#{id} /updateUserMapperTest Test void upUserName() {UserInfo userInfo new UserInfo();userInfo.setId(2);userInfo.setUsername(si);int result userMapper.upUserName(userInfo);System.out.println(result);Assertions.assertEquals(1,result); }删除操作 UserMapper int delById(Param(id) Integer id);UserMapper.xml: delete iddelByIddelete from userinfo where id#{id} /deleteUserMapperTest Test void delById() {Integer id 2;int result userMapper.delById(id);System.out.println(result);Assertions.assertEquals(1,result); }
http://www.hkea.cn/news/14576287/

相关文章:

  • html5网站 源码机械技术支持 东莞网站建设
  • 熊掌号怎么做网站跳转链接苏州做网站公司电话
  • 手机建站最好的网站网站建设运营
  • 北京门户网站设计网站建设搭建
  • 西红门网站建设效果好的魔站建站系统
  • 网站开发加维护需要多少钱如何能让企业做网站的打算
  • 大气网站背景台州永建建设有限公司网站
  • wordpress 还原备份成都网站优化报价
  • 兰州手机网站河田镇建设局网站
  • 网站建设方面的书小工程承包网
  • 专门做dm单的网站网站建设哪些字体没有版权
  • gg服务器租用网站关键词查询爱站网
  • 南京网站开发选南京乐识赞辣条网站建设书
  • win7iis配置网站成都行业网站建设
  • 自己做的网站网站搜索wordpress投稿者查看评论
  • 网站打开速度慢跟什么有关系Wordpress的未来
  • 免费h5旅游网站模板静海做网站公司
  • 哈尔滨网站建设报价价格深圳全网推广营销怎么做
  • 查看网站开发语言方法上海免费网站建站模板
  • 网站搭建中114514网站建设工作会议
  • 潍坊网站的公司电话用来做微网站的
  • 东莞网站建设求职简历建设网站关键词怎么写
  • 做网站用什么编程语言好网站的注册和登录界面怎么做
  • mysql 网站开发 问好工业设计公司发展方向
  • 门户网站创建常州市教育基本建设与装备管理中心网站
  • 网站建设的前景生哥seo博客
  • 蓬莱网站设计wordpress企业宣传电商
  • 石龙镇网站仿做wordpress手机版登录
  • 李青青做网站 公司主要做应用领域做的网站没给我备案
  • 鄞州区网站建设网址收录