dao

Spring DAO - first query with JdbcTemplate takes much longer time

别等时光非礼了梦想. 提交于 2019-12-31 02:06:06
问题 In my application I use Spring MVC with DAO pattern to access MSSql database with JdbcTemplate. Everything is working fine but I have noticed that first query takes a bit longer then next queries in each single request. I wrote a simple test: String sql = "SELECT 1"; for (int i = 0; i < 5; i++) { long startTime = System.currentTimeMillis(); jdbcTemplate.queryForList(sql); logger.debug("query took: " + TimeHelper.showDuration(startTime)); } the result is: 2012-08-28 12:55:07,665 | Start 2012

Where should validation take place?

霸气de小男生 提交于 2019-12-30 11:07:51
问题 I want to use MVC pattern in my PHP project. I also want to use Dao-Service pattern for Model layer since it makes database engines easily interchangeable and keeps business logic out of DB interaction. Now, I heard that validation should happen in Model layer since Controllers are only responsible for transporting data. That's pretty reasonable. Should it, however, be implemented in Service layer, or entities themselves? Approach 1: validation in entities class Post extends Entity {

How to detect the last insert ID within a transaction in Yii using DAO?

五迷三道 提交于 2019-12-30 08:20:09
问题 That's the source code, I need to detect the ID (see the marked position between the two queries below). $connection = Yii::app()->db; $transaction=$connection->beginTransaction(); try { $q = "INSERT INTO `someTable1` .... "; $connection->createCommand($q)->execute(); // Single Row Inserted // HERE!! How to get the last insert ID from query above $q = "INSERT INTO `someTable2` .... WHERE id = LAST_INSERT_ID_FROM_FIRST_QUERY "; $connection->createCommand($q)->execute(); $transaction->commit();

权限基本操作:实体类和dao

*爱你&永不变心* 提交于 2019-12-30 02:50:39
package com.learn.domain.system; import lombok.Getter; import lombok.Setter; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import java.io.Serializable; /** * API资源 */ @Entity @Table(name = "pe_permission_api") //@Getter //@Setter public class PermissionApi implements Serializable { private static final long serialVersionUID = -1803315043290784820L; /** * 主键 */ @Id private String id; /** * 链接 */ private String apiUrl; /** * 请求类型 */ private String apiMethod; /** * 权限等级,1为通用接口权限,2为需校验接口权限 */ private String apiLevel; public static long

YII 数据库操作之DAO

房东的猫 提交于 2019-12-29 16:06:01
http://ioutsider.me/yii-shu-ju-ku-cao-zuo-zhi-dao.html 新增数据: Yii::app()->db->createCommand()->insert('es_users', array('name'=>'Outsider')); 删除数据: Yii::app()->db->createCommand()->delete('es_users', 'id=:id', array(':id'=>2)); 更新数据: $res = Yii::app()->db->createCommand()->update('es_users', array('name'=>'局外人'), 'id=:id',array(':id'=>2)); 查询数据: 查询一条记录 $row = Yii::app()->db->createCommand()->from('es_user')->where('id=:id',array(':id'=>2))->queryRow(); 查询符合条件的多条记录: Yii::app()->db->createCommand()->select('id,name,email')->from('es_user')->where('id>:id and id<5',array(':id'=>1))->queryAll(); 来源

yii2数据库操作DAO

↘锁芯ラ 提交于 2019-12-29 16:05:45
执行 SQL 语句 1 $db = \Yii::$app->db; 2 $rows = $db->createCommand('SELECT * FROM zs_dynasty') 3 ->queryAll(); 1 $rowCount=$command->execute(); // 执行无查询 SQL 2 $dataReader=$command->query(); // 执行一个 SQL 查询 3 $rows=$command->queryAll(); // 查询并返回结果中的所有行 4 $row=$command->queryRow(); // 查询并返回结果中的第一行 5 $column=$command->queryColumn(); // 查询并返回结果中的第一列 6 $value=$command->queryScalar(); // 查询并返回结果中第一行的第一个字段 获取查询结果 1 $db = \Yii::$app->db; 2 $query = $db->createCommand('SELECT * FROM zs_dynasty') 3 ->query(); 4 while(($row=$query->read())!==false) { 5 print_r($row); 6 } 7 // 使用 foreach 遍历数据中的每一行 8 $query =

