批处理

public static Integer addBatch(String[] sqls){

	init();
try {
//设置关闭自动提交
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
for (int i = 0; i < sqls.length; i++) {
stmt.addBatch(sqls[i]);
}
//批量执行
stmt.executeBatch();
//提交事务
conn.commit();
return 1;
} catch (SQLException e) {
e.printStackTrace();
return 0;
}finally {
close();
}
}

批处理在main方法中调用

   String[] sql3 = new String[3];
sql3[0] = "insert into student(s_name, s_age)values('zs',11);";
sql3[1] = "insert into student(s_name, s_age)values('lis',22);";
sql3[2] = "insert into student(s_name, s_age)values('ww',33);";
int res = addBatch(sql3);
System.out.println(res);

通用泛型查询方法


public static <T> List<T> query1(String sql, Class<T> cls, Object...params){
init();
try {
//编译sql语句,返回PrepareStatement对象
ps = conn.prepareStatement(sql);
//参数替换sql中的占位符
if (params != null) {
for (int i = 0; i < params.length; i++) {
ps.setObject(i+1,params[i]);
}
}
//执行sql语句,结果集封装给ResultSet
rs = ps.executeQuery(); List<T> list = new ArrayList<T>();
//检索resultSet对象中的列数,类型和字段(结果集元数据)
ResultSetMetaData resultSetMetaData = rs.getMetaData(); while(rs.next()){
T t = cls.newInstance();//泛型实例化 //获取结果集的列数
int count = resultSetMetaData.getColumnCount();
for (int i = 0; i < count; i++) {
//获取每一列的别名,如果没有别名就返回resultSetMetaData.getColumnName();
String cName = resultSetMetaData.getColumnLabel(i + 1);
Object cValue = rs.getObject(cName);//通过获取的别名或者列名获取列的值 try {
Field field = cls.getDeclaredField(cName);//通过获取的别名或者列名获取类的属性
field.setAccessible(true);//开启私有访问权限
field.set(t, cValue);//变量赋值
} catch (NoSuchFieldException e) {
} }
list.add(t); }
return list; } catch (Exception e) {
e.printStackTrace();
return null;
}finally{
close();
}
}

下划线转驼峰命名法

 	//下划线转驼峰命名
public static void conversion(String column){
// String[] conName = name.split("");
// String string = "";
// for (int i = 0; i < conName.length; i++) {
// if(conName[i].equals("_")){
// string = string + conName[i+1].toUpperCase();
// i++;
// }else {
// string = string +conName[i];
// }
// }
// System.out.println(string); String[] arr = column.split("_");
StringBuffer sf = new StringBuffer(arr[0]);
for (int i = 1; i < arr.length; i++) {
String string = arr[i];
String firstStr = string.substring(0, 1).toUpperCase();
}
}

