1.Mybatis基于代理Dao的CRUD操作
基本顺序:先在接口中声明方法,然后在xml文件下写配置,最后在test中写测试类
需要注意:
xml文件配置中,resultType和parameterType的路径要写正确
模糊查询中有两种方式:
一种使用PrepatedStatement的参数占位符 即
select * from user where username like #{name}
另一种是Statement对象的字符串拼接SQL 即
select * from user where username like '%${value}%'
通常使用第一种
数据库表的元素名和实体类的属性名不对应的解决方法
1.起别名,即修改sql语句(as),运行效率更高,更快。
2.配置查询结果的列名和实体类的属性名的对应关系,开发效率更高,更快
(所以 ,为了避免麻烦,元素名和属性名尽量一致吧,好么!哈哈哈哈哈哈)
OGNL表达式:
Object Graphic Navigation Language
对象 图 导航 语言
它是通过对象的取值方法来获取数据。在写法上把get给省略了。
比如:我们获取用户的名称
类中的写法:user.getUsername();
OGNL表达式写法:user.username
mybatis中为什么能直接写username,而不用user.呢:
因为在parameterType中已经提供了属性所属的类,所以此时不需要写对象名
2.Mybatis中编写Dao实现类的使用
视频里p30到p36再讲底层源码,最后的出结论一切操作源头都是PreparedStatement对象它的执行方法。只是在代码中传入不同的参数,回到底层进行不的实现。
3.一些标签的使用以及细节
使用properties配置数据库连接信息
可以在标签内部配置连接数据库的信息。也可以通过属性引用外部配置文件信息
第一种:resource属性(常用)
用于指定配置文件的位置,是按照类路径的写法来写,并且必须存在于类路径下。
<properties resource="jdbcConfig.properties">
</properties>
第二种:url属性(不常用) 是要求按照Url的写法来写地址
URL:Uniform Resource Locator 统一资源定位符。
它是可以唯一标识一个资源的位置。
它的写法: http://localhost:8080/mybatisserver/demo1Servlet
协议 主机 端口 URI
URI:Uniform Resource Identifier 统一资源标识符。
它是在应用中可以唯一定位一个资源的。
使用typeAliases配置别名
<!--使用typeAliases配置别名,他只能配置domain中类的别名-->
<typeAliases>
<!--typeAlias用于配置别名,type属性指定的是实体类中的全限定类名。alias属性指定别名,当指定了别名后不在区分大小写-->
<typeAlias type="com.itheima.domain.User" alias="user"></typeAlias>
</typeAliases>
使用package配置别名
<typeAliases>
<!--用于指定要配置别名的包,当指定后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写-->
<package name="com.itheima.domain"/>
</typeAliases>
其中,配置映射文件位置的中也有package这个标签
<mappers>
<!-- <mapper resource="top/zoick/dao/IUserDao.xml"/>-->
<!--package标签是用于指定dao接口所在的包,当指定了之后就不需要再写mapepr以及resource或者class了-->
<package name="com.itheima.dao"/>
</mappers>
写在后面
主要学习Mybatis基于代理dao的crud,感觉比较简单,且易懂。
在后面的视频里的老师很详细的讲了自定义编写dao实现类以及大致讲解了实现的底层原理,我只是听了一遍,大致意思懂了。
还提到了断点测试的方法。。。没有好好听。。。。
配置别名也感觉目前为止用途不大。可能后面会吃亏,但是也得吃了亏才能反应过来,记住吧。
大概是这个样子。
—— 暂无评论 ——