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

网站建设的公司开发方案企业营销策划书如何编写

网站建设的公司开发方案,企业营销策划书如何编写,济南模板网站设计,wordpress html5插件下载文章目录 前言LocalDate数据库代码po 包 ifwhere 标签 查trim 标签 增set 标签 改foreach 标签 删 前言 提示:这里可以添加本文要记录的大概内容: 查询条件是动态的 MyBatis的动态SQL语句是指在运行时根据不同条件选择不同的SQL语句执行。 这些条件可…

文章目录

  • 前言
    • LocalDate
    • 数据库代码
    • po 包
  • if+where 标签 查
  • trim 标签 增
  • set 标签 改
  • foreach 标签 删


前言

提示:这里可以添加本文要记录的大概内容:

查询条件是动态的

MyBatis的动态SQL语句是指在运行时根据不同条件选择不同的SQL语句执行。
这些条件可以是参数值、条件语句、动态标签等。
动态SQL语句的编写可以有效地减少重复代码

LocalDate

在 Java 8 中,LocalDatejava.time 包中的一个类,表示一个日期(年、月、日)。为了创建一个 LocalDate 对象,需要使用 LocalDate.of() 方法,该方法接受三个参数:年、月、日。

例如:

LocalDate date = LocalDate.of(2022, 9, 1);

这将创建一个 LocalDate 对象,表示 2022 年 9 月 1 日。

在你的代码中,为了将生日传递给 Cust 对象,你需要使用 LocalDate.of() 方法来创建一个 LocalDate 对象,并将其传递给 Cust 构造函数。例如:

Cust cust = new Cust(null, "吴三", "17446541321", LocalDate.of(2008, 5, 12), 10.0);

这将创建一个 Cust 对象,并将生日设置为 2008 年 5 月 12 日。

所以,你需要注意的是,LocalDate 是一个类,而 LocalDate.of() 是用于创建 LocalDate 对象的方法。

具体使用:

LocalDate 类提供了一个静态方法 of(int year, int month, int dayOfMonth),该方法允许创建一个指定年份、月份和日期的 LocalDate 对象。

以下是使用 LocalDate.of() 方法创建 LocalDate 对象的步骤:

  1. 导入 java.time.LocalDate 类:
   import java.time.LocalDate;
  1. 使用 of() 方法创建 LocalDate 对象:
   LocalDate date = LocalDate.of(year, month, dayOfMonth);

其中 year、month 和 dayOfMonth 分别代表年份、月份和日期,是整数类型的值:

   LocalDate date = LocalDate.of(2022, 10, 1);

创建了一个 LocalDate 对象,表示 2022 年 10 月 1 日。

  1. 处理 LocalDate 对象:

    一旦创建了一个 LocalDate 对象,可以使用它来执行各种操作,例如:

    • 获取日期的年份、月份和日期:
     int year = date.getYear();int month = date.getMonthValue();int day = date.getDayOfMonth();
  • 获取星期几:
     DayOfWeek dayOfWeek = date.getDayOfWeek();
  • 进行日期计算:
     LocalDate plusDays = date.plusDays(7); // 返回一周后的日期LocalDate minusMonths = date.minusMonths(2); // 返回两个月前的日期
  • 比较日期:
     LocalDate otherDate = LocalDate.of(2022, 10, 2);boolean isBefore = date.isBefore(otherDate); // 返回 trueboolean isAfter = date.isAfter(otherDate); // 返回 falseboolean isEqual = date.isEqual(otherDate); // 返回 false

这些就是使用 LocalDate.of() 方法创建和处理 LocalDate 对象的步骤。

数据库代码

这里以客户表为例

CREATE TABLE cust (id INT PRIMARY KEY auto_increment,         # idname VARCHAR(50) NOT NULL,    # 姓名phone VARCHAR(20),      # 电话birthday DATE,          # 出生日期balance DOUBLE          # 余额
);
INSERT INTO cust (id, name, phone, birthday, balance) VALUES (1, '张三', '13611111111', '1990-01-01', 1000.00);INSERT INTO cust (id, name, phone, birthday, balance) VALUES (2, '李四', '13722222222', '1995-02-02', 2000.00);INSERT INTO cust (id, name, phone, birthday, balance) VALUES (3, '王五', '13833333333', '1985-03-03', 3000.00);

