通用表查询返回所有行(只适用于单表)
@GetMapping(value = "/user")
@ResponseBodypublic List<SysUser> getUser(String userName){List<String> list = new ArrayList<>();list.add(userName);//QueryUtil.Query 只能查询单表的List<SysUser> query = QueryUtil.Query(SysUser.class, "select s.* from sys_user s where s.USERNAME = ?",list.toArray());return query;}
//通用表查询返回所有行public static <T> List<T> Query(Class<T> clazz, String sql, Object...args){String url = "jdbc:mysql://127.0.0.1:3306/mydb";String username = "root";String password = "your password";Connection conn= null;PreparedStatement ps=null;ResultSet rs;try {//conn=JDBC_curd.getConnection();conn = DriverManager.getConnection(url,username,password);
// 预编译sqlps=conn.prepareStatement(sql);
// 填充占位符for (int i = 0; i <args.length ; i++) {ps.setObject(i+1,args[i]);}
// 返回结果集rs=ps.executeQuery();
// 通过结果集获得元数据ResultSetMetaData rsmd=rs.getMetaData();
// 获得列数int count=rsmd.getColumnCount();List<T> list=new ArrayList<>();while (rs.next()){//判断结果集下一条是否还有数据
// 获得该类的对象T t=clazz.newInstance();for (int i = 0; i <count ; i++) {//获得列值Object columnValue=rs.getObject(i+1);
// 获得列名 针对类名和列名相同的情况
// String columnName=rsmd.getColumnName(i+1);
// 获得别名 当用列的别名时,类的属性名一定要与这别名相同String columnLabel=rsmd.getColumnLabel(i+1);
// 通过反射获得获得对应属性Field field=clazz.getDeclaredField(columnLabel);
// 私有可通行field.setAccessible(true);
// 调用该对象的set方法field.set(t,columnValue);}list.add(t);}return list;} catch (SQLException | NoSuchFieldException | IllegalAccessException | InstantiationException throwables) {throwables.printStackTrace();}finally {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return null;}
通用表查询返回所有行(只适用于单表)相关推荐
- mysql 单表查询 优化_SQL优化 MySQL版 - 单表优化及细节详讲
单表优化及细节详讲 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 注:本文章需要MySQL数据库优化基础或观看前几篇文章,传送门: B树索引详讲(初识SQL优化,认识索引):htt ...
- mybatispuls中IService查询条件的使用(适用于单表查)
@Override public List<GoodsComentDTO> findGoodsComent(Integer pageNo,Integer pageSize,Integer ...
- mysql实验三单表和多表查询_数据库实验三(单表查询)
实验三: select sno,sname from student;//(1)查询全体学生的学号和姓名 select * from student;//(2)查询全体学生的详细记录 select s ...
- 怎么提高mysql多表查询效率_MySQL创建index提高多表查询效率
本文的目的在于探讨use index for join语句的基本原理.我们知道,在MySQL使用JION语句关联多表查询时,为表创建Index能够大幅度提高查询效率.下面以一个简单的例子来了解其中的原 ...
- 指定查询条件,查询对应的集合List(单表)
TestDao.java(测试类) @Test public void findCollectionByConditionNoPage(){ ApplicationContext ac = ne ...
- (探讨)MyBatis中的N+1问题,多表关联查询效率高点还是多次单表查询效率高
MySQL多表关联查询效率高点还是多次单表查询效率高,为什么? https://blog.csdn.net/weixin_33869377/article/details/86265527 MyBat ...
- 单行子查询返回多个行_sql多表查询练习,习题总结
组函数(聚合函数):组函数操作行集,给出每组的结果.组函数不象单行函数,组函数对行的集合进行操作,对每组给出一个结果.这些集合可能是整个表或者是表分成的组. 组函数和单行函数的区别: 单行函数对查询到 ...
- 使用beego开发多表查询返回字段问题
一.多表查询的时候建议使用原生sql查询,若使用beego提供的orm表定义的方法查询,返回字段形式固定,对于有代码强迫症的小伙伴来说很别扭,请看下图: func GetGoodsList(form ...
- Oracle分页查询存储过程(适用于单表查询)
最近在学习存储过程,网上搜了一些例子,然后自己对照着写了一个相对简单的分页查询... 1.创建包 --/ CREATE OR REPLACE PACKAGE PKG_PAGINATION as TYP ...
最新文章
- c语言小于n的素数和,关于求N以内素数的一点小问题(N小于一亿)
- 添加功能---jsp,servlet
- IOCP 浅析与实例
- 【数据湖存储】数据湖的终极奥秘,无招胜有招
- 如何激活windows的远程终端
- html5画直线,小白学canvas-从0到1,画直线
- UML序列图总结(转)
- 踩坑! spring事务,非事务方法与事务方法执行相互调用
- e站host地址_IP地址和物理地址的区别和联系
- 3D动画在线播放工具-3dplayer功能演示
- html的盒子随页面动,JavaScript实现跟随鼠标移动的盒子
- ‘java‘ 不是内部或外部命令,也不是可运行的程序
- 实例10 等差数列求和
- Windows 之 win SMB(smb) 功能的开启设置和使用的简单说明
- android:关于Handle
- 从零开始学_JavaScript_系列(六)——CSS的padding、margin、border属性超详细解释(图文)
- Iphone 6 plus 刷机
- Vue——axios的二次封装
- jdk版本和maven版本的匹配问题,maven报错method ‘void <init>()‘ not found
- python实现UDP