批处理

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. Reactor And Gev 详解 通俗易懂

    reactor 详解 在类似网关这种海量连接, 很高的并发的场景, 比如有 10W+ 连接, go 开始变得吃力. 因为频繁的 goroutine 调度和 gc 导致程序性能很差. 这个时候我们可以考 ...

  2. 痞子衡嵌入式:理解i.MXRT中FlexSPI外设lookupTable里配置访问行列混合寻址Memory的参数值

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT中FlexSPI外设lookupTable里配置访问行列混合寻址Memory的参数值. 关于 FlexSPI 外设的 loo ...

  3. R语言、02 案例2-1 Pelican商店、《商务与经济统计》案例题

    编程教材 <R语言实战·第2版>Robert I. Kabacoff 课程教材<商务与经济统计·原书第13版> (安德森) P48.案例2-1 Pelican 商店 PS C: ...

  4. Android类加载流程

    背景 由于前前前阵子写了个壳,得去了解类的加载流程,当时记了一些潦草的笔记.这几天把这些东西简单梳理了一下,本文分析的代码基于Android8.1.0源码. 流程分析 从loadClass开始,我们来 ...

  5. ULID规范解读与实现原理

    前提 最近发现各个频道推荐了很多ULID相关文章,这里对ULID的规范文件进行解读,并且基于Java语言自行实现ULID,通过此实现过程展示ULID的底层原理. ULID出现的背景 ULID全称是Un ...

  6. IDEA快速生成数据库表的实体类

    IDEA连接数据库 IDEA右边侧栏有个DataSource,可以通过这个来连接数据库,我们先成功连接数据库 点击进入后填写数据库进行连接,注意记得一定要去Test Connection 确保正常连接 ...

  7. JS复制粘贴效果

    话不多说.直接上代码 HTML: 1 <div> 2 老师入会密码:<input type="text" id="tPass"> < ...

  8. C/S、B/S、Web的介绍(Web应用开发)

    文章目录 1.C/S结构介绍 2.B/S结构介绍 3.Web介绍 3.1 .什么是web? 3.2 .Web的工作原理 3.3 客户端应用技术 3.4 服务端应用技术 1.C/S结构介绍 Client ...

  9. Vue3 SFC 和 TSX 方式自定义组件实现 v-model

    1 v-model 1.1 理解 v-model v-model 是 vue3 中的一个内置指令,很多表单元素都可以使用这个属性,如 input.checkbox 等,咱可以在自定义组件中实现 v-m ...

  10. 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置

    目录 沁恒CH32V003(一): CH32V003F4P6开发板上手报告和Win10环境配置 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置 硬件准备 沁 ...