java开发小知识点1

1.时间

1.获取指定格式时间

//获取系统时间
Date date = new Date();
//日期格式
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
// DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//将系统时间转换成上方指定类型
String date = ft.format(date); 

2.获取时间

//获取时间
Calendar rightNow = Calendar.getInstance();  
Integer year = rightNow.get(Calendar.YEAR);//年
Integer month = rightNow.get(Calendar.MONTH)+1; //月;第一个月从0开始,所以得到月份+1
Integer day = rightNow.get(rightNow.DAY_OF_MONTH);//日
Integer hour12 = rightNow.get(rightNow.HOUR); //小时;12小时制
Integer hour24 = rightNow.get(rightNow.HOUR_OF_DAY);//小时;24小时制
Integer minute = rightNow.get(rightNow.MINUTE);//分
Integer second = rightNow.get(rightNow.SECOND);//秒
Integer millisecond = rightNow.get(rightNow.MILLISECOND);//毫秒

2.分页

//设置分页属性:pageNum页码,pageSize每页记录数
//只适用于下面代码中第一条sql语句
PageHelper.startPage(pageNum,pageSize);
//查询sql
List<ZhZdGzk> list = zhZdGzkMapper.getZhZdGzk(zhZdGzk);
//将查到的list存入pageInfo中
PageInfo<ZhZdGzk> pageInfo = new PageInfo<>(list);
//获取总数total
pageInfo.getTotal();

2.达梦

SELECT
        *
FROM
        (
                SELECT
                        TMP_PAGE.*,
                        ROWNUM ROW_ID
                FROM
                        (
                                SELECT
                                        ID                  ,
                                        CORP_NAME corpName  ,
                                        ISSUE_TYPE issueType,
                                        ISSUE_DESC issueDesc,
                                        CREATOR             ,
                                        CREATED
                                FROM
                                        dxxzsp_key_concern
                        )
                        TMP_PAGE
                WHERE
                        ROWNUM <= 100
        )
WHERE
        ROW_ID > 80;

3.导出

1.导出Excel

1.Controller层

