一个实现了和数据库打交道的源文件(组装sql语句版)
package com.itcast.service.base;
import java.util.LinkedHashMap;
import javax.persistence.Entity;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.itcast.util.QueryResult;
/**
* 针对所有实体bean的一个抽象类,所有的实体bean包括ProductType,Product等等
* @author lucky
*
*/
@Transactional
public abstract class DaoSupport implements DAO {
@PersistenceContext protected EntityManager em;
//调用下面的public <T> void delete(Class<T> entityClass,Object[] entityids方法
public <T> void delete(Class<T> entityClass,Object entityid) {
delete(entityClass,new Object[]{entityid});
}
public <T> void delete(Class<T> entityClass,Object[] entityids) {
for(Object id:entityids){
em.remove(em.getReference(entityClass, id));
}
}
@Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED)//说明在执行该方法的时候不需要进行事务处理
public <T> T find(Class<T> entityClass, Object entityid) {
return em.find(entityClass, entityid);
}
/**
* 可以自动管里主键id的生成,但前提是id是自动生成的
* 若id是uuid的话,jpa就不支持自动管理逐渐的功能,子类就必须重写该方法,手动添加主键
*/
public void save(Object entity) {
em.persist(entity);
}
public void update(Object entity) {
em.merge(entity);
}
@SuppressWarnings("unchecked")
@Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED)
/**
* 查询的终极最强版,既可以分页,又可以按序查询,还可以有查询条件,其他的查询都使用这个查询方法
* orderby 语句格式:order by key1 asc
相关文档:
今天要同步远程数据库时出错,报错“实际的服务器名称。。。。”,以下是解决方法
SQL code--查看当前服务名称
select @@servername
--如果与当前计算机名不一致,则用以下语句修改SQL Server服务器名
sp_dropserver 'old_name' --先删除原名称
GO
sp_addserver 'new_name', lo ......
index.jsp
<%@ page language="java" import="java.sql.*" import="java.lang.*" import="java.util.*" pageEncoding="GB2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%!
& ......
SQL之行列互变问题。
寻寻觅觅,SQL行变列,列变行问题虽然解决方案众多,但无不存在着代码复杂,性能欠佳等问题。今有幸得知最佳解决方案,好东西不敢独享,笔记之,雅俗共赏。
示例数据:(该示例数据来自YHHR数据库 Performance_Zmonth_Value表)
Employee_Id& ......
--将系统datediff函数重写,主要把datepart类型改为varhcar,方便调用
--作者:敖士伟
--Date:2009-10-14 10:29
create function MyDateDiff(@datepart varchar(50), --日期间隔类型:year,month,day.etc
@date1 varchar(50), @date2 varchar(50))
returns int
as
begin
declare @part int
if @datepart ......