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

网站建设主要流程WordPress打开数据库

网站建设主要流程,WordPress打开数据库,网站建设所学内容,腾云公司做网站一、Mybatis 基础操作 1 需求 功能列表#xff1a; 查询 根据主键ID查询 条件查询新增更新删除 根据主键ID删除 根据主键ID批量删除 2 准备 实施前的准备工作#xff1a; 准备数据库表创建一个新的 springboot 工程#xff0c;选择引入对应的起步依赖#xff08;mybatis、…一、Mybatis 基础操作 1 需求 功能列表 查询 根据主键ID查询 条件查询新增更新删除 根据主键ID删除 根据主键ID批量删除 2 准备 实施前的准备工作 准备数据库表创建一个新的 springboot 工程选择引入对应的起步依赖mybatis、mysql 驱动、lombokapplication.properties 中引入数据库连接信息创建对应的实体类 Emp实体类属性采用驼峰命名准备 Mapper 接口 EmpMapper 3 删除 3.1 功能实现 当我们点击后面的删除按钮时前端页面会给服务端传递一个参数也就是该行数据的 ID。我们接收到 ID 后根据 ID 删除数据即可。 Mapper public interface EmpMapper {//根据ID删除数据Delete(delete from emp where id #{id})public void delete(Integer id);//public int delete(Integer id); }SpringBootTest class SpringbootMybatisCrudApplicationTests {Autowiredprivate EmpMapper empMapper;//根据ID删除Testpublic void testDelete(){//int delete empMapper.delete(16);//System.out.println(delete);empMapper.delete(18);} }3.2 日志输入 在 Mybatis 当中我们可以借助日志查看到 sql 语句的执行、执行传递的参数以及执行结果。具体操作如下 打开 application.properties 文件开启 mybatis 的日志并指定输出到控制台 #指定mybatis输出日志的位置,输出控制台 mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl3.3 预编译 SQL 预编译 SQL 有两个优势 性能更高更安全(防止 SQL 注入) SQL 注入是通过操作输入的数据来修改事先定义好的 SQL 语句以达到执行代码对服务器进行攻击的方法。 在 Mybatis 中提供的参数占位符有两种${…} 、#{…} #{…} 执行 SQL 时会将#{…}替换为?生成预编译 SQL会自动设置参数值 使用时机参数传递都使用#{…}${…} 拼接 SQL。直接将参数拼接在 SQL 语句中存在 SQL 注入问题 使用时机如果对表名、列表进行动态设置时使用 4 新增 4.1 基本新增 Mapper public interface EmpMapper {Insert(insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time) values (#{username},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime}))public void insert(Emp emp); }SpringBootTest class SpringbootMybatisCrudApplicationTests {Autowiredprivate EmpMapper empMapper;//新增员工Testpublic void testInsert(){//构造员工对象Emp emp new Emp();emp.setUsername(Tom3);emp.setName(汤姆3);emp.setImage(1.jpg);emp.setGender((short)1);emp.setJob((short)1);emp.setEntrydate(LocalDate.of(2000,1,1));emp.setCreateTime(LocalDateTime.now());emp.setUpdateTime(LocalDateTime.now());emp.setDeptId(1);//执行新增员工信息操作empMapper.insert(emp);} }4.2 主键返回 默认情况下执行插入操作时是不会主键值返回的。如果我们想要拿到主键值需要在 Mapper 接口中的方法上添加一个 Options 注解并在注解中指定属性 useGeneratedKeys true 和 keyProperty 实体类属性名 Mapper public interface EmpMapper {Options(useGeneratedKeys true, keyProperty id)Insert(insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time) values (#{username},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime}))public void insert(Emp emp); }5 更新 Mapper public interface EmpMapper {//更新员工Update(update emp set username #{username}, name #{name}, gender #{gender}, image #{image}, job #{job}, entrydate #{entrydate}, dept_id #{deptId},update_time #{updateTime} where id #{id})public void update(Emp emp); }6 查询 6.1 根据ID查询 Mapper public interface EmpMapper {Select(select * from emp where id #{id})public Emp getById(Integer id); }6.2 数据封装 实体类属性名 和 数据库表查询返回的字段名一致mybatis 会自动封装。 如果实体类属性名 和 数据库表查询返回的字段名不一致不能自动封装。 起别名在SQL语句中对不一样的列名起别名别名和实体类属性名一样。 //方案一: 给字段起别名, 让别名与实体类属性一致Select(select id, username, password, name, gender, image, job, entrydate, dept_id deptId, create_time createTime, update_time updateTime from emp where id #{id})public Emp getById(Integer id);手动结果映射通过 Results及Result 进行手动结果映射。 //方案二: 通过Results, Result注解手动映射封装Results({Result(column dept_id, property deptId),Result(column create_time, property createTime),Result(column update_time, property updateTime)})Select(select * from emp where id #{id})public Emp getById(Integer id);开启驼峰命名如果字段名与属性名符合驼峰命名规则mybatis 会自动通过驼峰命名规则映射。在 application.properties 中添加 #开启驼峰命名自动映射即从数据库字段名 a_column 映射到Java 属性名 aColumn。 mybatis.configuration.map-underscore-to-camel-casetrue6.3 条件查询 方式一 模糊查询使用${…}进行字符串拼接这种方式呢由于是字符串拼接并不是预编译的形式所以效率不高、且存在sql注入风险。 Mapper public interface EmpMapper {//条件查询员工//方式一Select(select * from emp where name like %${name}% and gender #{gender} and entrydate between #{begin} and #{end} order by update_time desc )public ListEmp list(String name, Short gender, LocalDate begin , LocalDate end); }方式二解决SQL注入风险 使用 MySQL 提供的字符串拼接函数concat(‘%’ , ‘关键字’ , ‘%’) Mapper public interface EmpMapper {//条件查询员工//方式二Select(select * from emp where name like concat(%,#{name},%) and gender #{gender} and entrydate between #{begin} and #{end} order by update_time desc )public ListEmp list(String name, Short gender, LocalDate begin , LocalDate end); }6.4 参数名说明 二、Mybatis 的 XML 配置文件 1 XML 配置文件规范 规范 XML 映射文件的名称与 Mapper 接口名称一致并且将 XML 映射文件和 Mapper 接口放置在相同包下 同包同名。XML 映射文件的 namespace 属性为 Mapper 接口全限定名一致。XML 映射文件中sql语句的 id 与 Mapper 接口中的方法名一致并保持返回类型一致。 2 XML 配置文件实现 Mapper public interface EmpMapper {//动态条件查询public ListEmp list(String name, Short gender, LocalDate begin , LocalDate end); }?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.itheima.mapper.EmpMapper!--resultType: 单条记录封装的类型--select idlist resultTypecom.itheima.pojo.Empselect * from emp where name like concat(%,#{name},%) and gender #{gender} and entrydate between #{begin} and #{end} order by update_time desc/select/mapper3 MybatisX 的使用 MybatisX 是一款基于 IDEA 的快速开发 Mybatis 的插件为效率而生。 使用 Mybatis 的注解主要是来完成一些简单的增删改查功能。如果需要实现复杂的 SQL 功能建议使用 XML 来配置映射语句。 官方说明https://mybatis.net.cn/getting-started.html 三、Mybatis 动态 SQL 1 什么是动态SQL SQL 语句会随着用户的输入或外部条件的变化而变化我们称为动态 SQL。 2 动态 SQL-if 2.1 条件查询 if用于判断条件是否成立。使用 test 属性进行条件判断如果条件为 true则拼接 SQL。wherewhere 元素只会在子元素有内容的情况下才插入 where 子句。而且会自动去除子句的开头的 AND 或 OR。 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.itheima.mapper.EmpMapper!--resultType: 单条记录封装的类型--select idlist resultTypecom.itheima.pojo.Empselect * from emp whereif testname ! nullname like concat(%, #{name}, %)/ifif testgender ! nulland gender #{gender}/ifif testbegin ! null and end ! nulland entrydate between #{begin} and #{end}/if/whereorder by update_time desc/select/mapper2.2 更新员工 set动态地在行首插入 SET 关键字并会删掉额外的逗号。用在update语句中 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.itheima.mapper.EmpMapper!-- 动态更新员工--update idupdate2update empsetif testusername ! nullusername #{username},/ifif testname ! nullname #{name},/ifif testgender ! nullgender #{gender},/ifif testimage ! nullimage #{image},/ifif testjob ! nulljob #{job},/ifif testentrydate ! nullentrydate #{entrydate},/ifif testdeptId ! nulldept_id #{deptId},/ifif testupdateTime ! nullupdate_time #{updateTime}/if/setwhere id #{id}/update/mapper3 动态 SQL-foreach Mapper public interface EmpMapper {//批量删除员工public void deleteByIds(ListInteger ids); }?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.itheima.mapper.EmpMapper!--批量删除员工 (18,19,20)--!--collection: 遍历的集合item: 遍历出来的元素separator: 分隔符open: 遍历开始前拼接的SQL片段close: 遍历结束后拼接的SQL片段--delete iddeleteByIdsdelete from emp where id inforeach collectionids itemid separator, open( close)#{id}/foreach/delete/mapper4 动态 SQL-sqlinclude 定义可重用的 SQL 片段。通过属性 refid指定包含的 sql 片段。
http://www.pierceye.com/news/7540/