day24 JDBC批处理(通用泛型查询方法 & 下划线转驼峰命名法)的更多相关文章

  1. mybatis会自动把字段名中的下划线转为驼峰命名法?

    先看一下转化的调用堆栈: 代码如下: 上面代码只是去掉了下划线,并没有首字母小写变大写的代码.再跟进findProperty方法可以找到获取驼峰结果的代码如下: 可以看出通过reflector.fin ...

  2. java下划线与驼峰命名互转

    方式一: 下划线与驼峰命名转换: public class Tool { private static Pattern linePattern = Pattern.compile("_(\\ ...

  3. MyBatis Generator 下划线转驼峰命名

    MyBatis Generator配置文件--指定生成实体类使用实际的表列名作为实体类的属性名 table标签下的设置属性useActualColumnNames用于指定生成实体类时是否使用实际的列名 ...

  4. <五>JDBC_利用反射及JDBC元数据编写通用的查询方法

    此类针对javaBean类写了一个通用的查询方法,List<javaBean> 通用查询更新中...:通过学习,深刻体会到学会反射就等于掌握了java基础的半壁江山! 一.使用JDBC驱动 ...

  5. Java -- JDBC_利用反射及 JDBC 元数据编写通用的查询方法

    先利用 SQL 进行查询,得到结果集: 利用反射创建实体类的对象:创建对象: 获取结果集的列的别名: 再获取结果集的每一列的值, 结合 3 得到一个 Map,键:列的别名,值:列的值: 再利用反射为 ...

  6. JDBC课程5--利用反射及JDBC元数据(ResultSetMetaData)编写通用的查询方法

    /**-利用反射及JDBC元数据编写通用的查询方法 * 1.先利用SQl语句进行查询,得到结果集--> * 2.查找到结果集的别名:id--> * 3.利用反射创建实体类的对象,创建aut ...

  7. 使用ResultSet,写了一个通用的查询方法

    此方法很烂,以后优化 /** * 通用的查询方法:SELECT */ @SuppressWarnings({ "unchecked", "rawtypes" } ...

  8. hibernate 或jpa 中使用 AliasToBeanResultTransformer 自定义类型转换ResultTransformer 下划线转驼峰

    jpa中使用 sql查询时,返回结果直接转为实体bean的实现, 需要自定义一个ResultTransformer,如下, import java.util.Arrays; import org.ap ...

  9. Java Json 数据下划线与驼峰格式进行相互转换

    概述 今天遇见一个需求,需要对json数据进行下划线与驼峰格式之间进行转换,在Fastjson.Jackson.Gson都提供了转换的方式,在这里进行一下列举. User类: public class ...

  10. 使用 Sublime Text 将含下划线的字符串批量替换为驼峰命名法格式的字符串

    本文版权归cxun所有,如有转载请注明出处与本文链接,谢谢!原文地址:http://www.cnblogs.com/cxun/p/7762984.html For indexing: Convert ...

随机推荐

  1. Java 快速开发几 MB 独立 EXE,写图形界面很方便

    Java 写的桌面软件带上运行时只有 6 MB,而且还是独立 EXE 文 件,是不是难以置信? 想一想 Electron 没写多少功能就可能超过百 MB 的体积,Java 写的桌面软件算不算得上小.轻 ...

  2. Python数据科学手册-机器学习: 流形学习

    PCA对非线性的数据集处理效果不太好. 另一种方法 流形学习 manifold learning 是一种无监督评估器,试图将一个低维度流形嵌入到一个高纬度 空间来描述数据集 . 类似 一张纸 (二维) ...

  3. Python数据科学手册-Numpy数组的计算:广播

    广播可以简单理解为用于不同大小数组的二元通用函数(加减乘等)的一组规则 二元运算符是对相应元素逐个计算 广播允许这些二元运算符可以用于不同大小的数组 更高维度的数组 更复杂的情况,对俩个数组的同时广播 ...

  4. Django 测试脚本

    一.测试脚本 Django 在创建项目时自动在应用下创建了tests.py,这个py文件可以作为测试文件:也可以在应用下手动创建一个py测试文件. 无论哪种方式,都需要提前书写以下代码. from d ...

  5. Django django-admin.py 命令详解

    一.Django 基本命令 下载 Django pip3 install django     # 默认下载最新版 pip3 install django==4.1  # 手动选择版本 创建Djang ...

  6. 通过管理接口配置ProxySQL

    可以使用mysql客户端来连接管理接口,以下是使用admin凭据连接到本地6032端口的管理接口: $ mysql -u admin -padmin -h 127.0.0.1 -P6032 --pro ...

  7. ProxySQL(11):链式规则( flagIN 和 flagOUT )

    文章转载自:https://www.cnblogs.com/f-ck-need-u/p/9350631.html 理解链式规则 在mysql_query_rules表中,有两个特殊字段"fl ...

  8. Elasticsearch 索引生命周期管理 ILM 实战指南

    文章转载自:https://mp.weixin.qq.com/s/7VQd5sKt_PH56PFnCrUOHQ 1.什么是索引生命周期 在基于日志.指标.实时时间序列的大型系统中,集群的索引也具备类似 ...

  9. aardio + AutoHotkey 混合编程

    本文主要介绍 aardio + AutoHotkey 混合编程. 在 aardio 中可以调用很多编程语言,例如 C语言.C++.C#.Java.Python.R.Javascript.Node.Js ...

  10. 空 Maven项目转成 Web项目 & SpringMVC调用其他 Module中的方法可能会遇到的小问题

    SpringMVC调用其他 模块内的方法的 坑 下次别在阴沟里翻船啦.. 一共花费 4个小时,解决项目中的这个问题 OMG 1. 首先是 Maven新建工程 一般使用 Maven都是先创建 空工程 当 ...