国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Mybatis實(shí)現(xiàn)增刪改查及分頁(yè)查詢的方法

Mybatis實(shí)現(xiàn)增刪改查及分頁(yè)查詢的方法

2020-03-23 12:31MRR JAVA教程

MyBatis是支持普通SQL查詢,存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持 久層框架,通過(guò)本文給大家介紹Mybatis實(shí)現(xiàn)增刪改查及分頁(yè)查詢的方法,感興趣的朋友一起學(xué)習(xí)吧

MyBatis的前身就是iBatis。是一個(gè)數(shù)據(jù)持久層(ORM)框架。 MyBatis是支持普通SQL查詢,存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持 久層框架。MyBatis消除了幾乎所有的JDBC 代碼和參數(shù)的手工 設(shè)置以及結(jié)果集的檢索。MyBatis使用簡(jiǎn)單的XML或注解用于 配置和原始映射,將接口和Java 的POJOs(Plan Old Java Objects,普通的Java 對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄。每個(gè) MyBatis應(yīng)用程序主要都是使用SqlSessionFactory實(shí)例的,一個(gè) SqlSessionFactory實(shí)例可以通過(guò)SqlSessionFactoryBuilder獲得。

具體代碼如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<!-- give a alias for model -->
<typeAlias alias="goods" type="com.clark.model.Goods"></typeAlias>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@172.30.0.125:1521:oradb01" />
<property name="username" value="settlement" />
<property name="password" value="settlement" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/clark/model/goodsMapper.xml" />
</mappers>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="clark">
<!-- 將db查詢出來(lái)的結(jié)果映射到Model--Goods -->
<resultMap type="com.clark.model.Goods" id="t_good">
<id column="id" property="id"/>
<result column="cate_id" property="cateId"/>
<result column="name" property="name"/>
<result column="price" property="price"/>
<result column="description" property="description"/>
<result column="order_no" property="orderNo"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<!-- 根據(jù)id查詢 返回Goods類型 <typeAlias alias="goods" type="com.clark.model.Goods"></typeAlias>-->
<!--resultMap 和 resultType的使用區(qū)別-->
<select id="selectGoodById" parameterType="int" resultType="goods">
select id,cate_id,name,price,description,order_no,update_time
from goods where id = #{id}
</select>
<!-- 查詢所有Goods 返回resultMap類型-->
<select id="selectAllGoods" resultMap="t_good">
select id,cate_id,name,price,description,order_no,update_time from goods
</select>
<!-- 指定parameterType=map 其中map的形式為Map<String,PageBean> map-->
<select id="selectGoodsByPage" resultMap="t_good" parameterType="map">
<!-- order by id asc是指對(duì)查詢后的結(jié)果進(jìn)行升序排序 -->
<![CDATA[
select * from
(select g.*,rownum rn from (select * from goods) g where 1=1 and rownum <= #{pageBean.endNumber})
where rn >= #{pageBean.startNumber}
order by id asc
]]>
</select>
<!-- 新增Goods 參數(shù)類型為Goods-->
<insert id="insertGood" parameterType="goods">
insert into goods(id,cate_id,name,price,description,order_no,update_time)
values(#{id},#{cateId},#{name},#{price},#{description},#{orderNo},#{updateTime})
</insert>
<!-- 更新Goods 參數(shù)類型為Goods-->
<update id="updateGood" parameterType="goods">
update goods g
set g.name = #{name},g.order_no =#{orderNo}
where g.id = #{id}
</update>
<!-- 刪除Goods 參數(shù)類型為int-->
<delete id="deleteGood" parameterType="int">
delete from goods g
where g.id = #{id}
</delete>
</mapper>
package com.clark.model;
import java.util.Date;
public class Goods {
private Integer id;
private Integer cateId;
private String name;
private double price;
private String description;
private Integer orderNo;
private Date updateTime;
public Goods(){
}
public Goods(Integer id, Integer cateId, String name, double price,
String description, Integer orderNo, Date updateTime) {
super();
this.id = id;
this.cateId = cateId;
this.name = name;
this.price = price;
this.description = description;
this.orderNo = orderNo;
this.updateTime = updateTime;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getCateId() {
return cateId;
}
public void setCateId(Integer cateId) {
this.cateId = cateId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Integer getOrderNo() {
return orderNo;
}
public void setOrderNo(Integer orderNo) {
this.orderNo = orderNo;
}
public Date getTimeStamp() {
return updateTime;
}
public void setTimeStamp(Date updateTime) {
this.updateTime = updateTime;
}
@Override
public String toString() {
return "[goods include:Id="+this.getId()+",name="+this.getName()+
",orderNo="+this.getOrderNo()+",cateId="+this.getCateId()+
",updateTime="+this.getTimeStamp()+"]";
}
}
 
package com.clark.model;
//模擬的一個(gè)分頁(yè)對(duì)象PageBean
public class PageBean {
//開(kāi)始數(shù)
private Integer startNumber;
//結(jié)束數(shù)
private Integer endNumber;
public PageBean(){
}
public PageBean(Integer startNumber, Integer endNumber) {
super();
this.startNumber = startNumber;
this.endNumber = endNumber;
}
public Integer getStartNumber() {
return startNumber;
}
public void setStartNumber(Integer startNumber) {
this.startNumber = startNumber;
}
public Integer getEndNumber() {
return endNumber;
}
public void setEndNumber(Integer endNumber) {
this.endNumber = endNumber;
}
}
package com.clark.mybatis;
import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.clark.model.Goods;
import com.clark.model.PageBean;
public class TestGoods {
public static void main(String[] args) throws IOException {
String resource = "configuration.xml";
Reader reader = null;
SqlSessionFactory sessionFactory = null;
SqlSession session = null;
try {
reader = Resources.getResourceAsReader(resource);
sessionFactory = new SqlSessionFactoryBuilder().build(reader);
session = sessionFactory.openSession();
PageBean pageBean = new PageBean(8, 20);
Map<String,PageBean> map = new HashMap<String, PageBean>();
map.put("pageBean", pageBean);
List<Goods> gs = findGoodsByPage(session,map);
for (Goods goods2 : gs) {
System.out.println(goods2.toString());
}
} catch (IOException e) {
e.printStackTrace();
}finally{
session.close();
reader.close();
}
}
//find by id
public static Goods findGoodById(SqlSession session,Integer id){
//clark對(duì)應(yīng)著goodMapper.xml配置文件中的namespace name="clark"
Goods goods = (Goods)session.selectOne("clark.selectGoodById", id);
return goods;
}
//find all
public static List<Goods> findAllGoods(SqlSession session){
List<Goods> goods = session.selectList("clark.selectAllGoods");
return goods;
}
public static List<Goods> findGoodsByPage(SqlSession session,Map<String,PageBean> map){
List<Goods> goods = session.selectList("clark.selectGoodsByPage",map);
return goods;
}
//insert a goods
public static int insertGoods(SqlSession session,Goods goods){
int result = session.insert("clark.insertGood", goods);
session.commit();
return result;
}
//update goods
public static int updateGoods(SqlSession session,Goods goods){
int result = session.update("clark.updateGood", goods);
session.commit();
return result;
}
//delete goods
public static int deleteGood(SqlSession session,Integer id){
int result = session.delete("clark.deleteGood", id);
session.commit();
return result;
}
}

關(guān)于Mybatis實(shí)現(xiàn)增刪改查及分頁(yè)查詢的方法的相關(guān)知識(shí),就給大家介紹到這里,后續(xù)還會(huì)持續(xù)給大家更新,謝謝大家一直以來(lái)對(duì)服務(wù)器之家網(wǎng)站的支持。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧洲精品码一区二区三区免费看 | 国产精品久久精品 | 中文字幕视频在线观看 | 亚洲精品黄色 | av中文在线 | 成人午夜精品 | 欧美综合网| 黄色av影院| 久久高清| 久草久 | 欧美精品久久一区 | 亚洲精品wwww| 性做久久久 | 狠狠久久综合 | 国产欧美成人 | 亚洲国产美女视频 | 日韩欧美三级在线观看 | 免费看的毛片 | 国产欧美日韩在线观看 | 国产精品剧情一区二区三区 | 久久亚洲欧美日韩精品专区 | 国产视频一区二区 | 国产精品久久久久久久久久久久久 | 欧美综合久久 | 日本狠狠干 | 国产伦精品一区二区三区高清 | 性色av香蕉一区二区 | 噜噜噜噜狠狠狠7777视频 | 国产精品视频入口 | 欧美日韩电影一区二区 | 免费视频一区二区 | 在线观看国产成人av片 | 午夜午夜精品一区二区三区文 | 91黄在线观看 | 亚洲国产一级 | 精品免费 | 欧美视频成人 | 成人欧美一区二区三区色青冈 | 91精品国产综合久久精品 | 在线免费黄色网址 | 韩日av在线免费观看 |