po 包

新建项目后完善 pom.xml 文件、mybatis 的配置文件、log4j 的日志文件

在 main/java 文件中新建包 mapper 和 po

po 包代码:这里面有个Date类型,要注意!

public class Cust {private Integer id;private String name;private String phone;private Date birthday;private double balance;// 为了模糊查询某个时间段private Date startTime;private Date endTime;// 自动生成 Getter、Setter、toString()、有参无参方法
}

提示:以下是本篇文章正文内容,下面案例可供参考

if+where 标签 查

if+where语句可以根据条件动态构建where子句,以过滤查询结果。

在 mapper 包内新建接口文件和与之同名的映射文件
映射文件中的namespace必须是接口的限定名

先写接口文件:
在模糊查询功能中,输入 id 按照 id 查询,输入名字按照名字查询,输入手机号按照手机号查询,所以返回值是多个,查询多个用List

public interface CustMapper {List<Cust> queryCusts(Cust cust);
}

复制方法名回到映射文件粘贴到 id

下面模糊查询某个时间段的映射文件代码:

<mapper namespace="com.mybatis.mapper.CustMapper"><!-- 动态的where条件 --><select id="queryCusts" parameterType="Cust" resultType="Cust">select * from cust<where><if test="startTime != null">and birthday &gt;=#{startTime}</if><if test="endTime != null">and birthday &lt;=#{endTime}</if></where></select>
</mapper>

以上代码中,映射文件中的 select 语句使用了动态的 where 条件,其中的 if 标签用于判断 startTime 和 endTime 是否为 null,若不为 null,则生成相应的SQL语句。
若输入了 startTime,则添加一个条件为 birthday>=startTime 的 where 子句;
若输入了 endTime,则添加一个条件为 birthday<=endTime 的 where 子句。

测试代码(模糊查询某个时间段):

    @Testpublic void where() throws Exception {CustMapper mapper = session.getMapper(CustMapper.class);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date startTime = sdf.parse("1990-01-01");Date endTime = sdf.parse("1999-12-31");Cust cust = new Cust();cust.setStartTime(startTime);cust.setEndTime(endTime);mapper.queryCusts(cust);}

在测试代码中,将 startTime 和 endTime 分别解析成日期格式,并通过set方法设置到Cust 对象中,作为参数传递给 queryCusts 方法进行查询。
在这里插入图片描述
如果是模糊查询 id、姓名、手机号:
映射文件代码:

<mapper namespace="com.mybatis.mapper.CustMapper"><!-- 动态的where条件 --><select id="queryCusts" parameterType="Cust" resultType="Cust">select * from cust<where><if test="id != null">and id = #{id}</if><!-- 类型是String,也不能等于空 --><if test="name != null and name != '' ">and name like concat('%',#{name},'%')</if><if test="phone != null and phone != '' ">and phone like concat('%',#{phone},'%')</if> </where></select>
</mapper>

测试代码(模糊查询 id、姓名、手机号):

	@Test public void where() {CustMapper mapper = session.getMapper(CustMapper.class);Cust cust = new Cust(null, "三", null,null,1000.0);mapper.queryCusts(cust);}

在测试代码中创建了一个Cust 对象,只设置了 name 属性值为"三",然后调用queryCusts 方法进行查询。因为 id 和 phone 属性值为null,所以查询条件中只会有name 相关的查询语句。此时,查询结果会返回所有名字包含"三"的记录。

需要注意的是,测试代码中设置的name值必须是一个非空字符串才会被加入到查询条件中。如果 name 属性值为 null 或空字符串,那么查询条件中不会包含对 name 的筛选。

查询结果:
在这里插入图片描述

trim 标签 增