相关文章:

  • 百度下载搜索优化
  • 做大型网站建设微信小程序商城怎么开通
  • 购物网站为什么做移动端页面模板免费
  • AWS免费套餐做网站可以吗成都关键词排名提升
  • 网页设计 传统网站本地网站模版批量修改网站字符
  • 网站建设需要哪些设备做网站怎么防止被黑
  • 网站 建设石家庄那有建网站
  • 网站建设行业好做吗门户类网站
  • 企业建站系统官网宁波妇科专家排名
  • 网站开发需要的技术人员有什么软件wordpress充值卡插件
  • 网页创意的再设计seo技术公司
  • 茂名手机网站建设公司私密浏览器免费版片视频动漫
  • 比较好的设计网站有哪些成都网站建设哪便宜
  • 互联网网站制作事业单位 网络网站建设
  • 微信营销软件网站建设seo学徒
  • 上海市建设工程备案查询网站展览展示展厅设计
  • 做网站能赚钱吗浙江省两学一做网站
  • 银行需要网站开发人员吗泰安百度做网站的
  • 全球设计网站排行网站开发项目运营经理岗位职责
  • 免费插画素材网站网站建设 开源
  • 建网站需要什么资料湘潭seo网站优化
  • 网站备案是空间备案还是域名备案昆明营销型网站建设公司
  • 惠州网站建设行业个人网页简单模板下载
  • 东莞网站搭建哪家强创新能力建设资金网站
  • 建设一个私人视频网站西安网站设计外包公司
  • 做网站的前景如何东莞电子网站建设
  • 网站建设的目标展厅设计案例
  • 个人做当地旅游网站做基础销量的网站
  • 网站建设维护价格长沙专业网站建设团队
  • 做游戏网站定位营销策略分析