1. 程式人生 > >ssh與mysql基礎知識

ssh與mysql基礎知識

any 模板 登錄驗證 什麽是 關於 ksh apach efi utf

saveorupdate()如果傳入的對象在數據庫中有就做update操作,如果沒有就做save操作。
save()在數據庫中生成一條記錄,如果數據庫中有,會報錯說有重復的記錄。
update()就是更新數據庫中的記錄
主鍵在saveorupdate()方法中是起著關鍵作用的,只有這個主鍵的值不為空的時候才進行insert還是update的判斷,否則直接insert
若主鍵不為空,就可以進行saveorupdate()操作了。
save是返回插入數據的主見的,而saveOrUpdate是void
save方法更適用於確定了是要插入,而且需要得到插入數據的主鍵
而saveOrUpdate更傾向於不缺定是插入還是更新,而且你不需要得到他的主鍵
另一方面,如果你無法確定你要插入或更新的對象是不是持久態或遊離態時。如果你save一個持久態或更新一個遊離態,這都是有問題的,此時搜索你就要用到saveOrUpdate
總體來說,如果你能確定你即將操作對象的狀態,則不需要用saveOrUpdate

7.Hibante用的樣板

8.Hibernate的模糊查詢

9.
mysql數據庫可以存圖片嗎?

破碎這是事實 | 瀏覽 2820 次

發布於2016-06-08 20:38  最佳答案

可以。存圖片的列需要設置成BLOB、MEDIUMBLOB或LONGBLOB等數據類型。

但是以前基本上不會把圖片直接存在數據庫裏,因為數據庫裏的數據是為了用來快速分析、快速存取的,圖片數搜索據在mysql裏既不能建立索引也不能和其他數據一起分析,存取速度和讀寫磁盤也沒什麽區別,每次備份、導入導出數據庫時還增加了數據量,降低了效率。所以一般都是把圖片存在系統裏,然後把圖片的存放路徑放在數據庫裏。


