这篇文章主要介绍项目用户端的操作,包括查看余额,存钱,取钱,转账,和退卡操作,以及分页设置
这里根据页面传入用户的个人信息查看用户的合法性,验证通过跳转页面,否则重新回到登录页面
dao
/**
* 根据卡号和密码查询用户信息
* @param icno 卡号
* @param pwd 密码
* @return 用户信息
*/
public User findUserByNameAndPwd(String icno, String pwd) {
Connection connection = DBUtils.getConnection();
PreparedStatement preparedStatement = null;
try {
preparedStatement = connection
.prepareStatement("select * from user where icno = ? and pwd = ?");
preparedStatement.setString(1,icno);
preparedStatement.setString(2,pwd);
ResultSet resultSet = preparedStatement.executeQuery();
User user = new User();
if (resultSet.next()) {
user.setIcno(resultSet.getString(1));
user.setName(resultSet.getString(2));
user.setPwd(resultSet.getString(3));
user.setMobile(resultSet.getString(4));
user.setIdcard(resultSet.getString(5));
user.setBalance(resultSet.getDouble(6));
}
return user;
}catch (Exception e) {
e.printStackTrace();
}finally {
DBUtils.release(connection,preparedStatement,null);
}
return null;
}
service
/**
* 查找用户
* @param icno 卡号
* @param pwd 密码
* @return 结果
*/
User findUserByNameAndPwd(String icno, String pwd);
@Override
public User findUserByNameAndPwd(String icno, String pwd) {
return userDao.findUserByNameAndPwd(icno, pwd);
}
servlet
/**
* 用户登录
*/
@WebServlet("/UserLogin")
public class UserLoginServlet extends HttpServlet {
private UserService userService =new UserServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求参数
String icno = req.getParameter("icno");
String pwd = req.getParameter("pwd");
//验证
User user=userService.findUserByNameAndPwd(icno, pwd);
if (user==null){
req.setAttribute("error","用户登录失败");
req.getRequestDispatcher("/changepage/login.jsp").forward(req,resp);
}else {
req.getSession().setAttribute("ua",user);
resp.sendRedirect("/changepage/UserIndex.jsp");
}
}
}
首先输入原来的密码,然后输入新密码并确认,在验证中查看俩次密码是否相同,原密码是否正确,在对密码的合法性进行校验。最后跳转到登录界面重新登录
dao
/**
* 更新用户信息
* @param icno 卡号
* @param newpwd 新密码
* @return result
*/
public int updateUserPwd(String icno,String newpwd) {
Connection connection = DBUtils.getConnection();
PreparedStatement preparedStatement = null;
try {
preparedStatement = connection
.prepareStatement("update user set pwd = ? where icno=?");
preparedStatement.setString(1,newpwd);
preparedStatement.setString(2,icno);
int num= preparedStatement.executeUpdate();
return num;
}catch (Exception e) {
e.printStackTrace();
}finally {
DBUtils.release(connection,preparedStatement,null);
}
return 0;
}
service
/**
* 更新密码
* @param icno 卡号
* @param newpwd 新密码
* @return 结果
*/
boolean updateUserPwd(String icno,String newpwd);
@Override
public boolean updateUserPwd(String icno,String newpwd) {
return userDao.updateUserPwd(icno, newpwd) >= 1;
}
servlet
/**
* 修改用户个人密码
*/
@WebServlet("/UserChange")
public class UserChangeServlet extends HttpServlet {
private UserService userService = new UserServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获得密码
String icno = req.getParameter("icno");
String oldpwd = req.getParameter("oldpwd");
String newpwd = req.getParameter("newpwd");
String newpwd2 = req.getParameter("newpwd2");
//检验密码
User userByNameAndPwd = userService.findUserByNameAndPwd(icno, oldpwd);
if (userByNameAndPwd == null){
//密码错误
req.setAttribute("error","密码有误");
req.getRequestDispatcher("/changepage/UserChangePwd.jsp").forward(req,resp);
}else {
if (newpwd != null && newpwd.equals(newpwd2)){
boolean result=userService.updateUserPwd(icno,newpwd);
if (result){
req.getRequestDispatcher("/changepage/login.jsp").forward(req,resp);
}else {
req.setAttribute("error","更新失败");
req.getRequestDispatcher("/changepage/UserChangePwd.jsp").forward(req,resp);
}
}else {
req.setAttribute("error","输入密码不一致");
req.getRequestDispatcher("/changepage/UserChangePwd.jsp").forward(req,resp);
}
}
//比较内容
}
}
在用户登录时保存了用户的基本信息,其中包括卡号,这时servlet接收卡号,并根据卡号查询所属用户的余额
dao
/**
* 根据卡号获取资金
* @param icno 卡号
* @return 资金
*/
public double getUserBalance(String icno) {
Connection connection = DBUtils.getConnection();
PreparedStatement preparedStatement = null;
try {
preparedStatement = connection
.prepareStatement("select balance from user where icno=?");
preparedStatement.setString(1,icno);
ResultSet resultSet = preparedStatement.executeQuery();
double balance=0;
if (resultSet.next()) {
balance=resultSet.getDouble(1);
}
return balance;
}catch (Exception e) {
e.printStackTrace();
}finally {
DBUtils.release(connection,preparedStatement,null);
}
return 0;
}
service
/**
* 获取金额
* @param icno 卡号
* @return 新密码
*/
double getUserBalance(String icno);
@Override
public double getUserBalance(String icno) {
return userDao.getUserBalance(icno);
}
servlet
/**
* 用户存款
*/
@WebServlet("/UserStore")
public class UserStoreServlet extends HttpServlet {
private UserService userService=new UserServiceImpl();
private RunMessageService runMessageService=new RunMessageServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String saveNum = req.getParameter("saveNum");
String icno = null;
if (req.getSession().getAttribute("ua")!=null){
User user=(User)req.getSession().getAttribute("ua");
icno = user.getIcno();
}
int money=0;
if (saveNum != null){
money=Integer.parseInt(saveNum);
}
if (money==0){
req.getSession().setAttribute("error3","存款不能为0");
resp.sendRedirect("/changepage/UserStore.jsp");
}else if (money>2000){
req.getSession().setAttribute("error3","存款不能大于2000");
resp.sendRedirect("/changepage/UserStore.jsp");
}else if (money%50!=0){
req.getSession().setAttribute("error3","存款为50的倍数");
resp.sendRedirect("/changepage/UserStore.jsp");
}else {
boolean result=userService.saveMoney(money,icno);
//保存交易记录
RunMessage runMessage = new RunMessage();
runMessage.setIcno(icno);
Date date = new Date();
runMessage.setRm_date(new Date().toString());
runMessage.setRm_balance(Double.parseDouble(String.valueOf(money)));
runMessage.setRm_rest(userService.getUserBalance(icno));
runMessage.setRm_currency("RMB");
runMessageService.addRunMessage(runMessage);
if (result){
resp.sendRedirect("/UserSerch");
}
}
}
}
在用户登录时保存了用户的基本信息,其中包括卡号,这时servlet接收卡号,并根据卡号将钱存进数据库当中
dao
/**
* 存钱
* @param money 金额
* @param icno 卡号
* @return result
*/
public int saveMoney(int money,String icno) {
Connection connection = DBUtils.getConnection();
PreparedStatement preparedStatement = null;
try {
preparedStatement = connection
.prepareStatement("update user set balance = balance + ? where icno = ?");
preparedStatement.setDouble(1,money);
preparedStatement.setString(2,icno);
int num = preparedStatement.executeUpdate();
return num;
}catch (Exception e) {
e.printStackTrace();
}finally {
DBUtils.release(connection,preparedStatement,null);
}
return 0;
}
service
/**
* 添加金额
* @param money 金额
* @param icno 卡号
* @return 结果
*/
boolean saveMoney(int money,String icno);
@Override
public boolean saveMoney(int money,String icno) {
return userDao.saveMoney(money,icno) >= 1;
}
servlet
/**
* 查询用户余额
*/
@WebServlet("/UserSerch")
public class UserSerchServlet extends HttpServlet {
private UserService userService = new UserServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String icno = null;
if (req.getSession().getAttribute("ua")!=null){
User user=(User)req.getSession().getAttribute("ua");
icno = user.getIcno();
}
double balance = userService.getUserBalance(icno);
req.getSession().setAttribute("balance", balance);
// req.getRequestDispatcher("/changepage/SerchBalance.jsp").forward(req,resp);
resp.sendRedirect("/changepage/SerchBalance.jsp");
}
}
在用户登录时保存了用户的基本信息,其中包括卡号,这时servlet接收卡号,并根据卡号将钱存进数据库当中
dao
/**
* 取钱
* @param money 金额
* @param icno 卡号
* @return result
*/
public int fetchMoney(int money, String icno) {
Connection connection = DBUtils.getConnection();
PreparedStatement preparedStatement = null;
try {
preparedStatement = connection
.prepareStatement("update user set balance = balance - ? where icno = ?");
preparedStatement.setDouble(1,money);
preparedStatement.setString(2,icno);
int num = preparedStatement.executeUpdate();
return num;
}catch (Exception e) {
e.printStackTrace();
}finally {
DBUtils.release(connection,preparedStatement,null);
}
return 0;
}
service
/**
* 取钱
* @param money 金额
* @param icno 卡号
* @return 结果
*/
boolean FetchMoney(int money, String icno);
@Override
public boolean FetchMoney(int money, String icno) {
return userDao.fetchMoney(money,icno) >=1;
}
servlet
/**
* 模拟用户取款
*/
@WebServlet("/UserFetch")
public class UserFetchServlet extends HttpServlet {
private UserService userService=new UserServiceImpl();
private RunMessageService runMessageService=new RunMessageServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String fetchNum = req.getParameter("fetchNum");
String icno = null;
if (req.getSession().getAttribute("ua")!=null){
User user=(User)req.getSession().getAttribute("ua");
icno = user.getIcno();
}
double userBalance = userService.getUserBalance(icno);
int money=0;
if (fetchNum != null){
money=Integer.parseInt(fetchNum);
}
if (money==0){
req.getSession().setAttribute("error2","取款不能为0");
resp.sendRedirect("/changepage/UserStore.jsp");
}else if (money>2000){
req.getSession().setAttribute("error2","取款不能大于2000");
resp.sendRedirect("/changepage/UserStore.jsp");
}else if (money%50!=0){
req.getSession().setAttribute("error2","取款为50的倍数");
resp.sendRedirect("/changepage/UserStore.jsp");
}else if(money>userBalance){
req.getSession().setAttribute("error2","取款金额不能大于剩余金额");
resp.sendRedirect("/changepage/UserStore.jsp");
}else {
boolean result=userService.FetchMoney(money,icno);
//保存交易记录
RunMessage runMessage = new RunMessage();
runMessage.setIcno(icno);
runMessage.setRm_date(new Date().toString());
runMessage.setRm_balance(-Double.parseDouble(String.valueOf(money)));
runMessage.setRm_rest(userService.getUserBalance(icno));
runMessage.setRm_currency("RMB");
runMessageService.addRunMessage(runMessage);
if (result){
resp.sendRedirect("/UserSerch");
}else {
req.getSession().setAttribute("error2","取款失败");
resp.sendRedirect("/changepage/UserStore.jsp");
}
}
}
}
dao
没有写独立的dao 复用存款和取款 注意转账的对方账户要存在,且转账金额不能超过自己的最大金额
service
/**
* 转账
* @param transferIn 转出账户
* @param icno 转入账户
* @param money 金额
* @return 结果
*/
boolean transfer(String transferIn, String icno, int money);
@Override
public boolean transfer(String transferIn, String icno, int money) {
//转入
int i = userDao.saveMoney(money, transferIn);
if (i >= 1) {
//转出
int i1 = userDao.fetchMoney(money, icno);
if (i1 >= 1){
return true;
}
}
return false;
}
servlet
/**
* 用户转账
*/
@WebServlet("/UserTransfer")
public class UserTransferServlet extends HttpServlet {
private UserService userService=new UserServiceImpl();
private RunMessageService runMessageService=new RunMessageServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String transferIn = req.getParameter("transferIn");
String transferNum = req.getParameter("transferNum");
String icno = null;
if (req.getSession().getAttribute("ua")!=null){
User user=(User)req.getSession().getAttribute("ua");
icno = user.getIcno();
}
int money=0;
if (transferNum != null){
money=Integer.valueOf(transferNum);
}
if (userService.getUserByIcno(transferIn)==null){
req.getSession().setAttribute("error4","用户不存在");
resp.sendRedirect("/changepage/UserTransfer.jsp");
}
double userBalance = userService.getUserBalance(icno);
if (money==0){
req.getSession().setAttribute("error4","转账不能为0");
resp.sendRedirect("/changepage/UserTransfer.jsp");
}else if (money>2000){
req.getSession().setAttribute("error4","转账不能大于2000");
resp.sendRedirect("/changepage/UserTransfer.jsp");
}else if (money%50!=0){
req.getSession().setAttribute("error4","转账为50的倍数");
resp.sendRedirect("/changepage/UserTransfer.jsp");
}else if (userBalance<money){
req.getSession().setAttribute("error4","转账不能超过自己的金额");
resp.sendRedirect("/changepage/UserTransfer.jsp");
}else {
//转账操作
boolean result=userService.transfer(transferIn,icno,money);
//记录
//保存交易记录
RunMessage runMessage = new RunMessage();
runMessage.setIcno(transferIn);
runMessage.setRm_date(new Date().toString());
runMessage.setRm_balance(Double.parseDouble(String.valueOf(money)));
runMessage.setRm_rest(userService.getUserBalance(transferIn));
runMessage.setRm_currency("RMB");
if(result){
runMessageService.addRunMessage(runMessage);
runMessage.setIcno(icno);
runMessage.setRm_rest(userService.getUserBalance(icno));
runMessage.setRm_balance(-Double.parseDouble(String.valueOf(money)));
runMessageService.addRunMessage(runMessage);
resp.sendRedirect("/UserSerch");
}else {
req.getSession().setAttribute("error4","转账失败");
resp.sendRedirect("/changepage/UserTransfer.jsp");
}
}
}
}
需要额外的实体类记录交易信息
注意分页数据的封装
pojo
public class Manager {
private Integer id;
private String name;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Manager{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
dao
public class PageBean<T> {
private int pageNum;
private int pageSize;
private int totalRecord;
private int totalPage;
private List<T> list;
private int startIndex;
private int start;
private int end;
public PageBean(int pageNum, int pageSize, int totalRecord) {
this.pageNum = pageNum;
this.pageSize = pageSize;
this.totalRecord = totalRecord;
if (totalRecord%pageSize==0){
this.totalPage=totalRecord/pageSize;
}else {
this.totalPage=totalRecord/pageSize+1;
}
this.startIndex=(pageNum-1)*pageSize;
this.start=1;
this.end=5;
if (totalPage<=5){
this.end=this.totalPage;
}else {
this.start=pageNum-2;
this.end=pageNum+2;
if (start<=0){
this.start=1;
this.end=5;
}
if (end>=this.totalPage){
this.end=totalPage;
this.start=end-4;
}
}
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getTotalRecord() {
return totalRecord;
}
public void setTotalRecord(int totalRecord) {
this.totalRecord = totalRecord;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int gettotalRecord() {
return totalRecord;
}
public void settotalRecord(int totalRecord) {
this.totalRecord = totalRecord;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
public int getEnd() {
return end;
}
public void setEnd(int end) {
this.end = end;
}
}
service
/**
* 添加交易记录
* @param runMessage 交易信息
*/
public void addRunMessage(RunMessage runMessage);
/**
* 查询所用数据
* @param icno
* @return
*/
List<RunMessage> findAllDetails(String icno);
/**
* 查询分页数据
* @param icno
* @param page
* @param pageSize
* @return
*/
List<RunMessage> findRunMessageByPage(String icno,int page, int pageSize);
public class RunMessageServiceImpl implements RunMessageService {
private RunMessageDao runMessageDao=new RunMessageDao();
@Override
public void addRunMessage(RunMessage runMessage) {
runMessageDao.addRunMessage(runMessage);
}
@Override
public List<RunMessage> findAllDetails(String icno) {
return runMessageDao.findAllDetails(icno);
}
@Override
public List<RunMessage> findRunMessageByPage(String icno,int page, int pageSize) {
return runMessageDao.findRunMessageByPage(icno,page, pageSize);
}
}
servlet
@WebServlet("/serchDetaile")
public class SerchDetaileServlet extends HttpServlet {
private RunMessageService runMessageService=new RunMessageServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String icno;
if (req.getSession().getAttribute("ua")!=null){
User user=(User)req.getSession().getAttribute("ua");
icno = user.getIcno();
List<RunMessage> runMessageList=runMessageService.findAllDetails(icno);
//分页处理
String pageNum = req.getParameter("pageNum");
int page=1;
if (pageNum != null){
page=Integer.parseInt(pageNum);
}
//每页显示条数
int pageSize=5;
int totalRecord=runMessageList.size();
PageBean<RunMessage> pageBean = new PageBean<>(page, pageSize, totalRecord);
List<RunMessage> list=runMessageService.findRunMessageByPage(icno,page,pageSize);
pageBean.setList(list);
req.getSession().setAttribute("pageBean",pageBean);
req.getSession().setAttribute("RunMessage",pageBean.getList());
resp.sendRedirect("/changepage/UserDetaile.jsp");
}
}
}
将所有存入的session信息删除即可
servlet
/**
* 用户退出
*/
@WebServlet("/exit")
public class ExitServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//销毁session数据
req.getSession().removeAttribute("ua");
req.getSession().invalidate();
resp.sendRedirect("/changepage/login.jsp");
}
}
经过几天的学习,掌握了基于javaweb的开发技术,对jsp以及前端页面有了更深入的了解,善于使用工具类可以提高开发效率。
文章浏览阅读2.8k次。虚拟机,添加新的硬盘进行分区,格式化,挂载的操作_centos 永久挂载
文章浏览阅读504次。2、只要建立索引就能显著提高查询速度 事实上,我们可以发现上面的例子中,第2、3条语句完全相同,且建立索引的字段也相同;不同的仅是前者在fariqi字段上建立的是非聚合索引,后者在此字段上建立的是聚合索引,但查询速度却有着天壤之别。所以,并非是在任何字段上简单地建立索引就能提高查询速度。 从建表的语句中,我们可以看到这个有着1000万数据的表中fariqi字段有5003个不同记录。在此..._索引对查询效率非常有用,在建表时就应该建好且建完整
文章浏览阅读3.2w次,点赞20次,收藏180次。当前分为以下四个阶段第一阶段库/框架选型(暂定react)第二阶段简单构建优化 NPM管理包node+webpack打包第三阶段JS、CSS模块化开发第四阶段组件化开发 开发过程当中注意:前端安全XSS CSRF攻击等 后期文章中将讲述如何_前端开发流程sop
文章浏览阅读1w次。个人云电脑-推荐方案 - Parsec / FastlinkParsec安利原文局域网游戏串流:让我们都做一回「云」玩家Parsec 是游戏串流工具中的新秀。与其他不同的是,Parsec 推荐 PC-PC 间云游戏,不论是局域网还是公网通吃,这就是 Parsec 比较厉害的地方。两台设备之间的流量不通过 Parsec 云服务器,而是 Peer to Peer,Parsec 自己宣称自己使用了很多技术来保证玩家的联机体验。但国内的家庭宽带一般都是 NAT 环境(部分运营商可以._parsec 局域网
文章浏览阅读148次。在运维人员操作系统时,要接触大量的文件,为了避免忘记文件存放位置的尴尬,就需要我们有一种文件查找工具的帮忙,下面是两个文件查找工具的详解,locate以及find,分别分享给大家。第一款工具: Locatelocate - find files by namelocate的工作依赖于事先构建好的索引库;查找文件时,直接搜索索引库里记载的文件的位置;索引库的构建:系统自动实现(周期性任务);手动更新..._find -name -r
文章浏览阅读6.7k次,点赞7次,收藏87次。SpringSecurity Oauth2 jwtSpringSecurity Oauth2 jwt1 用户认证分析1.1 单点登录1.2 第三方账号登录2 认证解决方案2.1 单点登录技术方案2.2 第三方登录技术方案2.2.1 Oauth2认证流程2.2.2 Oauth2在项目的应用2.3 Spring security Oauth2认证解决方案3 Jwt令牌回顾3.1 令牌结构3.2 生成私钥公钥3.3 基于私钥生成jwt令牌3.3.1导入认证服务3.3.2 认证服务中创建测试类3.4 基于公_spring security 6+oauth2 +jwt+密码认证
文章浏览阅读1.3w次。金山软件办公套件的最新更新 WPS 2016 for Linux,日前发布了几项新功能,性能改进和各种修复。为什么选择WPS办公套件?WPS Office由三个主要组件组成:WPS 文字,WPS 演示和WPS 表格。它看起来非常类似于Microsoft Office! 与Microsoft Office提供的文档格式(包括PPT,DOC,DOCX,XLS和XLSX)完全兼容性。WPS的个人版是供个..._wps office 2016 for linux
文章浏览阅读8k次,点赞8次,收藏95次。用自己数据实现偏最小二乘回归。用Hitters数据集做演示如何使用自己的数据实现偏最小二乘回归。 此数据集有322个运动员的20个变量的数据, 其中的变量Salary(工资)是我们关心的。数据下载百度网盘链接:https://pan.baidu.com/s/13pb7VN_kTzV0hUEsg-1S1A提取码:3333import pandas as pdimport numpy as npfrom sklearn.cross_decomposition import PLSRegression_python 偏最小二乘回归
文章浏览阅读368次,点赞7次,收藏8次。记住常用的基本数据类型int,double熟悉位数: byte8位,int 32位等等记住特性: long需要加L,flaot需要加F,char必须是单引号且只有一个2.1类型转换数据类型转换, 即 它们之间可以变换.2.1.1默认转换按照数据的表示范围, 小范围向大范围转换,可以默认进行// 类型转换默认进行(小转大)long b = a;2.1.2强制转换通过强制转换,可以将数据转换过去,但是有可能丢失精度口诀: 小转大默认进行,大转小强制进行3.1字符串。
文章浏览阅读2.5k次。"h5" : { "sdkConfigs" : { "maps" : {} }, "router" : { "base" : "./" }, "devServer" : { "port" : 8080, "disableHostCheck" : true, "proxy" : { ..._uniapp配置后台ip
文章浏览阅读1k次。1、概述日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息。Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf。2、查看所有日志(默认情况下 ,只保存本次启动的日志)[root@CEN..._journalctl -b 0
文章浏览阅读535次。前言: 在属性被 static 修饰后,Spring 便不能直接对变量进行直接注入,这是因为被 static 修饰后,会被放到常量池中,而Spring 需要使用set方法进行注入,这是就需要我们手动进行配置注入成员变量第一步:在类上添加@Component注解,让Spring扫描到这个类第二步:为成员变量添加set方法,注意去掉static关键字,否则会导致注入失败第三步:在set方法上添加@Resource注解,告诉Spring自动注入这个方法/** * @author: mi_静态成员变量怎么注入