public void getIdcJyzfs(HttpServletResponse response) {
    SXSSFWorkbook workBook = xkzbHeJgzcbTjService.getIdcJyzfsExcel();
    try {
        // 设置响应头
        response.setHeader("Connection", "close");
        response.setHeader("Content-Type", "application/vnd.ms-excel;charset=UTF-8");
        // 设置下载文件名
        String filename ="IDC经营者分省"+".xls";
        filename = URLEncoder.encode(filename, "UTF-8");
        response.setHeader("Content-Disposition", "attachment;filename=" + filename);
        // 获取响应输出流
        OutputStream os = response.getOutputStream();
        // 向输出流中写入流数据
        workBook.write(os);
        workBook.close();
        os.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

2.Service层

public SXSSFWorkbook getIdcJyzfsExcel() {
    // 创建工作簿
    SXSSFWorkbook workBook = new SXSSFWorkbook();
    try {
        //查询数据
        List<Map<String, Object>> list = xkzbHeJgzcbTjMapper.getIdcJyzfsExcel();
        // 创建sheet
        Sheet sheet = workBook.createSheet();
        // 指定位置创建行
        Row row = sheet.createRow(0);
        //创建表头
        row.createCell(0).setCellValue("PROVINCENAME");
        row.createCell(1).setCellValue("AREACODE");
        row.createCell(2).setCellValue("COUNT(1)");
        //表内容
        for(int i=0;i<list.size();i++){
            Row  rowt = sheet.createRow(i+1);
            //添加表内数据
            rowt.createCell(0).setCellValue((String) list.get(i).get("PROVINCENAME"));
            rowt.createCell(1).setCellValue((String) list.get(i).get("AREACODE"));
            rowt.createCell(2).setCellValue((long) list.get(i).get("COUNT(1)"));
        }
        return workBook;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return workBook;
}

2.导出word

1.Controller层

public void WjYbTjDocx(HttpServletResponse response, HttpServletRequest request) {
    XWPFDocument doc = ybTjService.WjYbTjDocx();
    try {
        // 设置响应头
        response.setHeader("Connection", "close");
        response.setHeader("Content-Type", "application/vnd.ms-excel;charset=UTF-8");
        // 设置下载文件名
        String filename ="年系统"+".docx";
        filename = URLEncoder.encode(filename, "UTF-8");
        response.setHeader("Content-Disposition", "attachment;filename=" + filename);
        // 获取响应输出流
        OutputStream os = response.getOutputStream();
        // 向输出流中写入流数据
        doc.write(os);
        doc.close();
        os.close();
    } catch (Exception e) {
        e.printStac
            kTrace();
    }
}

2.Service层

public XWPFDocument WjYbTjDocx() {
    XWPFDocument doc = new XWPFDocument();//新建一个新的word
    List<String> zzdxList = ybTjMapper.getZzdxList();//增值电信业务

    //设置一个段落
    XWPFRun r1 = doc.createParagraph().createRun();
    //设置文本
    r1.setText("4.1系统使用情况");
    //字体样式
    r1.setFontFamily("黑体");
    //设置字体大小
    r1.setFontSize(16);
    //设置粗体
    r1.setBold(true);

    //创建表格
    XWPFTable table = doc.createTable(6, 3);
    // 获取第一行
    XWPFTableRow row1 = table.getRow(0);
    row1.getCell(1).setText("  累计批准任务数");
    row1.getCell(2).setText("  本月批准任务数");

    //获取所有单元格
    List<XWPFTableRow> rows = table.getRows();
    //单元格高
    for(XWPFTableRow row:rows){
        row.setHeight(500);
    }
    return doc;
}

4.后端接受参数

1.JSON(有实体类情况)

public JSONObject getZhZdGzk(@RequestBody ZhZdGzk zhZdGzk){
    PageInfo<ZhZdGzk> pageInfo = zhZdGzkService.getZhZdGzk(zhZdGzk);
    JSONObject json = new JSONObject();
    json.put("rows",pageInfo.getList());
    json.put("total",pageInfo.getTotal());
    return json;
}

2.JSON(无实体类情况)

1.Map接受
public List getdata(@RequestBody Map<String,Integer> map){
    Integer pageNum = map.get("pageNum");
    Integer pageSize = map.get("pageSize");
}
2.params接受(不推荐)
public String deleteZhZdGzk(@RequestBody String params){
    //获取idList
    JSONObject jsonObject =JSONObject.parseObject(params);
    JSONArray idList = jsonObject.getJSONArray("idList")
}

5.SQL

1.增

1.所有列
insert into 表名 values (1,2...)
2.指定列
insert into 表名 (1,2...) values (1,2...)

2.删

delete from 表名 where 列名 =

3.改

update 表名 set 列名 = 新值 where 列名 =

4.查

1.去重,模糊,排序
select distinct * from 表名 where name like '%我%'  ORDER BY name DESC, no ASC ;--DESC 逆序; ASC 顺序(默认);
2.group by:分组查询

2.1查找订单总金额少于 2000 的客户

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XS0pWLle-1611308483748)(C:\Users\12735\AppData\Roaming\Typora\typora-user-images\image-20210116220239442.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uaSoXrqs-1611308483751)(C:\Users\12735\AppData\Roaming\Typora\typora-user-images\image-20210116220307160.png)]

3.区间查询

3.1.mysql前5条记录

SELECT * FROM 表名 LIMIT 5 ;--前5条记录
select * from Customer LIMIT 10;--检索前10行数据,显示1-10条数据
select * from Customer LIMIT 1,10;--检索从第2行开始,累加10条记录

3.2.oracle前5条记录

SELECT * FROM 表名 WHERE ROWNUM <= 5

3.3达梦,第5页,一页20区间(80,100]

SELECT
        *
FROM
        (
                SELECT
                        TMP_PAGE.*,
                        ROWNUM ROW_ID
                FROM
                        (
                            ---正常就下面一段
                            ------------------------------------
                                SELECT
                                        ID                  ,
                                        CORP_NAME corpName  ,
                                        ISSUE_TYPE issueType,
                                        ISSUE_DESC issueDesc,
                                        CREATOR             ,
                                        CREATED
                                FROM
                                        dxxzsp_key_concern
                            ------------------------------------
                        )
                        TMP_PAGE
                WHERE
                        ROWNUM <= 100
        )
WHERE
        ROW_ID > 80;

5.通配符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aYnk75OU-1611308483753)(C:\Users\12735\AppData\Roaming\Typora\typora-user-images\image-20210116220545645.png)]

3.1从表Persons中选取居住的城市 “A” 或 “L” 或 “N” 开头的人

SELECT * FROM Persons WHERE City LIKE '[ALN]%' 

3.2从表Persons中选取居住的城市不以 “A” 或 “L” 或 “N” 开头的人

SELECT * FROM Persons WHERE City LIKE '[!ALN]%'

6.函数

1.AVG() 平均值

AVG() 返回数值列的平均值。NULL 值不包括在计算中

SELECT AVG(列名) FROM 表名
2.FORMAT() 格式化

FORMAT() 用于对字段的显示进行格式化

SELECT FORMAT(需要格式化的字段,规定格式) FROM table_name
SELECT FORMAT(Now(),'YYYY-MM-DD') as PerDate FROM Products

6.Mybatis

1.xml文件头

位置在src/main/resources中

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<!--<mapper namespace="mapper映射文件路径(daoc层)">-->
<mapper namespace="com.jyq.dao.EmpDao">
     <!--查询所有员工-->
    <select id="findAll" resultType="com.jyq.entity.Emp">
        select * from t_emp
    </select>
</mapper>

2.模糊查询

