最后
由于文案过于长,在此就不一一介绍了,这份Java后端架构进阶笔记内容包括:Java集合,JVM、Java并发、微服务、SpringNetty与 RPC 、网络、日志 、Zookeeper 、Kafka 、RabbitMQ 、Hbase 、MongoDB、Cassandra 、Java基础、负载均衡、数据库、一致性算法、Java算法、数据结构、分布式缓存等等知识详解。
本知识体系适合于所有Java程序员学习,关于以上目录中的知识点都有详细的讲解及介绍,掌握该知识点的所有内容对你会有一个质的提升,其中也总结了很多面试过程中遇到的题目以及有对应的视频解析总结。
public class JdbcUtil {
private static Connection con = null;
private static DataSource ds = null;
private static Properties pt = null;
static {
// 1.获得当前类的加载器
ClassLoader cl = JdbcUtil.class.getClassLoader();
// 通过该加载器得到一个输入流
InputStream in = cl.getResourceAsStream(“jdbc.properties”);
// 通过输入创一个properties对象
pt = new Properties();
try {
pt.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getCon() {
if (ds == null) {
try {
ds = (DruidDataSource) DruidDataSourceFactory.createDataSource(pt);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
return ds.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void closeCon(Connection con) {
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
具体使用模板:
public static void main(String[] args) throws Exception{
//使用自己的工具类,获取数据库的连接对象
Connection conn = MyJDBCUtils.getConnection();
//创建QueryRunner类对象
QueryRunner qr = new QueryRunner();
String sql = “UPDATE gjp_ledger set money=? , ldesc=? where lid=?”;
Object[] params = {998,“买钻石”,3};
int result = qr.update(conn, sql, params);
System.out.println(result);
DbUtils.close(conn);
}
二.QueryRunner类获取查询结果集ResultSetHandler
===================================================================================================
1.常用Handler
- ArrayHandler 将结果集第一行转成对象数组
public static void main(String[] args) throws Exception{
Connection conn = MyJDBCUtils.getConnection();
String sql = “SELECT * FROM gjp_ledger where lid=?”;
//结果集处理方式,ArrayHandler 第一行转成对象数组
QueryRunner qr = new QueryRunner();
Object[] objects = qr.query(conn, sql, new ArrayHandler(),3);
for(Object obj : objects){
System.out.println(obj);
}
}
- ArrayListHandler 将结果集中的每一行数据都转成一个对象数组,再将转成的多个对象数组存放到List
public static void main(String[] args) throws Exception{
Connection conn = MyJDBCUtils.getConnection();
String sql = “SELECT * FROM gjp_ledger”;
QueryRunner qr = new QueryRunner();
//执行query方法,传递连接对象,SQL语句,结果集处理方式
ArrayListHandler
List<Object[]> list = qr.query(conn, sql, new ArrayListHandler());
for(Object[] objects : list){
for(Object obj : objects){
System.out.print(obj+" ");
}
System.out.println();
}
}
- BeanHandler 将结果集第一行数据封装到一个对应的业务类实例中
(1): 定义业务数据类Ledger(实体类,javaBean)
public class Ledger {
//要生成空参、有参构造、set和get方法、toString方法
private int lid;
private String parent;
private double money;
private int sid;
private String account;
private String createtime;
private String ldesc;
}
(2)测试案例代码
public static void main(String[] args) throws Exception{
Connection conn = MyJDBCUtils.getConnection();
String sql = “SELECT * FROM gjp_ledger”;
QueryRunner qr = new QueryRunner();
//BeanHandler泛型,构造方法(和反射有关系的对象)
Ledger legder = qr.query(conn, sql, new BeanHandler(Ledger.class));
System.out.println(legder);
}
- BeanListHandler 将结果集中的每一行数据都封装到一个对应的业务类实例中,再将多个业务类实例对象存放到List里。
public static void main(String[] args) throws Exception {
Connection conn = MyJDBCUtils.getConnection();
String sql = “SELECT * FROM gjp_ledger”;
//结果集处理方式,BeanListHandler 每一行数据封装到业务数据类中
QueryRunner qr = new QueryRunner();
List list = qr.query(conn, sql, new BeanListHandler(Ledger.class));
for(Ledger ledger : list){
System.out.println(ledger);
}
}
- MapHandler 将结果集中的第一行数据封装到一个Map中,key是列名,value是对应的值。
public static void main(String[] args) throws Exception {
Connection conn = MyJDBCUtils.getConnection();
String sql = “SELECT * FROM gjp_ledger”;
//结果集处理方式,MapHandler 封装到一个Map集合中,存储键值对集合
QueryRunner qr = new QueryRunner();
Map<String,Object> map = qr.query(conn, sql,new MapHandler());
for(String key : map.keySet()){
System.out.println(key+" "+map.get(key));
}
}
- MapListHandler 将结果集中的每一行数据都封装到一个Map里,然后再将多个Map存放到List
public static void main(String[] args) throws Exception{
Connection conn = MyJDBCUtils.getConnection();
String sql = “SELECT * FROM gjp_ledger”;
总结
大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。
麻烦帮忙转发一下这篇文章+关注我
如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。
麻烦帮忙转发一下这篇文章+关注我
[外链图片转存中…(img-i1OI4s23-1715564985723)]