JEECG技術總結



1、用戶數據遷移時,必須在表t_s_base_user和t_s_user中都插入數據才會在頁面顯示。
2、執行sql語句:

String sql = "select count(id) from orderb where merchanttrnno like '"+nowYear+"%"+"'";
count = jeecgJdbcService.getCountForJdbcParam(sql, new Object[]{});

3、獲取當前登錄用戶 :

TSUser user = ResourceUtil.getSessionUserName();
String name = user.getUserName();

4、配置多個數據源
1、在spring中添加多個數據源
2、在項目中獲取數據源,並且執行操作

DataSourceContextHolder.setDataSourceType(org.jeecgframework.core.extend.datasource.DataSourceType.dataSource_jinli);
String sql = "insert into person(id,name) values('002','李四')";
jeecgJdbcService.executeSql(sql, new Object[]{});
System.out.println(DataSourceContextHolder.getDataSourceType());

DataSourceContextHolder 這個類可以改變上下文的數據源
你在spring-mvc-hibernate.xml中配置多種數據源就可以切換了
5、用戶刪除失敗,
設置 t_s_log 外鍵 級聯刪除
6、curdtool.js 中包含了很多js控制,限制方法

eg: //sql 增強
function doDopay(title,url,id){
var rowData = $('#'+id).datagrid('getSelected');
var rowsData = $('#'+id).datagrid('getSelections');
if (!rowData) {
tip('請選擇付款項目');
return;
}
if (rowsData.length>1) {
tip('請選擇一個付款項目');
return;
}
}

7、修改模糊查詢: StringParseImpl 類
8、執行SQL語句的方式:

// Map<String,Object> map = new HashMap<String, Object>();
// System.out.println("map");
// map = jeecgJdbcService.findOneForJdbc(findOrderc);
// map = systemService.findOneForJdbc(findOrderc);
// map = jdbcTemplate.queryForMap(findOrderc);

9、讀取方式:

String sql = SqlUtil.getMethodSql(SqlUtil.getMethodUrl());

10、手動添加查詢中的日期控件

$(document).ready(function(){
$("input[name='createTime_begin']").attr("class","easyui-datebox");
$("input[name='createTime_end']").attr("class","easyui-datebox");
});

11、上傳附件大小控制 : UploadTag 類 進行修改
12、數據權限的帖子:
http://www.jeecg.org/forum.php?mod=viewthread&tid=1776&extra=page%3D1
13、Jeecg 查詢條件拼裝-代碼解讀
http://www.jeecg.org/forum.php?mod=viewthread&tid=1760&extra=page%3D4
數據源設計
http://www.jeecg.org/forum.php?mod=viewthread&tid=2328&page=1&extra=#pid6366
14、replace 用法 參見 userList.jsp 部門字段
15、easyui.tld 自定義標簽,
16、自己寫彈出選擇頁 choose 重寫代碼

//重寫方法
function listChoose(title,url){
$.dialog({
content: 'url:'+url,
zIndex: 2022,
title: title,
lock : true,
width :400,
height :350,
left :'65%',
top :'45%',
opacity : 0.4,
button : [
{
name : '確認',
callback : function() {
iframe = this.iframe.contentWindow;
var locDeptCode = "";
locDeptCode = iframe.getmedi
calInslocalDeptsListSelections('locDeptCode');
$('#locDeptCode').val(locDeptCode);
var locDeptName = "";
locDeptName = iframe.getmedicalInslocalDeptsListSelections('locDeptName');
$('#locDeptName').val(locDeptName);
return true;
},
focus : true
},
{
name : '取消',
callback : function() {}
}
]
});
}
//重寫方法
function clearsChoose(hiddenid,hiddenName,toname,textname){
var textnamearr;
if(textname){
if(toname){
textname = toname;
}
textnamearr = textname.split(",");
for(var i=0; i<textnamearr.length;i++ ){
if(textnamearr[i]){
$('#' + textnamearr[i]).val("");
//$('#' + textnamearr[i]).blur();
}
}
}
if(hiddenid!== undefined && hiddenid!=""){
$('#'+ hiddenid).val("");
}else{
$('#'+ hiddenName).val("");
}
}

17、指向同一個表需要在后面加

cgAutoListController.do?list&id=center_user&isIframe=true
18、
roleSet.jsp ajax 提交

function mysubmit() {
var roleId = $("#rid").val();
var s = GetNode();
//doSubmit("roleController.do?updateAuthority&rolefunctions=" + s + "&roleId=" + roleId);
var obj = new Object();
obj.rolefunctions =s;
obj.roleId =roleId;
//保存
$.ajax({
url : 'roleController.do?updateAuthority', // 請求的action路徑
async : false,
cache : false,
type : 'POST',
dataType:'json',
data:obj,
error : function() {// 請求失敗處理函數
},
success : function(data) {
var d = jq.parseJSON(data);
if (d.success) {
jq.dialog.tips('操作成功', 2);
}
}
});
}

