try

Druid数据源配置多个数据库

大城市里の小女人 提交于 2020-01-13 01:54:52
言简意赅 pom.xml文件引入jar包 < ! -- jdbc连接数据库 -- > < dependency > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - jdbc < / artifactId > < / dependency > < ! -- mysql -- > < dependency > < groupId > mysql < / groupId > < artifactId > mysql - connector - java < / artifactId > < / dependency > < dependency > < groupId > com . alibaba < / groupId > < artifactId > druid < / artifactId > < version > 1.1 .16 < / version > < / dependency > application.properties # # # #配置多个数据库 : 用户信息存储数据库 : xcn_admin_database xcn_admin_database . druid . url = jdbc : mysql : / /

Python异常

亡梦爱人 提交于 2020-01-13 00:54:36
01. 异常的概念 程序在运行时,如果 Python 解释器 遇到 到一个错误, 会停止程序的执行,并且提示一些错误信息 ,这就是 异常 程序停止执行并且提示错误信息 这个动作,我们通常称之为: 抛出(raise)异常 程序开发时,很难将 所有的特殊情况 都处理的面面俱到,通过 异常捕获 可以针对突发事件做集中的处理,从而保证程序的 稳定性和健壮性 02. 捕获异常 2.1 简单的捕获异常语法 在程序开发中,如果 对某些代码的执行不能确定是否正确 ,可以增加 try(尝试) 来 捕获异常 捕获异常最简单的语法格式: try: 尝试执行的代码 except: 出现错误的处理 try 尝试 ,下方编写要尝试代码,不确定是否能够正常执行的代码 except 如果不是 ,下方编写尝试失败的代码 简单异常捕获演练 —— 要求用户输入整数 try: # 提示用户输入一个数字 num = int(input("请输入数字:")) except: print("请输入正确的数字") 2.2 错误类型捕获 在程序执行时,可能会遇到 不同类型的异常 ,并且需要 针对不同类型的异常,做出不同的响应 ,这个时候,就需要捕获错误类型了 语法如下: try: # 尝试执行的代码 pass except 错误类型1: # 针对错误类型1,对应的代码处理 pass except (错误类型2, 错误类型3): #

java入门篇17 -- JDBC编程

