表單提交資料以及後臺儲存小結
//ajax的post方式提交表單 //$("form").serialize()將表單序列號為key-value的形式的字串 //(這裡注意,在form之中的input裡需要增加 name) $.post("/item/save",$("form").serialize(),function(data)){ }2,可以將這裡的key-value的形式轉化為json串形式
function formToJson(formObj){
var o={};
var a=formObj.serializeArray();
$.each(a, function() { if(this.value){
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name]=[ o[this.name] ];
}
o[this.name].push(this.value || null);
}else {
if($("[name='"+this.name+"']:checkbox",formObj).length){
o[this.name]=[this.value];
}else{
o[this.name]=this.value || null;
}
}
}
});
return JSON.stringify(o);
};
通過逆向工程生成:
generatorConfig.xml(使用方式見標黃處)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><!-- 配置Run As Maven build : Goals 引數 : mybatis-generator:generate -Dmybatis.generator.overwrite=true -->
<!-- 配置 tableName,使用 Run As Maven build 生成 dao model 層 -->
<generatorConfiguration>
<!-- 配置檔案路徑 -->
<properties url="${mybatis.generator.generatorConfig.properties}"/><!--資料庫驅動包路徑 -->
<classPathEntry location="${drive.class.path}"/><context id="DB2Tables" targetRuntime="MyBatis3">
<!--關閉註釋 -->
<commentGenerator>
<property name="suppressAllComments" value="true"/>
</commentGenerator><!--資料庫連線資訊 -->
<jdbcConnection driverClass="${jdbc.driver}" connectionURL="${jdbc.url}" userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection><!--生成的model 包路徑 -->
<javaModelGenerator targetPackage="${model.package}" targetProject="${target.project}">
<property name="enableSubPackages" value="ture"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator><!--生成xml mapper檔案 路徑 -->
<sqlMapGenerator targetPackage="${xml.mapper.package}" targetProject="${target.project}">
<property name="enableSubPackages" value="ture"/>
</sqlMapGenerator><!-- 生成的Dao介面 的包路徑 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="${dao.package}" targetProject="${target.project}">
<property name="enableSubPackages" value="ture"/>
</javaClientGenerator><!--對應資料庫表名 -->
<!-- schema即為資料庫名 tableName為對應的資料庫表 domainObjectName是要生成的實體類 enable*ByExample
是否生成 example類 -->
<!-- <table schema="${jdbc.schema}" tableName="director_task"
domainObjectName="DirectorTask" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="task"
domainObjectName="Task" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="regular"
domainObjectName="Regular" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="issue_member"
domainObjectName="IssueMember" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="consultant"
domainObjectName="Consultant" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="doctor"
domainObjectName="Doctor" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="member"
domainObjectName="Member" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="consultant_doctor_relative"
domainObjectName="ConsultantDoctorRelative" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="contract_information"
domainObjectName="ContractInformation" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="right_info"
domainObjectName="RightInfo" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="role_info"
domainObjectName="RoleInfo" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="role_right"
domainObjectName="RoleRight" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="user_role"
domainObjectName="UserRole" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
<table schema="${jdbc.schema}" tableName="issue_member"
domainObjectName="IssueMember" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
-->
<table schema="${jdbc.schema}" tableName="user_list"
domainObjectName="UserList" enableCountByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
enableUpdateByExample="true">
</table>
</context>
</generatorConfiguration>
generatorConfig.properties
# 資料庫驅動jar 路徑
drive.class.path=C:\\Users\\lmk\\.m2\\repository\\mysql\\mysql-connector-java\\5.1.30\\mysql-connector-java-5.1.30.jar# 資料庫連線引數
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://?useUnicode=true&characterEncoding=utf-8
jdbc.username=
jdbc.password=
jdbc.schema=HealthControlSystem# 包路徑配置
model.package=cn.edu.bupt.springmvc.web.model.zunzun
dao.package=cn.edu.bupt.springmvc.web.dao.zunzun
xml.mapper.package=cn.edu.bupt.springmvc.web.dao.zunzuntarget.project=src/main/java
2,Service層
定義service介面(interface下的方法不加以實現,連{}也沒有)
實現類impl(implement)
實現邏輯主要是以下兩種:
接受或者new 目標物件,物件屬性(get set方式)
呼叫Mapper的insert方法插入資料。
在service層中關於呼叫mapper類的方法,有一類方法:XXXByExammpleWithBLOBs(example)
//根據cid查詢規格引數模板
TbItemParamExample example = new TbItemParamExample(); //new 一個
Criteria criteria = example.createCriteria();
criteria.andItemCatIdEqualTo(cid);
//判斷是否查詢到結果
if (list != null&&list.size() > 0) {
TbItemParam itemParam = list.get(0); // get(0)
return TaotaoResult.ok(itemParam);
}
3,Controller層
主要的實現邏輯:
指定method的post或者get方法以及請求的路徑
呼叫service進行資料的CRUD
@PathVariable
@ResponseBody
@RequestMapping
@Controller
@Autowired(用@resource代替)
4,涉及的json與java知識
//json資料A轉換成java物件
List<Map>mapList = JsonUtils.jsonToList(A, Map.class);
String json = JsonUtils.objectToJson(result);
//java處理
sb = new StringBUffer()物件.append()
map.get("XXX")方式取得
return sb.toString()
//List的使用
ListresultList = new ArrayList<>();
resultList.add();
//判空
StringUtils.isBlank(callback);
三、Js跨域
跨域的定義:
1、如果兩個url的域名不同
2、Url相同,埠不同也是跨域
3、Ip不同也是跨域
可以使用jsonp解決跨域的問題。
1、在js中不能跨域請求資料,js可以跨域請求js片段。
2、可以把資料包裝成js片段。可以把資料使用js方法來包裝,形成一條方法的呼叫語句。
3、可以使用ajax請求js片段,當js判斷到達瀏覽器會被立即執行。
4、在瀏覽器端,先建立好回撥方法,在回撥方法中通過引數可以獲得請求的資料。
1,前期準備:
1、需要把js的回撥方法先寫好。
2、做ajax請求時,需要把回撥方法的方法名傳遞給服務端。
服務端接收回調方法名,把資料包裝好,響應給客戶端。
跨域,沒實現過,不好寫。。