Java 连接数据库的几种方法
1.使用@Query 注释
public interface BookRepository extends JpaRepository<Book, Long>{@Query(value = "SELECT * FROM book WHERE name = ?1 AND borrowedAt IS NULL AND createdAt > ?2", nativeQuery = ture)List<Book> numsRes(String userName, Date rangeDate);
}
2.使用 JPAQuery
import com.mysema.query.types.Predicate@PersistenceContext(unitName = "book")
private EntityManager entityManager;QBook BOOK = QBook.book;private static final Expression<?>[] BOOK_FIELD = {BOOK.name,BOOK.id
};private Predicate makePredicate(String userName, Date createdAt){BooleanExpression predicate = null;List<BooleanExpression> ps = new ArrayList<>();if(userName != null){ps.add(BOOK.userName).eq(userName);}if(createdAt != null){ps.add(BOOK.creaedAt).goe(createdAt);}if(!ps.isEmpty()){predicate = ps.get(0);if(ps.size() == 2){predicate.and(ps.get(1));}}return predicate;
}private JPAQuery getQueryForBook(Predicate predicate, int startRow, int pageSize){Epression sortfield = BOOK.createdAt;OrderSpecifier orderSpecifier = new OrderSpecifier(Order.ASC, sortfield);JPAQuery jpaQuery = new JPAQUERY(entityManager);jpaQuery.from(BOOK).where(predicate).orderBy(sortfield).offset(startRow).limit(pageSize);return jpaQuery;
}private List<BookResult> getBook(Predicate predicate, int startRow, int pageSize){List<BookResult> list = new ArrayList<>();JPAQuery jpaQuery = getQueryForBook(predicate, startRow, pageSize);final List<Tuple> results = jpaQuery.list(BOOK_FIELD);for(Tuple tuple:results){list.add(wrapForBook(tuple));}return list;
}private BookResult wrapForBook(Tuple tuple){BookResult bookResult = new BookResult();bookResult.setName(tuple.get(BOOK.name));bookResult.setId(tuple.get(BOOK.id));return bookResult;
}
3.使用 Jdbctemplate
Jdbctemplate bookTemplate;
private static final String SQL = "SELECT * FROM book WHERE name = :name"
public List<BookResult> findBook(String name){Map<String, Object> params = new HashMap<>();params.put("name", name);return bookTemplate.query(SQL, params, new RowMapper<Book>(){@Overridepublic BookResult mapRow(ResultSet rs, int rowNum) throws SQLException{BookResult bookResult = new BookResult();bookResult.setid(rs.getLong("id"));return bookResult;}});
}
Java 连接数据库的几种方法相关推荐
- 连接数据库的五种方法
连接数据库的五种方法 连接数据库的五种方法 方法一 方法二 方法三 方法四 方法五 连接数据库的五种方法 方法一 public void method1() throws SQLException { ...
- mysql远程连接数据库的二种方法_mysql 远程连接数据库的二种方法
mysql 远程连接数据库的二种方法 一.连接远程数据库: 1.显示密码 如:MySQL 连接远程数据库(192.168.5.116),端口"3306",用户名为"roo ...
- Eclipse远程调试Java代码的三种方法
Eclipse远程调试Java代码的三种方法, 第1种方法是用来调试已经启动的Java程序,Eclipse可以随时连接到远程Java程序进行调试, 第2种方法可以调试Java程序启动过程,但是Ecli ...
- java文件指针,Java 测试文件指针,java测试指针,两种方法打开文件并进行内
Java 测试文件指针,java测试指针,两种方法打开文件并进行内 两种方法打开文件并进行内容定位package com.ronsoft.books.nio.channels;import java. ...
- VB.NET连接数据库的几种方法
VB.NET连接数据库的几种方法 ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/WD_ADONET/html/745 ...
- 2021-05-28 sqlplus命令连接数据库的几种方法
sqlplus命令连接数据库的几种方法 方法一:sqlplus / as sysdba 方法二:sqlplus username/passwd 方法三:sqlplus username/passwd@ ...
- 【224期】Java 字符串拼接五种方法的性能比较分析,从执行100次到90万次?
点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每天 08:15 更新文章,每天进步一点点... ...
- eclipse 远程调试java_Eclipse远程调试Java代码的三种方法
Eclipse远程调试Java代码的三种方法, 第1种方法是用来调试已经启动的Java程序,Eclipse可以随时连接到远程Java程序进行调试, 第2种方法可以调试Java程序启动过程,但是Ecli ...
- 【JDBC篇】Java连接数据库的五种方式,及什么是URL?
目录 URL介绍: 连接数据库的五种方式 方式一: 方式二: 方式三: 方式四: 方式五:(最终版) URL介绍: JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择 ...
最新文章
- 华为 Java 编程军规
- Linux中命令配置防火墙
- [AI开发]基于深度学习的视频多目标跟踪实现
- Ubuntu14.04下安装eclipse
- 我最近做产品的一些「感悟」
- 记录JS报错Cannot set property ‘onclick/xxx‘ of null
- Linux初级运维(十七)——Linux内核编译与系统裁减
- 类 workbooks 的 open 方法无效_第十九章 Cach 命令大全 OPEN 命令
- python怎样打开加密的文件_如何使用python加密多个文件
- ElasticSearch学习(三):配置与集群
- 脚本小子福利:安卓远控木马直接生成
- 简单的光线追踪教程(一)
- hadoop实现单词统计
- format mla_MLA Format MLA格式
- UA MATH564 概率论 概率不等式
- K8S搭建redis集群(2)使用redis-trib
- 初入职场着装宝典(BOY)
- HDP 2.6.5配置yarn的CGroups
- Erlang 下载安装
- 浅谈autolayout