笑着哭i 提交于 2020-01-12 15:40:11
对于读取数据,我们应当如何与数据库打交道呢,这个时候应该使用JDBC,就是java帮助我们实现了操控数据库的一些连接,我们只需要到时候加载一个连接数据库的插件 下面即使java程序的对数据库的增删改查,以及事务处理 import java.sql.*; public class HelloWorld { public static void main(String[] args) throws Exception { String JDBC_URl = "jdbs:mysql://127.0.0.1:3306/bbsoo"; String JDBC_USER = "root"; String JDBC_PASSWORD = "mysql"; // 查找数据 try (Connection conn = DriverManager.getConnection(JDBC_URl, JDBC_USER, JDBC_PASSWORD)) { // 方法一使用 Statement try (Statement st = conn.createStatement()) { // 执行语句 try (ResultSet rs = st.executeQuery("select user_id, username, user_type from bbs_users;")) { //

3分钟 学会处理python异常

女生的网名这么多〃 提交于 2020-01-12 10:35:52
异常 try & except 块 写代码的时候,出现错误必不可免,即使代码没有问题,也可能遇到别的问题。 看下面这段代码: import math while True: text = raw_input('> ') if text[0] == 'q': break x = float(text) y = math.log10(x) print "log10({0}) = {1}".format(x, y) 这段代码接收命令行的输入,当输入为数字时,计算它的对数并输出,直到输入值为 q 为止。 乍看没什么问题,然而当我们输入0或者负数时: In [1]: import math while True: text = raw_input('> ') if text[0] == 'q': break x = float(text) y = math.log10(x) print "log10({0}) = {1}".format(x, y) > -1 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-1-ceb8cf66641b> in <module>() 6

try语句练习

房东的猫 提交于 2020-01-12 04:55:11
提示用户输入密码 def input_passwd ( ) : # 1.提示用户输入密码 pwd = input ( '请输入密码:' ) # 2.判断密码长度 密码长度必须是8位或8位以上 if len ( pwd ) >= 8: return pwd # 3.如果密码长度<8,就主动抛出异常 # 创建异常对象 ex = Exception ( '密码长度不够,必须大于8位' ) # 4.主动抛出异常 raise ex # 注意:只抛出而不捕获,代码会出现异常 try: print ( input_passwd ( )) except Exception as re: print ( re ) 来源: CSDN 作者: Mia1128 链接: https://blog.csdn.net/weixin_45606836/article/details/103915531

Java微博爬虫-每日百万数据

前提是你 提交于 2020-01-12 04:21:16
没写过爬虫,赶鸭子上架,公司里有个老代码,我就拿来参考,边看边写3周后,把整个代码大换血,实现了单日单程序百万的爬取量。 使用springboot + JDK1.8 + mysql + redis。 主要有 关键词爬取、redis队列、多线程爬取程序 三部分。 一、关键词的爬取: 我用的是在微博搜索栏输入关键词的方法爬取数据,所以关键词的热度、新鲜度很重要。 我在百度、搜狗、微博这几个网站的热搜榜每隔40秒抓取一次实时的热词。 第一步,找热词质量高的网站。 # 百度热搜网址 baidu.hotnews = http://top.baidu.com/buzz?b=1&fr=topnews baidu.topcategory = http://top.baidu.com/buzz?b=2&c=12&fr=topcategory_c12 baidu.oneday.hotbuzz = http://top.baidu.com/buzz?b=341&fr=topbuzz_b1 baidu.oneday.lifehot = http://top.baidu.com/buzz?b=342&c=513&fr=topbuzz_b344_c513 # 微博热搜网址 weibo.realtimehot = https://s.weibo.com/top/summary?cate=realtimehot

java锁

陌路散爱 提交于 2020-01-12 02:59:38
文章目录 java锁 可重入锁及其验证 手写一个自旋锁 读写锁代码验证 CountDownLatch CyclicBarrier Semaphore synchronized和ReentrantLock区别 死锁 java锁 公平锁: 多个线程按照申请锁的顺序获取锁,先来后到 ,每个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的第一个,就占有锁,否则加入到等待队列中,遵从FIFO。 非公平锁: 多个线程获取锁的顺序不一定是申请锁的顺序 ,高并发情况下可能会优先级反转、出现饥饿现象(某些线程一直等待)。每个线程上来就尝试占有锁,如果失败,就采用类似公平锁的方式。 优点是吞吐量大,synchronized也是非公平锁 。 不可重入锁(递归锁):同一线程,执行某个方法已经获取了该锁,那么在该方法中 再次获取该锁(同一线程)就会获取不到而阻塞 。 可重入锁: 同一线程外层函数获得锁后,内层函数可自动加锁 (前提锁对象得是同一个对象或者class)。且线程可以进入它已经拥有的锁的同步代码块儿。synchronized和ReentrantLock都是可重入锁,可重入锁最大的作用是避免一定程度的死锁。 自旋锁:是指尝试获取锁的线程不会立即阻塞,而是 采用循环的方式去尝试获取锁 ,这样做的好处是减少线程上下文的切换消耗,缺点是循环会消耗CPU。 独占锁

java实现hello/hi聊天程序

我的梦境 提交于 2020-01-12 02:42:01
1.使用java实现服务器与客户端之间的对话,客户端与服务器 服务器端代码 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; import java.util.HashMap; import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Chat { // 运行在服务端的Socket private ServerSocket server; // 线程池,用于管理客户端连接的交互线程 private

异常和Log4j

拜拜、爱过 提交于 2020-01-12 02:33:39
一.生活中的异常一路畅通但是,异常情况迟早要发生!堵车!撞车! 二.什么是异常 异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序 生活中面对异常通常会这样处理 绕行或者等待 请求交警解决 生活中,根据不同的异常进行相应的处理,而不会就此中断我们的生活 三.Java的异常处理是通过5个关键字来实现的 try、catch、 finally、throw、throws 捕获异常 执行可能产生异常的代码 无论是否发生异常, 捕获异常 代码总能执行 声明异常 抛出异常 四.常见的异常类型 异常层次结构的父类 算术错误情形,如以零作除数 数组下标越界 尝试访问 null 对象成员 不能加载所需的类 方法接收到非法参数 五.Log4J 在项目中加入log4j的JAR文件 创建log4j.properties文件 配置日志信息 使用log4j记录日志信息 来源: CSDN 作者: athga 链接: https://blog.csdn.net/athga/article/details/103826302

Spring Boot上传文件+部署到Tomcat

孤人 提交于 2020-01-11 23:41:28
1 概述 Spring Boot上传文件,根据 官方uploadfile示例 修改的,可以打成war放到服务器上(笔者使用的是Tomcat).主要步骤是创建异常类,属性类,接口类与控制器类,最后进行少量修改打包部署到服务器上. 2 环境 win10 Tomcat 9.0.30 IDEA 2019.03 Spring boot 2.2.2 RELEASE 3 新建工程 选择spring initializer: 改一下包名,打包选项这里可以jar可以war,选jar的话可以在build的时候再生成war. 这里用的是模板引擎Thymeleaf,选择spring web与Thymeleaf. 最后点击finish. 4 新建包 4个包,service,properties,controller,exception. 5 exception 处理两个异常,分别是存储异常与存储文件找不到异常. 5.1 StorageException package kr.test.exception; public class StorageException extends RuntimeException { public StorageException(String message) { super(message); } public StorageException(String