Java
万里归来少年心
这个作者很懒,什么都没留下…
展开
-
实现简单的RPC框架
1.被注册的服务package remote.procedure.call.server;public interface HelloService { public String sayHi(String name);}package remote.procedure.call.server;public class HelloServiceImpl implements...原创 2019-02-21 21:32:12 · 247 阅读 · 0 评论 -
SQL注入与防范
1. SQL注入 观察如下SQL语句:String sql = "select * from user where name='" + name + "' and password = '" + password + "'"; 输入用户名和密码:String name = "Harris";String password = "123456"; 拼...原创 2019-05-06 10:37:54 · 342 阅读 · 0 评论 -
Mysql中的clob和blob
1.clob clob用于存储大量的文本数据。大字段的操作常常以流的方式处理。 相关类型如下:类型 最大大小 TinyText 255字节 Text 65535字节(约65K) MediumText 16 777 215字节(约16M) LongText 4 294 967 295 (约4G) 创建person...原创 2019-05-08 14:06:16 · 29652 阅读 · 1 评论 -
java DBCP 连接数测试
本文实例测试数据库连接池和普通连接。 连接池中通过setMaxTotal()设置最大连接数目。import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement...原创 2019-05-05 18:02:19 · 678 阅读 · 0 评论 -
java DBCP 线程池
使用Apache提供的commons-DBCP来实现数据库连接池。1.引入jar包 引入三个与连接池相关的jar包: commons-pool.jar,commons-logging.jar,commons-dbcp.jar。 2.代码实例import java.sql.Connection;import java.sql.DriverManager;...原创 2019-05-05 17:10:53 · 576 阅读 · 0 评论 -
JDBC 批量插入数据
业务场景 向数据库中大量插入数据。一次插入一条数据显然效率太低,应该采用批处理的方式插入。JDBC中的Statement支持addBatch(),executeBatch()和clearBatch()。代码实例import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLExce...原创 2019-05-05 16:08:49 · 762 阅读 · 0 评论 -
java JDBC 使用配置文件配置连接信息
Java 数据库连接 JDBC(Java Database Connecive) ,是一组专门负责连接并操作数据库的标准。1. 操作步骤通过Class.forName()加载数据库的驱动程序 通过DriverManager 类进行数据库的连接,连接的时候要输入数据库的连接地址、用户名、密码 操作数据库,通过Statement、PreparedStatement、ResultSet...原创 2019-05-08 09:45:40 · 2231 阅读 · 0 评论 -
JDBC 游标&流
业务场景一 读取大量记录。如果查询过滤条件比较弱,一次读出较多的记录。获得的数据量很可能超过内存大小,出现内存溢出的异常。 为了解决上述问题,可以考虑使用游标。游标提供一种客户端读取部分结果集的机制。业务场景二 读取表中的大字段。如果表中包含数据量很大的字段,即使只读取 一条记录,也会超过内存大小,出现内存溢出的异常。 为了解决上述问题,可以考虑...原创 2019-05-05 15:16:02 · 1400 阅读 · 0 评论 -
java JDBC 连接数据库
Java 数据库连接 JDBC(Java Database Connecive) ,是一组专门负责连接并操作数据库的标准。1. 操作步骤通过Class.forName()加载数据库的驱动程序 通过DriverManager 类进行数据库的连接,连接的时候要输入数据库的连接地址、用户名、密码 操作数据库,通过Statement、PreparedStatement、ResultSet...原创 2019-05-05 11:17:22 · 212 阅读 · 0 评论 -
Java 阻塞队列(BlockingQueue)
BlockingQueue是java中的阻塞队列,它是线程安全的。在队列为空时的获取阻塞,在队列满时的放入阻塞。 BlockingQueue方法以四种形式出现,对于不能立即满足,但在将来可以满足的操作,这四种处理方式不同:抛出异常 返回一个特殊值(null或false) 在操作可以成功前,无限期的阻塞当前线程 在给定的最大时间限制内阻塞 ...原创 2019-02-25 14:21:25 · 339 阅读 · 0 评论 -
Java 线程 - 测试线程耗用堆内存
1.代码package com.study.threadpool;import java.util.concurrent.CountDownLatch;public class ThreadDemo { public static void main(String[] args) { CountDownLatch cdl = new CountDownLatch(1); t...原创 2019-02-25 14:04:54 · 513 阅读 · 0 评论 -
Java 线程池 - Executors
1.newFixedThreadPool(int nThreads) 创建一个固定大小,任务队列容量无界的线程池。线程池中核心线程数 = 最大线程数 = nThreads。加入线程池的线程处于托管状态,线程的运行不受加入顺序的影响。package com.study.threadpool;import java.util.concurrent.Executors;import ...原创 2019-02-25 11:22:36 · 293 阅读 · 0 评论 -
Java SE Eclipse中引入第三方jar
本文介绍Eclipse中引入protobuf-java-2.4.1.jar作为Reference Libraries。1.将jar文件直接拷贝到项目中 此时虽然已经能够看到protobuf-java-2.4.1.jar,但是并不能使用它,还需要构建Java Build Path。2.构建Build Path在项目名称上右键选择Build Path -- 选择Configu...原创 2019-01-30 20:20:21 · 455 阅读 · 0 评论 -
序列化协议Protobuf
1.序列化和反序列化 序列化: 将对象序列化为二进制数据(字节数组),一般也将序列化称为编码(Enccode),主要用于网络传输,数据持久化。 反序列化: 将从网络上,磁盘等读取的字节数组还原成原始对象,一般也将反序列化称为解码(Decode),主要用于网络传输对象的解码,以便完成远程调用。2.选择序列化协议时,需要考虑什么?序列化之后的码流大小(占用网络带宽) 序列...原创 2019-01-30 15:25:50 · 873 阅读 · 0 评论 -
protobuf java代码生成及实例
1.下载工具 protoc-2.4.1-win32.zip protobuf-java-2.4.1.jar (注意两者的版本要相同,下载地址https://github.com/protocolbuffers/protobuf)2.proto文件的内容syntax = "proto2";option java_package = "com.netty.protobu...原创 2019-01-30 19:32:21 · 4290 阅读 · 0 评论 -
JDBC中的事务
1.事务的特性原子性 一致性 隔离性 持久性2.JDBC事务控制 Connection对象有三个函数对事务控制开启事务 con.setAutoCommit(false); 提交事务 con.commit(); 回滚事务 con.rollback();3.代码实例import java.sql.Connection;import java.sql.Driver...原创 2019-05-06 14:27:47 · 249 阅读 · 0 评论