Trim语句:可以包装一组语句,去除多余的空格或逗号;

mapper接口的代码:

void insertCust(Cust cust);

在映射文件增加对应的语句:
增加客户信息

<insert id="insertCust" parameterType="Cust" useGeneratedKeys="true" keyProperty="id">insert into cust<trim prefix="(" suffix=")" suffixOverrides=",">id, name,<if test="phone != null and phone != '' ">phone,</if><if test="birthday != null">birthday,</if><if test="balance != null">balance,</if></trim><trim prefix="values(" suffix=")" suffixOverrides=",">#{id}, #{name},<if test="phone != null and phone != '' ">#{phone},</if><if test="birthday != null">#{birthday},</if><if test="balance != null">#{balance},</if></trim>
</insert>

接下来是测试:【注意: LocalDate】当然前面的类型也要改

	@Testpublic void trim() {CustMapper mapper = session.getMapper(CustMapper.class);Cust cust = new Cust(null, "吴三", "17446541321", LocalDate.of(1998, 6, 12), 10.0);mapper.insertCust(cust);}

在这里插入图片描述

set 标签 改

set语句:可用于构建UPDATE语句的SET子句;

mapper接口的代码:

void updateCust(Cust cust);

在对应的映射文件中:

根据 id 更改名字 和 电话号码

    <update id="updateCust" parameterType="Cust">update cust<set><if test="name != null and name != '' ">name = #{name},</if><if test="phone != null and phone != '' ">phone = #{phone},</if></set>where id = #{id}</update>

测试类代码:

	@Testpublic void set() {CustMapper mapper = session.getMapper(CustMapper.class);Cust cust = new Cust(10, "刘兆儿", "1459745610",null,1000.0);mapper.updateCust(cust);}

控制台:
在这里插入图片描述

foreach 标签 删

Foreach语句:用于遍历集合或数组,可以重复执行SQL语句;

可能要删多个数据,可以用数组(array)或 集合(list)

mapper接口的代码:

    void deleteCusts(int[] ids);

在对应的映射文件中:

    <delete id="deleteCusts" parameterType="int">delete from cust where id in<foreach collection="array" item="no" open="(" close=")" separator=",">#{no}</foreach></delete>

