try

JAVA Web 实训项目 西蒙购物网

為{幸葍}努か 提交于 2019-12-11 02:17:18
(一)创建数据库 创建MySQL数据库simonshop,包含四张表:用户表(t_user)、类别表(t_category)、商品表(t_product)和订单表(t_order)。 (二)创建Web项目simonshop 1、创建Web项目simonshop 2、在项目结构窗口里设置Artifacts名称:simonshop 3、配置服务器(Server) 4、设置部署(Deployment) (三)创建实体类 在src里创建net.lfh.shop.bean包,创建四个实体类:User、Category、Product与Order,与四张表t_user、t_category、t_product与t_order一一对应。 1、用户实体类User package net . lfh . shop . bean ; /** * 功能:用户实体类 * 作者:李福华 * 日期:2019年12月5日 */ import java . util . Date ; public class User { /** * 用户标识符 */ private int id ; /** * 用户名 */ private String username ; /** * 密码 */ private String password ; /** * 电话号码 */ private String telephone

springboot和Redis整合

∥☆過路亽.° 提交于 2019-12-10 20:42:09
springboot简化了许多的配置,大大提高了使用效率。下面介绍一下和Redis整合的一些注意事项。 首先介绍 单机版 的redis整合。 1.第一步当然是导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2.配置一下 application.properties 文件,当然也可以使用yml文件编写,但yml格式要十分注意,严格遵循标准。 # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=192.168.159.104 # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password= # 连接池最大连接数(使用负值表示没有限制) 默认 8 spring.redis.lettuce.pool.max-active=8 # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1 spring.redis.lettuce.pool.max-wait=-1 #

C# MySql Transaction Async

只愿长相守 提交于 2019-12-10 18:39:39
static async Task<int> MySqlWriteAsync(string writeSQL,Dictionary<string,object> parametersDic=null) { int executeResult = -1; using (MySqlConnection conn = GetMySqlConnection()) { if (conn.State != ConnectionState.Open) { conn.Open(); } using (MySqlCommand cmd = new MySqlCommand(writeSQL, conn)) { using (MySqlTransaction myTrans = await conn.BeginTransactionAsync()) { try { if (parametersDic != null && parametersDic.Any()) { foreach (var pDic in parametersDic) { cmd.Parameters.AddWithValue(pDic.Key, pDic.Value); } } cmd.Transaction = myTrans; executeResult = await cmd.ExecuteNonQueryAsync();

LinkedBlockingQueue与ArrayBlockingQueue

北城余情 提交于 2019-12-10 18:38:49
阻塞队列与普通的队列(LinkedList/ArrayList)相比,支持在向队列中添加元素时,队列的长度已满阻塞当前添加线程,直到队列未满或者等待超时;从队列中获取元素时,队列中元素为空 ,会将获取元素的线程阻塞,直到队列中存在元素 或者等待超时。 在JUC包中常用的阻塞队列包含ArrayBlockingQueue/LinkedBlockingQueue/LinkedBlockingDeque等,从结构来看都继承了AbstractQueue实现了BlockingQueue接口(LinkedBlockingDeque是双向阻塞队列,实现的是BlockingDeque接口),在BlockingQueue接口中定义了几个供子类实现的接口,可以分为3部分,puts操作、takes操作、其他操作。 puts操作 add(E e) : 添加成功返回true,失败抛IllegalStateException异常 offer(E e) : 成功返回 true,如果此队列已满,则返回 false(如果添加了时间参数,且队列已满也会阻塞) put(E e) :将元素插入此队列的尾部,如果该队列已满,则一直阻塞 takes操作 remove(Object o) :移除指定元素,成功返回true,失败返回false poll() : 获取并移除此队列的头元素,若队列为空,则返回 null

BlockingQueue

故事扮演 提交于 2019-12-10 18:33:45
1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。 阻塞队列提供了四种处理方法: 方法\处理方式 抛出异常 返回特殊值 一直阻塞 超时退出 插入方法 add(e) offer(e) put(e) offer(e,time,unit) 移除方法 remove() poll() take() poll(time,unit) 检查方法 element() peek() 不可用 不可用 异常:是指当阻塞队列满时候,再往队列里插入元素,会抛出IllegalStateException("Queue full")异常。当队列为空时,从队列里获取元素时会抛出NoSuchElementException异常 。 返回特殊值:插入方法会返回是否成功,成功则返回true。移除方法,则是从队列里拿出一个元素,如果没有则返回null 一直阻塞:当阻塞队列满时,如果生产者线程往队列里put元素,队列会一直阻塞生产者线程,直到拿到数据,或者响应中断退出。当队列空时,消费者线程试图从队列里take元素

JDBC

耗尽温柔 提交于 2019-12-10 17:49:44
JDBC——java datebase connectivity 数据库连接 execute相关资料:   execute():各种SQL语句都能发送,当数据库返回的是一个结果集的话,方法就会返回一个true,如果数据库返回的是受影响的行数或者没有返回东西,都会返回一个false   executeQuery():只能发送DQL语句,方法会返回查询出来的结果,并生产一个ResultSet对象,也就是一个结果集,如果没有就返回一个null值,所以,可以通过遍历Set的方法来取得ResultSet对象里面的相关内容   executeUpdate():只能发送DML/DDL语句,这两种语句数据库都不会返回内容,方法返回的是一个int类型的数据,代表数据库受影响的行数,0就代表没有改变行数 基本操作:   1、加载驱动:     1.1导包:在工程下面创建一个包专门存放导入的压缩包,通常名称叫lib-library,将支持连接MySQL的包放进去,然后右键点击Build Path创建路径,看到有牛奶瓶即可     1.2程序中加载:Class.forName("com.mysql.jdbc.Driver");运行这段程序,如果没有报错即代表加载驱动成功   2、获取数据库连接:     Connection con = DriverManager.getconnection("","",

Java之 Scanner类

雨燕双飞 提交于 2019-12-10 12:26:12
1. Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据。 下面是创建 Scanner 对象的基本语法: Scanner s = new Scanner(System.in); 1 next() 与 nextLine() 区别 next(): 1、一定要读取到有效字符后才可以结束输入。 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 4、next() 不能得到带有空格的字符串。 nextLine(): 1 、以Enter为外汇隔夜利息对比 http://www.fx61.com/interest.html 结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。 2、可以获得空白。 如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取: import java.util.Scanner;

python异常处理代码执行说明

坚强是说给别人听的谎言 提交于 2019-12-10 11:31:44
python异常处理代码执行说明 #!/usr/bin/python # -*- coding: UTF-8 -*- #This is note foe exception try: code #需要判断是否会抛出异常的代码,如果没有异常处理,python会直接停止执行程序 except: #这里会捕捉到上面代码中的异常,并根据异常抛出异常处理信息 #except ExceptionName,args: #同时也可以接受异常名称和参数,针对不同形式的异常做处理 code #这里执行异常处理的相关代码,打印输出等 else: #如果没有异常则执行else code #try部分被正常执行后执行的代码 finally: code #退出try语句块总会执行的程序 #函数中做异常检测 def try_exception(num): try: return int(num) except ValueError,arg: print arg,"is not a number" else: print "this is a number inputs" try_exception('xxx') #输出异常值 Invalide literal for int() with base 10: 'xxx' is not a number 注意事项 不要在 try 里写返回值。 try-except

java那些事(八)之深入理解java异常处理机制

冷暖自知 提交于 2019-12-10 09:54:10
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训” 告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案 哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。 <span style= "background-color: rgb(255, 255, 255);" > package Test; public class TestException { public TestException() { } boolean testEx() throws Exception { boolean ret = true ; try { ret = testEx1(); } catch (Exception e) { System.out.println( "testEx, catch exception" ); ret = false ; throw e; } finally { System.out.println( "testEx, finally; return value=" + ret); return ret; } } boolean testEx1() throws

Java finally语句与return语句执行顺序解析

核能气质少年 提交于 2019-12-10 09:53:56
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验, 至少有两种情况下finally语句是不会被执行的: (1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到。 (2)在try块中有System.exit(0);这样的语句,System.exit(0);是终止Java虚拟机JVM的,连JVM都停止了,所有都结束了,当然finally语句也不会被执行到。 当然还有很多人探讨Finally语句的执行与return的关系,颇为让人迷惑,不知道finally语句是在try的return之前执行还是之后执行?我也是一头雾水,我觉得他们的说法都不正确,我觉得应该是: finally语句是在try的return语句执行之后,return返回之前执行 。这样的说法有点矛盾,也许是我表述不太清楚,下面我给出自己试验的一些结果和示例进行佐证,有什么问题欢迎大家提出来。 1. finally语句在return语句执行之后return返回之前执行的。 public class FinallyTest1 { public static void main