service,dao,serviceimpl,map,以及mapper文件中的配置

只是指我学习的视频中,老师编写代码的顺序

顺序是:编写实体entity,编写service,里面是一些方法的名称,没有实现的代码。然后将service里面的代码复制到dao中,没错,就是复制粘贴过去。接着在serviceImpl中实现service接口,在实现的方法里调用dao里面的方法。最后配置map文件,在map配置里标签里的ID就是dao方法里的函数名,在标签里写好方法实现

#{}:可以以任意的名字获取参数值

什么是C3p0配置数据源?
就是数据库连接所需要配置的一些参数,驱动,用户名,密码等等

在来说说mapper里面要配置 的一些标签:<insert,<delete )等等,以及所需要配置的元素!

这是博客代码

<?xml version="1.0" encoding="UTF-8" ?>   
<!DOCTYPE mapper   
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"  
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> 

<!-- mapper 为根元素节点, 一个namespace对应一个dao -->
<mapper namespace="com.dy.dao.UserDao">

    <insert
      <!-- 1. id (必须配置)
        id是命名空间中的唯一标识符,可被用来代表这条语句。 
        一个命名空间(namespace) 对应一个dao接口, 
        这个id也应该对应dao里面的某个方法(相当于方法的实现),因此id 应该与方法名一致 -->
      
      id="insertUser"
      
      <!-- 2. parameterType (可选配置, 默认为mybatis自动选择处理)
        将要传入语句的参数的完全限定类名或别名, 如果不配置,mybatis会通过ParameterHandler 根据参数类型默认选择合适的typeHandler进行处理
        parameterType 主要指定参数类型,可以是int, short, long, string等类型,也可以是复杂类型(如对象) -->
      
      parameterType="com.demo.User"

这是实战代码:

<mapper namespace="com.ischoolbar.programmer.dao.admin.UserDao">
	<!-- 根据用户名查找用户 -->
	<select id="findByUsername" parameterType="String" resultType="User">
		select * from user where username = #{username}
	</select>
	<!-- 添加用户 -->
	<insert id="add" parameterType="User">
		insert into user(id,username,password,roleId,photo,sex,age,address) values(null,#{username},#{password},#{roleId},#{photo},#{sex},#{age},#{address})
	</insert>
	<!-- 修改用户 -->
	<update id="edit" parameterType="User">
		update user set username = #{username},roleId = #{roleId},photo = #{photo},sex = #{sex},age = #{age},address = #{address} where id = #{id}
	</update>
	<!-- 修改用户密码 -->
	<update id="editPassword" parameterType="User">
		update user set password = #{password} where id = #{id}
	</update>

先看代码,再提问题:

	<!-- 修改用户密码 -->
	<update id="editPassword" parameterType="User">
		update user set password = #{password} where id = #{id}
	</update>
	<!-- 删除用户 -->
	<delete id="delete" parameterType="String">
		delete from user where id in(${value})
	</delete>

注意到这里修改用户密码使用的是#{},而删除用户使用的是${},这两种有什么区别呢?

#{} 这种取值是编译好SQL语句再取值
${} 这种是取值以后再去编译SQL语句

#{}方式能够很大程度防止sql注入。
$方式无法防止Sql注入。

¥方式一般用于传入数据库对象,例如传入表名.
一般能用#的就别用$.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你在狗叫什么、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值