测试类代码:

	@Testpublic void foreach() {CustMapper mapper = session.getMapper(CustMapper.class);// idint [] nos = {1,2,3,4,5};mapper.deleteCusts(nos);}

在这里插入图片描述


文章转载自:
http://tutu.wgkz.cn
http://debrecen.wgkz.cn
http://ballotage.wgkz.cn
http://indehiscent.wgkz.cn
http://chirimoya.wgkz.cn
http://solderability.wgkz.cn
http://hunger.wgkz.cn
http://carlist.wgkz.cn
http://verdian.wgkz.cn
http://jauntiness.wgkz.cn
http://mayanist.wgkz.cn
http://blabber.wgkz.cn
http://macroengineering.wgkz.cn
http://timetable.wgkz.cn
http://backwoods.wgkz.cn
http://dice.wgkz.cn
http://piloti.wgkz.cn
http://amadan.wgkz.cn
http://laomedon.wgkz.cn
http://gagman.wgkz.cn
http://undermost.wgkz.cn
http://cannonproof.wgkz.cn
http://daf.wgkz.cn
http://trimurti.wgkz.cn
http://ballpoint.wgkz.cn
http://catagmatic.wgkz.cn
http://continentalization.wgkz.cn
http://sanceful.wgkz.cn
http://reblossom.wgkz.cn
http://pitt.wgkz.cn
http://creak.wgkz.cn
http://shortish.wgkz.cn
http://anthracitous.wgkz.cn
http://patagonian.wgkz.cn
http://coquette.wgkz.cn
http://supersalt.wgkz.cn
http://volvo.wgkz.cn
http://draconian.wgkz.cn
http://hobbyhorse.wgkz.cn
http://muktuk.wgkz.cn
http://singleness.wgkz.cn
http://hippocampal.wgkz.cn
http://severalty.wgkz.cn
http://injudicious.wgkz.cn
http://genie.wgkz.cn
http://fossilist.wgkz.cn
http://aerogenic.wgkz.cn
http://tarsus.wgkz.cn
http://cyprinodont.wgkz.cn
http://jingoish.wgkz.cn
http://hydrosulphuric.wgkz.cn
http://practised.wgkz.cn
http://expansile.wgkz.cn
http://motility.wgkz.cn
http://rowboat.wgkz.cn
http://walk.wgkz.cn
http://subapical.wgkz.cn
http://mcluhanize.wgkz.cn
http://messieurs.wgkz.cn
http://huntsmanship.wgkz.cn
http://redemptory.wgkz.cn
http://udo.wgkz.cn
http://queuer.wgkz.cn
http://divertimento.wgkz.cn
http://lived.wgkz.cn
http://expandedness.wgkz.cn
http://boxing.wgkz.cn
http://anesthetic.wgkz.cn
http://fh.wgkz.cn
http://newshen.wgkz.cn
http://calamander.wgkz.cn
http://telecommute.wgkz.cn
http://plumbery.wgkz.cn
http://deafness.wgkz.cn
http://interbreed.wgkz.cn
http://hydrastinine.wgkz.cn
http://krater.wgkz.cn
http://esmeralda.wgkz.cn
http://protectory.wgkz.cn
http://eriophyllous.wgkz.cn
http://obliquitous.wgkz.cn
http://elasticizer.wgkz.cn
http://unmilitary.wgkz.cn
http://anguiform.wgkz.cn
http://colouring.wgkz.cn
http://surprisedly.wgkz.cn
http://exchange.wgkz.cn
http://darkle.wgkz.cn
http://caecitis.wgkz.cn
http://syli.wgkz.cn
http://monochlamydeous.wgkz.cn
http://liliaceous.wgkz.cn
http://synergist.wgkz.cn
http://acidimetric.wgkz.cn
http://directrice.wgkz.cn
http://kalendar.wgkz.cn
http://biphenyl.wgkz.cn
http://fearless.wgkz.cn
http://greenhouse.wgkz.cn
http://coign.wgkz.cn
http://www.dt0577.cn/news/66646.html

相关文章:

  • 衢州网站建设百度搜索推广登录入口
  • 专业做家居的网站有哪些徐州seo招聘
  • 海口做网站青岛推广优化
  • 建筑公司网站的目标用户百度账号怎么改名字
  • 民宿网站开发的开题报告高效统筹疫情防控和经济社会发展
  • 东莞网站建设图表网络服务器价格
  • 网站建设有几种方式百度云资源链接分享群组
  • 深圳网址网站建设公司深圳百度seo公司
  • 伊利牛奶的网站建设策划书品牌营销策划怎么写
  • 做网站如何实现url拦截经典营销案例
  • 微信做商城网站免费个人网站平台
  • wordpress thefox关键词排名优化公司成都
  • 网站建设开发文档100个常用的关键词
  • 系统网站建设方案营销型网站seo
  • 游戏开发 网站开发新乡网站推广
  • wordpress写 a href开封seo公司
  • 网站做的一样侵权吗榆林seo
  • 用sql2000做网站网络服务合同纠纷
  • 政府网站建设提供商名单免费培训网站
  • 东莞市住房和城乡建设局网站关键词推广计划
  • 舟山 网站制作2024年1月新冠高峰
  • 网站开发组件拖拽深圳营销型网站设计公司
  • 新闻网站建设源码baidu百度
  • 外贸 静态网站 怎么做b2b免费发布网站大全
  • 经网站建设是什么经营范围网络营销学院
  • 重庆建站公司谷歌seo靠谱吗
  • c做网站网站优化要多少钱
  • 微信公众号怎么做网站的网络运营推广具体做什么工作
  • 网站建设案例教程今日最新新闻摘抄
  • 网站备案查询验证码错误上海站群优化公司