<!--parameterType和resultType后面的值:实体类路径(可用别名),List,String等-->
<!--Mapper.java:(@Param("stuent")Student stuent)-->
<select id="getZhZdGzk" parameterType="Student" resultType="Student">
    select * from 表名 where name like concat ('%',#{stuent.name},'%') 
</select>

3.ResultMap

<!--<resultMap id="select中resultMap调用的名字" type="返回值的类名">-->
<resultMap id="userResultMap" type="User">
    <!--<result column="数据库字段名" property="实体类属性" jdbcType="数据库字段类型"/>-->
    <id column="user_id" property="id" />
    <result column="user_name" property="username" />
    <result column="hashed_password" property="password"/>
</resultMap>
<select id="selectUsers" resultMap="userResultMap">
    select user_id, user_name, hashed_password from 表名 where id = #{id}
</select>

4.动态SQL

1.if
<select id="findActiveBlogLike" resultType="Blog">
    SELECT * FROM BLOG WHERE state = ‘ACTIVE’
    <if test="title != null">
        AND title like #{title}
    </if>
</select>
2.choose;when;otherwise

多个条件选一个,有点像 Java 中的 switch 语句

<select id="findActiveBlogLike" resultType="Blog">
    SELECT * FROM BLOG WHERE state = ‘ACTIVE’
    <choose>
        <when test="title != null">
            AND title like #{title}
        </when>
        <when test="author != null and author.name != null">
            AND author_name like #{author.name}
        </when>
        <otherwise>
            AND featured = 1
        </otherwise>
    </choose>
</select>
3.trim、where、set

3.1***where*** 元素只会在有if符合的情况下插入。而且,若子句的开头为 “AND” 或 “OR”,where 元素也会将它们去除。

<select id="findActiveBlogLike" resultType="Blog">
    SELECT * FROM BLOG
    <where>
        <if test="state != null">
            state = #{state}
        </if>
        <if test="title != null">
            AND title like #{title}
        </if>
    </where>
</select>

与where等价的trim:

prefixOverrides:去除前缀, prefix :where或set等(有条件符合就插入)。

<trim prefix="WHERE" prefixOverrides="AND |OR ">
    ...
</trim>

3.2***set*** 元素可以用于动态包含需要更新的列,忽略其它不更新的列`

<update id="updateAuthorIfNecessary">
    update Author
    <set>
        <if test="username != null">username=#{username},</if>
        <if test="password != null">password=#{password},</if>
        <if test="bio != null">bio=#{bio}</if>
    </set>
    where id=#{id}
</update>

与set等价的trim:

suffixOverrides:去除后缀

<trim prefix="SET" suffixOverrides=",">
    ...
</trim>
4.foreach

对集合进行遍历(尤其是在构建 IN 条件语句的时候)

  • item: 在list和数组中是其中的对象,在map中是value;必选
  • index: 在list和数组中,index是元素的序号,在map中,index是元素的key;可选
  • **open: **foreach代码的开始符号,一般是(和close=")"合用。常用在in(),values()时。可选
  • close: foreach代码的关闭符号,一般是)和open="("合用。常用在in(),values()时。可选
  • separator:元素之间的分隔符,例如在in()的时候,separator=","会自动在元素中间用“,“隔开,如in(1,2,)这样。可选
  • collection: 要做foreach的对象,作为入参时,List对象默认用"list"代替作为键,数组对象有"array"代替作为键,Map对象没有默认的键。当然在作为入参时可以使用@Param(“keyName”)来设置键,设置keyName后,list,array将会失效。 除了入参这种情况外,还有一种作为参数对象的某个字段的时候。举个例子:如果User有属性List ids。入参是User对象,那么这个collection = “ids”.如果User有属性Ids ids;其中Ids是个对象,Ids有个属性List id;入参是User对象,那么collection = "ids.id"
<select id="selectPostIn" resultType="domain.blog.Post">
  SELECT * FROM POST P WHERE ID in
  <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
        #{item}
  </foreach>
</select>

5.特殊符号

     &							&amp;		
     <							&lt;
	 >							&gt;
	 "							&quot;  //双引号
     '							&apos;  //单引号
   a<=b                 	a &lt;=b 或者 a <![CDATA[<= ]]>b 
   a>=b                 	a &gt;=b 或者 a <![CDATA[>= ]]>b
   a!=b						a <![CDATA[ <> ]]>b 或者 a <![CDATA[!= ]]>b

7.配置文件

1.Springboot配置

1.application.properties
#访问路径
server.servlet.context-path=/ems
#访问端口
server.port=8989
#编码格式
server.tomcat.uri-encoding=utf-8
#数据库
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/ems_thymeleaf?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456

#mybatis
mybatis.mapper-locations=classpath:/com/jyq/mapper/*.xml
#别名有问题,不生效
mybatis.type-aliases-package=com.jyq.entity 
#静态资源路径
spring.web.resources.static-locations=classpath:/templates/,classpath:/static/
2.pom.xml
<!--mybatis-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.2</version>
</dependency>
<!--druid-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.19</version>
</dependency>



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值