复杂一点的maven项目结构在jenkins中的sonarqube扫描配置

我的梦境 提交于 2019-12-29 14:43:48
一般的maven项目结构都是有一个parent和若干个子module,parent模块一般package属性是pom,子module一般为jar或war。但是对于在parent项目下还有包含有pom模块的情况可能会有点困惑,这里记叙一下这种情况的配置。 1.1 一般项目结构 pom{ a模块, b模块 } 1.2 jenkins的sonarqube scan配置 sonar.projectKey=projectkey sonar.projectName=projectname sonar.modules=a,b a.sonar.projectName=a a.sonar.projectKey=a a.sonar.sources=a/src/main/java a.sonar.tests=a/src/test/java ... b.sonar.projectName=b b.sonar.projectKey=b b.sonar.sources=b/src/main/java b.sonar.tests=b/src/test/java ... 2.1 复杂项目结构 项目结构大致如下: pom{ a模块, b模块 pom{ model, service, dao } } 2.2 jenkins的sonarqube scan配置 这里忽略掉pom模块下面的子pom模块就行

JPA Self Join using JoinTable

萝らか妹 提交于 2019-12-29 09:36:06
问题 I have 1 entity call Item in which I want to be able to link parent items to children. to use a join table to create a parent/child relationship. I haven't been able to get any good documentation on. So if anyone has any thoughts I'm all ears. Here is what I have... which works most of the time. public class Item implements java.io.Serializable { @Id private Long id; @ManyToOne(optional = true, fetch = FetchType.LAZY) @JoinTable(name = "ITEMTOITEM", joinColumns = { @JoinColumn(name = "ITEMID"

亚博体育DAO持久化

自古美人都是妖i 提交于 2019-12-28 23:43:19
亚博体育yb9461分析DAO持久化的意思。 2.1.事务 在一个事务方法中,调用了其他事务的方法,此时事务该如何传递,按照什么规则传播. 1.1事务传播规则情况一:需要遵从当前事务 REQUIRED: 必须存在一个事务,如果当前存在一个事务,则加入到该事务中,否则,新建一个事务;(使用比较多) SUPPORTS: 支持当前事务。如果当前存在事务,则使用该事务否则以非事务形式运行; MANDATORY: 必须要存在事务,如果当存在事务,就使用该事务,否则,抛出异常; 1.2事务传播规则情况二:不遵从当前事务 REQUIRES_NEW:不管当前是否存在事务,都会新开启一个事务 必须是一个新的事务;(使用的比较多) NOT_SUPPORTED: 以非事务方式执行,如果当前存在事务,把当前事务暂停; NEVER :不支持事务,如果当前存在事务,抛出一个异常; 1.3事务传播规则情况三:寄生事务(外部事务/内部事务/嵌套事务) HESTED:寄生事务,如果当前存在事务,则在内部事务内执行;如果当前不存在事务则创建一个新的事务; 寄生事务可以通过数据库savePoint (保存点)来实现,寄生事务可以回滚的,但是他的回滚不影响外部事务.但是外部事务的回滚会影响寄生事务. 1.4<tx:method/>元素的属性(要被增强的方法) name:事务管理的方法名称,支持使用通配符方式:

19/12/17今日工事.JAVA项目流程

淺唱寂寞╮ 提交于 2019-12-28 06:32:05
实现查询、增加、修改、删除方法 main文件 启动项 WebConfiguration Mvn接口的实现 配置文件 配置拦截器 日期格式转换 CheckUserInterceptor 过滤掉一些文件可以通过 controller控制器 实质性控件 查询 新增 保存 删除 用户有效性等功能的实例化 dao UserRepository继承JpaRepository 实现增删改查具体操作 dao访问对象 domin 声明实体对象、变量 以及set、get、hashcode、equal方法 service 用于声明服务接口 serviceImpl服务接口的实现 实现类里面要访问dao pom 用于注入依赖 DAO层: DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。 Service层: Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。 Controller层: Controller负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。 spring security