Java
光年之外_yi
这个作者很懒,什么都没留下…
展开
-
Java中使用Redis
1.连接到Redis服务public class test { public static void main(String[] args) { // 连接本地的 Redis 服务 Jedis jedis = new Jedis("localhost"); // 如果 Redis 服务设置了密码,需要添加下面这一行 // jedis.auth("123456"); // 查询Redis是否连接成功 System.out.println(jedis.ping());//输出结果为:原创 2021-02-01 17:55:55 · 190 阅读 · 0 评论 -
Java实现Excel导出数据
1.在页面编写Excel导出的方法(我这里使用了Layui组件),示例代码var table = layui.table;/********** (添加数据)表格头部工具栏监听事件 **********/table.on('toolbar(insertInfo)', function(obj){ var checkStatus = table.checkStatus(obj.config.id); var len = checkStatus.data.length; var原创 2021-01-17 16:22:51 · 628 阅读 · 2 评论 -
Java实现Excel导入数据
1.引入org.apache.poi相关jar包Apache POI(Poor Obfuscation Implementation)是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。API文档:http://poi.apache.org/apidocs/index.html ,我这里以SSM项目为例,在pom.xml配置文件中配置。<!-- https://mvnrepository.com原创 2020-12-28 09:59:17 · 784 阅读 · 0 评论 -
Mybatis新增修改删除数据
1.新增数据使用MyBatis生成器生成的方法中含有两个新增方法,分别是insert和insertSelective,可以直接使用。这个两个方法的区别是,insertSelective对应的sql语句加入了NULL校验,只会插入数据不为NULL的字段,insert则会插入所有的字段,会插入NULL值。测试方法如下,示例代码://新增@Testpublic void insert() throws ParseException{ //获取sqlsession SqlSession sqlSessi原创 2020-12-17 20:33:22 · 744 阅读 · 0 评论 -
Mybatis数据查询
1.在DAO中添加查询的方法,示例代码:/** * UserDAO继承基类 */public interface UserDAO extends MyBatisBaseDao<User, Integer> { // 1.查询全部数据(单表) public List<User> selectAll(); // 2.连表查询(单条数据) public UserVo selectUserById(@Param("userid") int userid); // 3.原创 2020-12-07 15:25:55 · 270 阅读 · 0 评论 -
使用mybatis-generator-gui工具生成dao、po、mapping文件
mybatis-generator-gui主要是基于mybatis generator进行开发,可以快速生成Mybatis的Java POJO文件及数据库Mapping文件,简化了书写Mapping的映射文件的过程,更加高效便捷。一、修改jdk8路径,运行mybatis-generator-gui工具这个工具由于使用了Java8的众多特性,所以要求使用JDK 1.8.0.60以上版本,需要安装 JDK 1.8.0.60以上的版,安装后不需要安装JDK1.8的jre,也不需要配置环境变量。1.打开工具目原创 2020-11-27 09:57:59 · 201 阅读 · 0 评论 -
使用生成类生成dao、po、mapping文件
1.在src目录下创建配置文件generatorConfig_local.xml,代码如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dt原创 2020-11-17 20:14:03 · 268 阅读 · 3 评论 -
使用mybatis-generator插件生成dao、po、mapping文件
1.引入jar包我这里使用的是Mysql数据库,所以需要引入一个连接myspl数据库的jar包2.在src目录下创建配置文件generatorConfig.xml,代码如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybati原创 2020-11-08 09:57:33 · 269 阅读 · 0 评论 -
Spring关于AOP的简单例子
1.AOP(面向切面编程)AOP(Aspect-OrientedProgramming),利用一种称为"横切"的技术,剖解开封装的对象内部,将那些影响了多个类的公共行为封装到一个可重用模块,命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。使用"横切"技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是原创 2020-10-27 20:58:07 · 1286 阅读 · 0 评论 -
项目整合Swagger遇到的错误
在SSM项目中整合Swagger的过程中遇到了一些问题,我这里做一个整理。1.访问swagger时报错500,如下图所示:报错的原因:swagger与spring的版本不匹配。解决方法是在pom文件中引入较低版本的swagger依赖,或者引入较高版本的spring,我这里是降低了swagger的版本。<!--springfox的核心jar包--><dependency> <groupId>io.springfox</groupId> <原创 2020-10-17 16:24:39 · 2903 阅读 · 0 评论 -
SSM项目集成Swagger
根据需求我需要在SSM项目中整合Swagger,我这里所用的swagger为2.0以上版本。1.首先要引入依赖,需要注意的是如果swagger版本与spring版本不匹配,访问swagger可能会报错500,这个时候需要在pom文件中降低swagger版本,或升高spring版本。示例代码:<!--springfox的核心jar包--><dependency> <groupId>io.springfox</groupId> <artifac原创 2020-10-08 08:44:51 · 2038 阅读 · 1 评论 -
Hibernate使用HQL对数据进行增删改操作
以下操作是在Junit测试中完成的1.新建一个工具类,用来获得SessionFactory和 session,参考代码:工具类HibernateSessionFactory2.Hibernate中HQL暂不支持Insert,使用Hibernate session.save()或者sql的Insert代替。HQL区分大小写,关键字不区分大小写,示例代码:@Testpublic void testInsert() throws ParseException{ Session session=Hibe原创 2020-09-27 21:03:29 · 672 阅读 · 0 评论 -
Hibernate使用SQL对数据进行增删改操作
以下操作是在Junit测试中完成的1.新建一个工具类,用来获得SessionFactory和 session,参考代码:工具类HibernateSessionFactory2.在 Hibernate中使用SQL进行新增数据,需要注意的是设置参数的值,索引是从0开始的(修改和删除也是一样的),示例代码://Hibernate使用sql新增@Testpublic void testInsert() throws ParseException{ Session session=HibernateSe原创 2020-09-17 20:07:41 · 1089 阅读 · 0 评论 -
Hibernate3对数据进行增删改操作
以下操作是在Junit测试中完成的1.新建一个工具类,用来获得SessionFactory和 session,示例代码:package com.gx.util;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.cfg.Configuration;public class HibernateSessionFactory { private static f原创 2020-09-08 08:18:46 · 440 阅读 · 0 评论 -
Hibernate3数据查询
Hibernate3操作数据库有以下三种方式:Hibernate3的操作数据库、使用SQL和使用HQL1.使用Hibernate进行查询全部数据和条件查询@Testpublic void testSelectAllOne(){ //获取session Session session=HibernateSessionFactory.getSession(); //查询数据 List<User> users=session.createCriteria(User.class).lis原创 2020-09-04 15:52:02 · 219 阅读 · 0 评论 -
Spring部分注解的使用
Spring注解可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息,因为这些信息都可以通过 Java 反射机制获取。以下例子是在JSP+Servlet+JDBC项目上完成的。1.在dao层使用注解 @Repository这里需要注意的是注解是在接口的实现类中写,而不是接口。为了让 Spring 能够扫描类路径中原创 2020-08-28 16:02:51 · 142 阅读 · 0 评论 -
Struts2文件上传
1.以下是jsp页面中的代码:<body> <!-- 上传文件的form表单 --> <form action="${ctx}/file/uploadAction!upload.action" method="post" enctype="multipart/form-data"> <input type="file" name="upFile" /> <br> <input type="submit" v原创 2020-06-28 12:38:05 · 221 阅读 · 0 评论 -
Struts2中拦截器的使用
拦截器(Interceptor),主要完成请求参数的解析、将页面表单参数赋给值栈中相应属性、执行功能检验、程序异常调试等工作求中极易出现中文乱码问题。每一个Action请求都包装在一系列的拦截器的内部,拦截器可以在Action执行之前做相似的操作也可以在Action执行之后做回收操作。Action可以将操作转交给下面的拦截器,也可以直接退出操作返回既定的页面。我以下要讲的是用户登录检查。1.先定义一个类实现com.opensymphony.xwork2.interceptor.Interceptor接口,原创 2020-06-18 16:00:45 · 180 阅读 · 0 评论 -
Struts2中get请求中文乱码问题
Struts2提供了一个默认的过滤器,在post请求中一般不会出现中文乱码问题,单在get请求中极易出现中文乱码问题。1.在strurs2.xml中配置以下代码<!-- constant 配置 --><!-- 用于设置默认的本地编码 --><constant name="struts.i18n.encoding" value="UTF-8" />2.对post的编码写一个过滤类(SetCharacterEncodingFilter),示例代码:package原创 2020-06-08 12:18:18 · 407 阅读 · 0 评论 -
如何在Struts2中返回json
在Struts2返回json,需要在Action中定义该变量还有写一个get方法。1.以下是Action中的代码public class LoginJsonAction extends ActionSupport implements ModelDriven<User> { /** * */ private static final long serialVersionUID = 1L; private User user; //用于返回消息 private St原创 2020-05-28 20:29:11 · 564 阅读 · 1 评论 -
Struts2中的Actionsupport类
在Struts2的Action中可以不用实现任何接口或继承任何类,但是,为了可以更加方便实现Action,大多数情况下都会继承 com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法,因为ActionSupport已经实现了Action接口, 还实现了Validateable接 口,提供了数据校验功能。通过继承该ActionSupport类,可以简化Struts 2的Action开发。1.ActionSuppor原创 2020-05-17 16:47:52 · 536 阅读 · 0 评论 -
Struts2配置文件的一些常用属性
1.package结点属性package元素可以把逻辑上相关的一组Action、Result、Intercepter等元素封装起 来,形成一个独立的模块,package可以继承其他的package,也可以作为父包被其他 的package继承,以下是package中常用的属性:(1) name:该属性必填的,包名,只是一个标识,其他包可以通过继承该标识进行引用。包通过extends 属性...原创 2020-05-07 17:04:49 · 220 阅读 · 0 评论 -
Struts2接收页面传递的参数
1.第一种方法,通过属性驱动的方式获取页面传递的参数。这里需要注意的是Action的属性名称需要与页面的参数名称保持一致。Action示例代码:public class LoginOneAction { private String userName; private String password; public String login(){ System.out.pri...原创 2020-04-26 17:43:16 · 198 阅读 · 0 评论 -
Java 变量与常量
在程序执行过程中,其值不能被改变的量称为常量,其值可以改变的量称为变量。变量与常量的命名都必须使用合法的标识符。1.标识符和关键字(1)标识符标识符相当于一个名字,用来标识类名、变量名、方法名、数组名、文件名的有效字符序列。Java语言规定标识符由任意顺序的字母(AZ 或者 az),美元符号、下划线(_)和数字组成 ,但第一个字符不能是数字,还有就是标识符不能是Java中的保留关键字。...翻译 2019-06-07 22:20:16 · 204 阅读 · 0 评论 -
Java数据类型转换
类型转换是将一个值从一种类型更改为另一种类型的过程。比如,可以将String类型数据“123”转换为一个数值型数据,而且可以将任意类型的数据转换为String类型数据。如果将低精度数据类型向高精度数据类型数据转换,则不会溢出,通常都是成功的;而把高精度数据类型向低精度数据类型转换则必然会有信息丢失,有可能失败。数据类型有两种方式,一种是隐式转换,另一种是显式转换。1.隐式类型转换当低级数据类...翻译 2019-06-07 22:09:53 · 217 阅读 · 0 评论 -
Java 基本数据类型
在Java中有8种基本数据类型,可以分为布尔型、数值型和字符型三种类型,其中数值型又可以分为整数类型和浮点类型。1.整数类型整数类型用来存储整数数值,可以是正数也可以是负数,但不能存储有小数部分的数值。整型数据根据它所占内存大小的不同,可分为byte、short、int和long这几种类型,它们的最大值和最小值也是不相同的,如下所示。数据类型 字节 内存空间 最小值 最大值 默认值示例代...翻译 2019-06-07 22:04:17 · 654 阅读 · 1 评论 -
Java 封装
在面向对象程式设计方法中,封装是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的代码和数据,必须通过严格的接口控制。 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。1.封装的优点可以对成员变量进行更精确的控制;类内部的结构可以自由修改;良好的封装能够减少耦合;隐藏信息,实现...翻译 2019-05-25 22:08:29 · 120 阅读 · 0 评论 -
Java 循环语句
循环语句就是在满足一定条件的情况下反复执行某一个操作,Java中提供了3种常用的循环语句,分别是while循环语句、do…while循环语句和for循环语句。1.while循环语句while循环语句也称为条件判断语句,它的循环方式是利用一个条件来控制是否要继续执行这个语句。当条件表达式的返回值为真时,就执行该循环语句,该语句执行完成后,重新判断条件表达式的返回值,直到表达式返回的结果为假,就退...原创 2019-05-25 21:58:29 · 199 阅读 · 0 评论 -
if条件语句和switch语句
1.if条件语句使用if条件语句,可选择是否要执行紧跟在条件之后的的语句。关键字if之后是作为条件的“布尔表达式”,如果该表达式返回的结果为true,则执行其后的语句,若为false,则不执行if条件之后的语句。(1)简单的if条件语句示例代码:public class Demo5 { public static void main(String[] args) { int a=10...原创 2019-05-15 17:57:29 · 3431 阅读 · 0 评论 -
Java数组
数组对于所有编程语言来说都是重要的数据结构之一,Java 语言中提供的数组是用来存储固定大小的同类型元素。1.声明数组变量声明数组有以下两种方式(一般不使用第一种方式):数组元素类型 数组名字[ ];数组元素类型[ ] 数组名字;示例:byte[ ] arrayByte;2.数组初始化数组初始化主要有两种方式,一种是静态初始化,还有一种是动态初始化。静态初始化:byte[...原创 2019-05-15 17:50:02 · 91 阅读 · 0 评论 -
数组排序算法
1.冒泡排序冒泡排序的基本思想是对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把大的元素移动到数组红名(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底部上升到顶部。示例代码:public class BubbleSort { public static void main(String[] args) { //创建一个数组,这个数组元素是乱序的 ...原创 2019-05-02 18:59:08 · 253 阅读 · 0 评论 -
Java单例模式
单例模式是为了确保一个类中只有一个实例,并为整个系统提供一个全局访问点的一种方法。单例模式所适用的场景:需要生成唯一序列的环境;需要频繁实例化然后销毁的对象;创建对象时耗时过多或者耗资源过多,但又经常用到的对象;过多或者耗资源过多,但又经常用到的对象。单例模式的组成部分:私有的构造方法;指向自己实例的私有静态引用;以自己实例为返回值的静态的公有方法。可以通过以下几种方式实现单例模式:1.饿...原创 2019-05-02 18:48:46 · 109 阅读 · 0 评论 -
Java中的类和对象
类就是同一类事物的统称,比鸟类、家禽类等。类是构造对象时所依赖的规范,如一只鸟有一对翅膀,可以通过翅膀进行飞行,二基本所有的鸟都具有翅膀这个特效和飞行的技能,像这样具有相同特性和行为的一类事物就称为类。对象是类的一个实例,有状态和行为。如一个人,其状态有高矮、胖瘦、性别等,行为有挥手、微笑、行走等。通过以上分析,可以知道类实质上就是封装对象属性和行为的载体,而对象则是类抽象出来的一个实例。1....翻译 2019-06-17 21:38:10 · 133 阅读 · 0 评论 -
Java 声明和连接字符串
char类型只能表示单个字符,不能表示由多个字符连接而成的字符串。在Java语言中可以将字符串作为对象来处理,可以通过java.lang包中的String类来创建字符串对象。1.声明字符串字符串必须包含在双引号内,例如:”123”、”Hello”、”字符”。像这些都是字符串常量,字符串常量是系统能够显示的任何文字信息,甚至是单个字符串。可以通过以下语法格式来声明字符串变量:String st...翻译 2019-06-17 21:44:26 · 361 阅读 · 0 评论 -
Java多态
多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同的操作。举个例子:当我们打印一份资料时,打印机就相当于一个接口,而彩色打印和黑白打印就是两个不同的实例,选择不同的打印方式,就会打印出不同的打印效果。1.多态存在的条件要有继承或实现(接口)关系;方法的重写;父类引用指向子类对象,例如:Parent p = new Child();2.多态的分类...原创 2019-08-16 17:29:58 · 132 阅读 · 0 评论 -
Java继承
继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。1.类的继承格式在Java中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:class 父类 {}class 子类 extends 父类 {}2.继...原创 2019-08-06 17:44:45 · 113 阅读 · 0 评论 -
字符串生成器
创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的String实例,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将极大地增加系统负担。而使用String-Builder类,可以大大提高频繁增加字符串的效率。1.可以通过以下例子来验证字符串操作和字符串生成器操作的效率。示例代码:运行结果截图:从以上例...翻译 2019-07-27 17:20:16 · 268 阅读 · 0 评论 -
Java循环控制语句
循环控制包含两个方面的内容,一方面是控制循环变量的变化方式,另一方面是控制循环的跳转需要用到break和continue两个关键字,这两条跳转语句的跳转效果不同,break是中断循环,continue是执行下一次循环。1.break语句在循环结构中,可以使用break语句跳出当前循环体,从而中断当前循环。示例代码:public class Demo3 { public static voi...翻译 2019-07-24 17:55:29 · 423 阅读 · 0 评论 -
格式化字符串
1.String类的静态format()方法用于创建格式化的字符串。format()方法有两种重载形式。(1)format(String format,Object···args)该方法使用指定的格式字符串和参数返回一个格式化的字符串,格式化后的新字符串使用本地默认的语言环境。format:格式字符串args:格式化字符串中由格式说明符引用的参数,如果还有格式说明符以外的参数,则忽略这些额...翻译 2019-07-16 17:44:21 · 1012 阅读 · 0 评论 -
Java List集合
List集合代表一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。 List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。List集合默认 按元素的添加顺序设置元素的索引,例如第一次添加的元素索引为0,第二次添加的元 素索引就为1,以此类推。1.List接口List接口继承了Collection接口,因此包含Collection中的所有方法。此外,List接口还定义...翻译 2019-07-06 21:33:03 · 176 阅读 · 0 评论