this.getHibernateTemplate().find("from bean.User u
where u.name like ?", "%test%");

10.

//修改作用 數據庫添加新字段
ALTER TABLE FarmersStoreGoods ADD ProductUnivalentMax FLOAT;
、、添加

ALTER TABLE FarmersStoreGoods ADD Processor VARCHAR(20);

6.1.修改某個表的字段類型及指定為空或非空
>alter table 表名稱 change 字段名稱 字段名稱 字段類型 [是否允許非空];
刪除字段:

alter table `user_movement_log` drop column Gatewayid


//修改
UPDATE farmersstoregoods SET figureName = ‘haha‘ WHERE fid=44;
com.nmfz.app.manager.impl.LogisticsManHeft warehouseMan


11
//foreach的運用


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<c:forEach items="${aa}" var="a">
<p>${a.companyHuman}</p>
</c:forEach>

12
//hibnate解決亂碼
jdbc:mysql://localhost:3306/biao1?useUnicode=true&amp;characterEncoding=UTF-8

13
6.1.修改某個表的字段類型及指定為空或非空
>alter table 表名稱 change 字段名稱 字段名稱 字段類型 [是否允許非空];

14
saveorupdate()如果傳入的對象在數據庫中有就做update操作,如果沒有就做save操作。
save()在數據庫中生成一條記錄,如果數據庫中有,會報錯說有重復的記錄。
update()就是更新數據庫中的記錄
主鍵在saveorupdate()方法中是起著關鍵作用的,只有這個主鍵的值不為空的時候才進行insert還是update的判斷,否則直接insert
若主鍵不為空,就可以進行saveorupdate()操作了。
save是返回插入數據的主見的,而saveOrUpdate是void
save方法更適用於確定了是要插入,而且需要得到插入數據的主鍵
而saveOrUpdate更傾向於不缺定是插入還是更新,而且你不需要得到他的主鍵
另一方面,如果你無法確定你要插入或更新的對象是不是持久態或遊離態時。如果你save一個持久態或更新一個遊離態,這都是有問題的,此時搜索你就要用到saveOrUpdate
總體來說,如果你能確定你即將操作對象的狀態,則不需要用saveOrUpdate


15
Hibernate的模板查詢寫法
http://www.cnblogs.com/JemBai/archive/2011/01/17/1937409.html
大概的刪除,修改
http://blog.csdn.net/tianxiezuomaikong/article/details/53021895


17
//通過<script>獲得<td>裏<buttion>所對應的值(values="")

<SCRIPT LANGUAGE="JavaScript">
function sub(btn){
var tds = btn.parentElement.parentElement.children;
var td = (tds[1]).innerHTML;
alert("測試是否獲取到本行第一個表格的值: " + td);
var a=1;
$.ajax({
async: false,
type: "post",
data:"m_s_no="+td,
url: "<%=path%>/smallTowns_sp/skipPage.action",
success: function(data){
alert(td);
$("#ckshow")[0].innerHTML=data;
}

});

}
<td>
<input type=‘button‘ name=‘btn‘ onclick="javascript:sub(this);" value="遞 交">
</td>

//點擊<onclick>通過window事件進入相對空間


//hibnate所有方法
https://zhidao.baidu.com/question/328004060874001125.html?fr=iks&word=bulk+Update%28String+queryString%2CObject+value%29%BA%CDbulk+update%28String%29%D3%C3%B7%A8&ie=gbk
//hibnate的hsq用法
http://blog.csdn.net/yu422560654/article/details/7741778
刪除
//this.getHibernateTemplate().bulkUpdate(yujv);
System.out.println(HQL);
//int ii= getHibernateTemplate().bulkUpdate("delete from farmersstoregoods where fid=?", fid);

-1.requst接受前臺值
HttpServletRequest request=ServletActionContext.getRequest();
String figureName_id=(String)request.getParameter("figureName_id");
System.out.println(figureName_id);
<value>com/nmfz/app/model/supbackgman/ProductStore.hbm.xml</value>
<value>com/nmfz/app/model/supbackgman/ProductShelves.hbm.xml</value>
<value>com/nmfz/app/model/supHeft/LogisticsParcel.hbm.xml</value>
<value>com/nmfz/app/model/supHeft/LogisticsCompany.hbm.xml</value>
<%=path%>/townshipManagement_sp/fuzzyquery.action
0。ajax接受<input>的id的值
村長姓名: <input type="text" id="figureName" />
var aa = document.getElementById(‘figureName‘).value;


1。獲取<td>裏面的id
var aa=document.getElementById("***").innerText;//td裏只有字符的時候
2。mysql大全
http://www.cnblogs.com/yunf/archive/2011/04/12/2013448.html
3。mysql刪除表中的某個列
ALTER TABLE 表名 DROP COLUMN 列名;


4//<button>根據id方法produceviaNo()傳值,在()裏可以寫值
<button onclick="produceviaNo(${p.fid})">不通過</button>

5//鄉級審核不通過 ${p.address}
function produceviaNo(fid){
var a=1;
alert("審核不通過");
$.ajax({
async: false,
type: "post",
data:"m_s_no="+a,
url: "<%=path%>/townshipManagementHuang_sp/auditNoXm.action?fid="+fid,
success: function(data){
alert("123");
$("#content")[0].innerHTML=data;
}
6//disabled="true "此果文字會變成灰色,不可編輯。

readOnly="true" 文字不會變色,也是不可編輯的

7.只顯示input下邊框
<input style="border-left-width:0px">設置左邊框寬度為0<br><hr>

8.使用ajax實現form表單提交數據
<form action="<%=path%>/smallTowns_sp/jiade.action" id="confirmationTask">
<button onclick="confirmationTask(‘confirmationTask‘)">確認接收</button><br>
其中 confirmationTask 是function後面的名字


1.ajax中獲取《form》中input id的值
var v = $("#address").val();

--------------------------------------------------------------------------------------------------------------------------


總結ssh增刪改
(一)增加
1:form表單
<form id="tianjiaid" method="post">
鄉鎮:<input type="text" name="smalltowns.Smalltownsname"><br>
鄉鎮:<input type="text" name="smalltowns.Attribute"><br>
<button onclick="tianjiaa(tianjiaid)">添加</button>
</form>

2:js
function tianjiaa(){
alert("進入保存ajax的添加");
var a=1;
$.ajax({
async: false,
type: "post",
data:$(‘#tianjiaid‘).serialize(),
url: "<%=path%>/smallTowns_sp/tianjiakaishi.action",
success: function(data){
alert("123");
$("#reviseview")[0].innerHTML=data;
}

});
}

3:action
public String tianjiakaishi(){
System.out.println("得呆滯");
System.out.println(smalltowns.getSmalltownsname());
System.out.println(smalltowns.getAttribute());
//villageOperationManager.addGoods(goods);
smallTownsManager.tianjia(smalltowns);
return "tianjiakaishiok";
}
4:接口
public void tianjia(Smalltowns smalltowns);
5:接口實現類
@Override
public void tianjia(Smalltowns smalltowns) {
// TODO Auto-generated method stub
System.out.println("產品添加");
System.out.println(smalltowns.getSmalltownsname());
System.out.println(smalltowns.getAttribute());
this.getHibernateTemplate().save(smalltowns);
System.out.println("ede1");
System.out.println(this.getHibernateTemplate().save(smalltowns));
}


(二)修改 1:jsp頁面
<form method="post" id="selectForm">
<h4 align="center">鄉鎮簡介</h4>
<c:forEach items="${pm.list}" var="p">
<p>id:<b><input type="text" value=${p[0].id } id="fid" name="smalltowns.id"></b></p>
<p>歡迎:<b><input type="text" value=${p[0].smalltownsname} id="smalltownsname" name="smalltowns.Smalltownsname"></b>(鄉)鎮登錄</p>
</c:forEach>
<button onclick="modifySave(selectForm)">修改</button>
</form>


2:ajax
//修改js
function modifySave(){
var a=1;
$.ajax({
async: false,
type: "post",
//data: {"fid":fid,"smalltownsname":smalltownsname,"attribute":attribute,"identifier":identifier},
data:$(‘#selectForm‘).serialize(),
url: "<%=path%>/smallTowns_sp/modifySaveXm.action",
success: function(data){
alert("123");
$("#reviseview")[0].innerHTML=data;
}

});
}


3:action()
public String modifySaveXmAc(){
System.out.println("得到值1");
System.out.println(smalltowns.getId());
System.out.println("得到值2");
System.out.println(smalltowns.getSmalltownsname());
smallTownsManager.modifySave(smalltowns);
return "modifySaveXmAcok";
}


4:接口
public void modifySave(Smalltowns smalltowns);

5:接口實現類
@Override
public void modifySave(Smalltowns smalltowns) {
// TODO Auto-generated method stub
System.out.println("進入修改impl");
Query query=this.getSession().createQuery("update Smalltowns s set s.Smalltownsname=? where s.id=?")
.setParameter(0, smalltowns.getSmalltownsname()).setParameter(1, smalltowns.getId());
query.executeUpdate();
System.out.println("修改完成");

}
(三)刪除
(1)jsp略
(2)ajax略
(3)xml略
(4)action
public String shanchu(){
//int id=Integer.parseInt(ServletActionContext.getRequest().getParameter("id"));
int id=7;
smallTownsManager.shanchu(id);
return "shanchuok";
}

(5)接口
public void shanchu(int id);
(6)接口實現類
@Override
public void shanchu(int id) {
// TODO Auto-generated method stub
System.out.println("刪除產品");
Session s=this.getSession();
s.beginTransaction();
List<Smalltowns> list=(List<Smalltowns>)s.createQuery("select g from Smalltowns g where g.id="+id).list();
Smalltowns sm=list.get(0);
s.delete(sm);
s.getTransaction().commit();

}

(四)查詢
(一)單表
(1)接口實現類
@Override
public PagerModel smallTownsAuditing(int offset, int pagesize) {
// TODO Auto-generated method stub
System.out.println("進入");
String hql="select s from Shenhe s";
System.out.println("hql------");
return this.searchPaginated(hql, offset, pagesize);
}
(2)接口
public PagerModel smallTownsAuditing(int offset,int pagesize);

(3)action
public String smallTownsAuditingAc(){
System.out.println("產品查詢審核跳轉");
int offset = 0;
try {
offset = Integer.parseInt(ServletActionContext.getRequest()
.getParameter("pager.offset"));
} catch (RuntimeException e) {
System.out.println("異常");
}
int pagesize = 10;
System.out.println(" 火1");
pm = smallTownsManager.smallTownsAuditing(offset, pagesize);
System.out.println(" 火2");
ServletActionContext.getRequest().setAttribute("pmm", pm);
System.out.println(" 火3");
return "smallTownsAuditingAcok";
}

(4)jsp略
(5)ajax略
(6)xml空間略


(二)多表
(1)@Override
public PagerModel indicationSmallTowns(int offset, int pagesize) {
// TODO Auto-generated method stub
System.out.println("進入首頁鄉鎮顯示的imp");
String hql="select s,sm,s.Smalltownsname from Smalltowns s,Smalltownsabstract sm where s.sid=sm.sid and s.id=1";
System.out.println("hql------");
return this.searchPaginated(hql, offset, pagesize);
}
註意:前臺顯示時:
第一個表用${p[0].identifier },第二個顯示用${p[1].屬性 }
(2)(3)(4)(5)(6)類似


(五)登錄驗證
(1)Action
int i=smallTownsManager.yanzheng(smalltownspsw);
System.out.println(i);
if(i==1){
return "pageJumpacok";
}
else{return "";}
}
(2)impi
String[] b=new String[]{smalltownspsw.getUsersName(),smalltownspsw.getUsersPassword()};
List a=super.getHibernateTemplate()
.find("from Smalltownspsw t WHERE t.usersName=? and usersPassword=?"
,b);
if(a.size()>0){
System.out.println("登錄");
return 1;
}else{

System.out.println("錯誤");
return 0;
}
(3)接口
public int yanzheng(Smalltownspsw smalltownspsw);
(六)根據id查詢值
類似上面,註意:
(1)接口
public PagerModel xiangxirealize(int offset, int pagesize,String sid);
(2)Action
public String xiangqing(){
System.out.println(1);


HttpServletRequest request=ServletActionContext.getRequest();
String sid=(String)request.getParameter("id");
System.out.println("sid值為"+sid);
int offset = 0;
try {
offset = Integer.parseInt(ServletActionContext.getRequest()
.getParameter("pager.offset"));
} catch (RuntimeException e) {
System.out.println("異常");
}
int pagesize = 10;
System.out.println(" 火1");
pm = smallTownsManager.xiangxirealize(offset, pagesize,sid);
System.out.println(" 火2");
ServletActionContext.getRequest().setAttribute("pm", pm);
System.out.println(" 火3");
return "xiangqingok";
}
(3)impI
@Override
public PagerModel xiangxirealize(int offset, int pagesize,String sid) {
System.out.println("詳細信息");
System.out.println("鄉鎮點擊接收任務,查詢顯示的impI");
String hql="from Goods a where a.id="+sid;
return this.searchPaginated(hql, offset, pagesize);

}


(六)條件查詢
(1)jsp:
<form action="<%=path%>/smallTowns_sp/conditionSelect.action" method="post" id="conditionId" >
供貨人身份證:<input type="text" id="address" name="warehouseproduct.figureName" />
<button onclick="condition(‘conditionId‘)">查詢</button>
</form>
(2)js
function condition(){
alert("條件查詢456");
var v = $("#address").val();
alert(v);
var a=1;
$.ajax({
async: false,
type: "post",
data:"v="+v,
url: "<%=path%>/smallTowns_sp/conditionSelect.action",
success: function(data){
alert("456");
$("#view")[0].innerHTML=data;
}

});
}

(3)action
//條件查詢功能 conditionSelectAc
public String conditionSelectAc(){
int rid=Integer.parseInt(ServletActionContext.getRequest().getSession().getAttribute ("rid").toString());
System.out.println("進入條件查詢action");
HttpServletRequest request=ServletActionContext.getRequest();
String aa=(String)request.getParameter("v");
System.out.println("值");
System.out.println(rid);
int offset = 0;
try {
offset = Integer.parseInt(ServletActionContext.getRequest()
.getParameter("pager.offset"));
} catch (RuntimeException e) {
System.out.println("異常");
}
int pagesize = 10;
System.out.println(" 火1");
pm = smallTownsManager.conditionalInterface(offset, pagesize,aa);
System.out.println(" 火2");
ServletActionContext.getRequest().setAttribute("pm", pm);
System.out.println(" 火3");
return "conditionSelectAcok";
}

(4)
/**
* 條件查詢,查詢村級商品
* */
@Override
public PagerModel conditionalInterface(int offset, int pagesize ,String aa) {
System.out.println("進入impl");
String hql = "from Goods g where g.sfzheng like :sfzheng";
String countHql = "select count(*) " + hql;
Query query = this.getSession().createQuery(countHql);
query = query.setParameter("sfzheng", "%"+aa+"%");
int total = ((Long)query.uniqueResult()).intValue();
query = this.getSession().createQuery(hql);
query = query.setParameter("sfzheng", "%"+aa+"%");
query.setFirstResult(offset);//設置查詢返回記錄的開始位置
query.setMaxResults(pagesize);//返回記錄每頁顯示的條數上限
List<?> list = query.list();
PagerModel pm = new PagerModel();
pm.setList(list);
pm.setTotal(total);
return pm;

}

--------------------------------------------------------------------------------------------------------------------------
(1)eclipse安裝svn的教程:
http://jingyan.baidu.com/article/63f236280a37680208ab3db7.html


(2)前臺css的圖片相對路徑加載
background: url(../../img/hcfimg/bg1.png) no-repeat center center fixed;
第一個../ 是項目名字
第二個../是WebContent文件夾

--------------------------------------------------------------------------------------------------------------------------
http://blog.csdn.net/seng3018/article/details/6824905
這個路徑是ssh中:
如何訪問數據庫?我們有兩個選擇:
getSession().createQuery("from Users");
getHibernateTemplate().find( "FROM Users);

--------------------------------------------------------------------------------------------------------------------------
http://www.cnblogs.com/tuhooo/p/6491906.html
ssh的整合簡介

--------------------------------------------------------------------------------------------------------------------------
http://blog.csdn.net/key0323/article/details/50773499
struts的簡單配置網址,初級很實用
自己總結struts框架簡單搭建步驟
1:首先修改web.xml文件,加載
<filter-name >struts2 </filter-name >
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</ filter>
< filter-mapping>
<filter-name >struts2 </filter-name >
<url-pattern >/* </url-pattern >
</ filter-mapping></span>
通過這段代碼進入struts.xml
2.然後通過struts.xml進入action,
01.<span style="font-size:18px;"><struts>
02. <package name ="welcomePackage" extends="struts-default">
03. <action name ="first">
04. <result >/first.jsp </result >
05. </action >
06. </package >
07.</struts></span>
註意:<action>標簽裏寫的是action的名字
<result>標簽裏寫的是處理過後返回的頁面,這裏沒有寫result的name屬性,默認為success也就是處理成功返回的頁面,關於Action中自帶的5中狀態,這裏不再多講。

--------------------------------------------------------------------------------------------------------------------------
String hql="select g,c.cname from Goods g,Category c where c.id=g.cid";
前臺接收時,如果想要接收c.cname
用${p[1]},而不是${[1].cname}等什麽的


--------------------------------------------------------------------------------------------------------------------------通過onclick的點擊進入ajax或js事件得到<td>裏面的值,放入ajax,js中
onclick="xiangqing(${p[0].id })
//詳細信息xiangqing
function xiangqing(id){
alert(id);
alert("詳細信息");
//var v = $("#address").val();
var vv=$("#sid").val();
alert(vv);
var v=document.getElementById("sid").innerText;
alert(v);
var a=1;
$.ajax({
async: false,
type: "post",
data:"a="+a,
url: "<%=path%>/smallTowns_sp/xiangqing.action?id="+id,
success: function(data){
alert("123");
$("#view")[0].innerHTML=data;
}

});
}
--------------------------------------------------------------------------------------------------------------------------(1)data傳值
data:{"v":v,"v1":v1},

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

(1)B/S與C/S大致區別
https://jingyan.baidu.com/article/b0b63dbfc9a2874a483070c0.html

(2)
J2EE 動態網站
J2SE java核心基礎 CS端
J2ME 手機java端
(3)service和dao層作用
http://blog.csdn.net/Ani521smile/article/details/51460382
(4)

(1)
String b= ServletActionContext.getRequest().getSession().getAttribute("rid").toString();

(2)
從他們的返回類型基本可以看出它們之間的區別
execute返回boolean類型,查詢結果是resultset且有值則返回true,其他都返回false
executeQuery返回結果集ResultSet。主要針對查詢語句,返回查詢結果
executeUpdate返回int類型。更新、刪除等操作影響的數目

(3)連接本機
--------------------------------------------------------------------------------------------------------------------------
(1)
js的encodeURI() 函數運用
http://www.w3school.com.cn/jsref/jsref_encodeuri.asp
(2)json基本教程演示,json菜鳥教程
http://www.runoob.com/json/json-syntax.html
(3):json轉換
http://ouapi.com/tool/json
-------------------------------------------------------------------------------------------------------------------------
hbm.xml中的name是實體類裏面的值
<property name="yh_id" type="int"></property>
-------------------------------------------------------------------------------------------------------------------------網絡學習2017/8/14
(1)什麽是EJB,服務器集群,都是幹嘛的?
黃超凡總結:EJB就是在本機依靠RMI進行通信,調用寫在服務器的類。
服務器集群,就是一個軟件的幾個類調用多個服務器中的類,分擔主服務器壓力。
(2)如何給文件夾加密,方法(1),通過右鍵然後有個添加密碼

ssh與mysql基礎知識