增删改查操作
- 在src/main/java目录下,新建一个存放接口的目录,如com.xxxx.dao目录,创建数据库操作接口。
- 在resources目录中,新建一个和接口目录结构相同且同名的xml文件(需要在主资源文件中配置)
- 代码
<mapper namespace="com.itheima.dao.UserDao"> <select id="findAll" resultType="com.itheima.domain.User"> select * from items </select> <insert id="saveUser" parameterType="com.itheima.domain.User"> <!-- keyProperty 对应实体类的id,keyColumn对应数据库表中的id, resultType对应返回值类型, order指定在insert语句执行之后再执行。 --> <selectKey keyProperty="id" keyColumn="id" resoultType="int" order="AFTER"> select last_insert_id(); </selectKey> insert into items values(null, #{name}, #{price}); </insert> <update id="updateUser" parameterType="com.itheima.domain.User"> update items set name = #{name}, price = #{price} where id = #{id}; </update> <delete id="deleteUser" parameterType="java.lang.Integer"> delete from items where id = #{id}; </delete>
- 增删改查,选用对应的标签,标签体中写要执行的sql
- 标签属性:
id:值为接口中定义的抽象方法名。
parameterType:值为sql中传入的参数类型
resultType:值为执行sql后得到的返回值类型(查询语句才需要配置) - selectKey标签属性:
keyProperty: 对应实体类的id
keyColumn: 对应数据库表中的id
resultType: 对应返回值类型
order: 指定在insert语句执行之后再执行
- 标签属性:
配置properties
<!-- 1.配置property的方式 -->
<properties>
<property></property>
</properties>
<!-- 2.1配置properties参数导入外部文件的方式,参数有两种方式,resource和url的方式,此处使用方式一resource -->
<properties resource="jdbcconfig.properties"></properties>
``
- 方式二必须按照url的方式写路径,url路径参见url和uri
url和uri
url: (Uniform Resource Locator) 统一资源定位符 可以唯一标志一个资源的位置
写法: 协议 主机 端口 uri
例如: http:// localhost: 8080 /mybatisserver/demo1
uri: (Uniform Resource Identifier) 统一资源标志符 在应用中,可以唯一标志一个资源的位置
-------------------------------------------------------------------------------------
而当我们打开本地文件时,使用的是file协议。(使用的是默认端口)
* 例如 我们可以在地址栏输入 C:/User/test/mybatis
* 也可以输入 file:///C:/User/test/mybatis
这是因为在window操作系统下面,允许我们省略前面的协议,而当我们用浏览器打开本地文件时,可以看到,
在地址栏一定有file协议开头。
这时候,我们就明白了,要写一个本地文件的url路径
在配置文件中配置别名(只能配置domain中类别名)
<typeAliases>
<!-- type属性指定实体类全限定类名,alias属性指定别名,配置的别名使用时,不区分大小写 -->
<typeAlias type="com.xxxx.domain.User" alias="user"></typeAlias>
<!-- 如果需要配置的类名很多,用上面的方式配置也很麻烦,可以使用package批量配置 -->
<package name="com.xxxx.domain"></package>
</typeAliases>
- 在mappers标签中也可以配置package, 配置resources目录下的一个文件夹,就不需要再为此文件夹下的xml文件配置mapper了。
<mappers>
<package name="com.xxxx.dao"></package>
</mappers>