19、查詢加上時間控件

$(document).ready(function(){
//給時間控件加上樣式
//給時間控件加上樣式
$("#contractMainListtb").find("input[name='signDate_begin']").attr(
"class", "Wdate").attr("style", "height:20px;width:90px;")
.click(function() {
WdatePicker( {
dateFmt : 'yyyy-MM-dd'
});
});
$("#contractMainListtb").find("input[name='signDate_end']").attr(
"class", "Wdate").attr("style", "height:20px;width:90px;")
.click(function() {
WdatePicker( {
dateFmt : 'yyyy-MM-dd'
});
});
});

contractMainListtb是datagrid的name值
name='signDate_begin'的signDate是dgCol的field值
修改查詢 HqlGenerateUtil.java
20、導出Excel 問題:
導出是需要配置entity 注解
導出Excel時,查詢中帶漢字的導出時為空,需要修改tomcat 配置文件編碼。
21、jeecg 執行存儲過程

Session session = jeecgJdbcService.getSession();
SQLQuery query = session.createSQLQuery("{Call EXEC_YSKD_ZD("+YSKD01+",'"+GSXX01+"')}");
query.executeUpdate();
session.close();
使用時切換數據源:
// DataSourceContextHolder.setDataSourceType(org.jeecgframework.core.extend.datasource.DataSourceType.dataSource_jinli);
// String sql = "insert into person(id,name) values('002','李四')";
// jeecgJdbcService.executeSql(sql, new Object[]{});
// System.out.println(DataSourceContextHolder.getDataSourceType());
執行帶參數的存儲過程 :
Session session = systemService.getSession();
CallableStatement procCall =
SessionFactoryUtils.getDataSource(session.getSessionFactory()).getConnection().prepareCall("{call GET_BH(?,?,?,?,?,?,?,?)}");
procCall.setString(1, companyNo);
procCall.setBigDecimal(2, new BigDecimal(0));
procCall.setString(3, unitNo);
procCall.setInt(4, 0);

22、tomcat 啟動maven項目
http://wenku.baidu.com/view/36d6d4671eb91a37f1115ca5.html
23、根據id獲取 數據

systemService.getEntity(TSDepart.class,pid)

24.彈出窗口的"確認"與"關閉"那兩個按鈕,代碼放在curdtools.js里面的createwindow方法
25.
jsp頁面里column字標簽擴展
extend="{data-options:{required:false,groupSeparator:\"','\"},class:{value:'easyui-numberbox'}}"
extendJson="{required:'true'}"
extendJson="{disable:'true'}"
26 mysql調用存儲過程實例

package service;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
public class TestMysqlProcedure {
String url = "jdbc:mysql://127.0.0.1:3306/mydate";
String userName = "root";
String password = "root";
public Connection getConnection() {
Connection con=null;
try{
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
con = DriverManager.getConnection(url, this.userName, this.password);
}catch(SQLException sw){
}
return con;
}
//讀取OUT型的存儲過程(計算記錄總數)
public void testProc_Out(){
Connection conn = getConnection();
CallableStatement stmt = null;
try{
//調取OUT型的存儲過程P(計算記錄總數)
stmt = conn.prepareCall("{call p(?)}");
//讀取所有OUT型的存儲過程的返回參數數據
stmt.registerOutParameter(1, Types.INTEGER);
stmt.execute();
int i= stmt.getInt(1);
System.out.println("count = " + i);
}catch(Exception e){
System.out.println("hahad = "+e.toString());
}finally{
try {
stmt.close();
conn.close();
}catch (Exception ex) {
System.out.println("ex : "+ ex.getMessage());
}
}
}
//讀取IN型的存儲過程(條件查詢)
public void testProc_In(){
Connection conn = getConnection();
CallableStatemen
t stmt = null;
ResultSet rs=null;
try{
//調取IN型的存儲過程P2,(條件查詢)
stmt = conn.prepareCall("{call p2(?)}");
//設置IN型的存儲過程參數值
stmt.setInt(1, 3);
//執行語句,並返回值
rs=stmt.executeQuery();
if(rs.next()){
System.out.println("rs ---------- " + rs.getInt(1));
System.out.println("rs ---------- " + rs.getString(2));
}
}catch(Exception e){
System.out.println("hahad --------- "+e.toString());
}finally{
try {
rs.close();
stmt.close();
conn.close();
}catch (Exception ex) {
System.out.println("ex ----------: "+ ex.getMessage());
}
}
}
public static void main(String[] args) {
TestMysqlProcedure tmp=new TestMysqlProcedure();
tmp.testProc_Out();
tmp.testProc_In();
}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM