尚硅谷张晓飞Word文件下载.docx
- 文档编号:15972941
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:18
- 大小:30.57KB
尚硅谷张晓飞Word文件下载.docx
《尚硅谷张晓飞Word文件下载.docx》由会员分享,可在线阅读,更多相关《尚硅谷张晓飞Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
xmlversion="
"
encoding="
UTF-8"
>
VDOCTYPEconfigurationPUBLIC"
-
2.4.
2.5.
2.6.
2.7.
uild(reader);
electUser"
;
操作users表的CRUD
.XML的实现
1).定义sql映射xml文件:
insertid="
insertUser"
parameterType="
insertintousers(name,age)values(#{name},#{age});
/insert>
deleteid="
deleteUser"
int"
deletefromuserswhereid=#{id}
/delete>
updateid="
updateUser"
updateuserssetname=#{name},age=#{age}whereid=#{id}<
/update>
selectid="
selectUser"
resultType="
select*fromuserswhereid=#{id}
/select>
selectAIIUsers"
select*fromusers
2).在中注册这个映射文件
mapperresource="
com/atguigu/ibatis/bean/"
/>
3).在dao中调用:
publicUsergetUserByld(intid){SqlSessionsession=();
Useruser=(URI+"
.selectUser"
id);
returnuser;
}
注解的实现
1).定义sql映射的接口
publicinterfaceUserMapper{
@lnsert("
insertintousers(name,age)values(#{name},#{age})"
)publicintinsertUser(Useruser);
@Delete("
deletefromuserswhereid=#{id}"
)
publicintdeleteUserByld(intid);
@Update("
updateuserssetname=#{name},age=#{age}whereid=#{id}"
)publicintupdateUser(Useruser);
@Select("
select*fromuserswhereid=#{id}"
publicUsergetUserById(intid);
select*fromusers"
publicList<
User>
getAIIUser();
2).在config中注册这个映射接口
mapperclass="
3).在dao类中调用
publicUsergetUserById(intid){
SqlSessionsession=();
UserMappermapper=;
Useruser=(id);
returnuser;
4.几个可以优化的地方
连接数据库的配置单独放在一个properties文件中
##
{propertiesresource="
vpropertyname="
driver"
value="
${driver}"
/>
{propertyname="
url"
${url}"
propertyname="
username"
${username}"
{propertyname="
password"
${password}"
为实体类定义别名,简化sql映射xml文件中的引用
typeAliases>
vtypeAliastype="
alias="
_User"
/typeAliases>
可以在src下加入log4j的配置文件,打印日志信息
1.添加jar:
(方式一)
=DEBUG,Console
#Console
[%t]%-5p[%c]-%m%n
(方式二)
?
VDOCTYPEIog4j:
configurationSYSTEM"
<
log4j:
configurationxmlns:
log4j="
appendername="
STDOUT"
class="
vlayoutclass="
vparamname="
ConversionPattern"
value="
%-5p%d{MM-ddHH:
mm:
ss,SSS}%m(%F:
%L)\n"
/layout>
v/appender>
vloggername="
levelvalue="
debug"
/logger>
vlevelvalue="
root>
vappender-refref="
/root>
/log4j:
configuration>
5.解决字段名与实体类属性名不相同的冲突
准备表和数据:
CREATETABLEorders(
order_idINTPRIMARYKEYAUTO_INCREMENT,order_noVARCHAR(20),order_priceFLOAT
);
INSERTINTOorders(order_no,order_price)VALUES('
aaaa'
23);
bbbb'
33);
INSERTINTOorders(orderno,orderprice)VALUES('
cccc'
22);
定义实体类:
publicclassOrder{
privateintid;
privateStringorderNo;
privatefloatprice;
实现getOrderById(id)的查询:
方式一:
通过在sql语句中定义别名
vselectid="
selectOrder"
_Order"
selectorder_idid,order_noorderNo,order_pricepricefromorderswhere
orderid=#{id}
parameterType="
方式二:
通过<
resultMap>
selectOrderResultMap"
resultMap="
orderResultMap"
select*fromorderswhereorder_id=#{id}<
resultMaptype="
id="
idproperty="
id"
column="
order_id"
resultproperty="
orderNo"
order_no"
price"
order_price"
/resultMap>
6.实现关联表查询
一对一关联
1).提出需求
根据班级id查询班级信息(带老师的信息)
2).创建表和数据
CREATETABLEteacher(
t_idINTPRIMARYKEYAUTO_INCREMENT,
t_nameVARCHAR(20)
CREATETABLEclass(
c_idINTPRIMARYKEYAUTO_INCREMENT,
c_nameVARCHAR(20),teacher_idINT
ALTERTABLEclassADDCONSTRAINT_teacher_idFOREIGNKEY(teacher_id)teacher(t_id);
INSERTINTOteacher(t_name)VALUES('
LS1'
INSERTINTOteacher(tname)VALUES('
LS2'
INSERTINTOclass(c_name,teacher_id)VALUES('
bj_a'
1);
bj_b'
2);
3).定义实体类:
publicclassTeacher{
privateStringname;
publicclassClasses{
privateTeacherteacher;
4).定义sql映射文件
!
--
嵌套结果:
使用嵌套结果映射来处理重复的联合结果的子集封装联表查询的数据(去除重复的数据)
select*fromclassc,teachertwhere=and=1
-->
getClass"
resultMap="
ClassResultMap"
select*fromclassc,teachertwhere
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硅谷 张晓飞