mybaties基于java的持久层框架,内部封装了jdbc
mybaties=ibaties3.0以后的版本,是半自动化的持久层框架
SQL与java编码分离,sql是开发人员控制。
什么是动态SQL?
同一个dao方法,根据不同的条件可以表示不同的SQL语句。主要是where语句有变化。使用mybatis提供的标签,实现动态语句SQL功能。
主要是if,where,foreach,sql.使用动态SQL的时候,dao方法的形参使用java对象
JDBC访问数据库的优缺点:
优点:直观好理解
缺点:创建好多对象;注册驱动;执行SQL ;把Student转为list集合;关闭资源;sql语句和业务逻辑混在一起
mabites能做什么?
1.注册驱动
2.创建jdbc中使用的connection,
3.执行SQL,得到resultset
4.处理resultset,把数据集中的对象向转为java对象,同时还能把java对象放到放入list集合里
5.关闭资源
6.实现java代码和SQL语句解耦合。
实现步骤:
0.创建student表(id,name,email,age)
1.新建maven项目
2.修改pom.xml文件(mybaties依赖,mysql驱动,junit),在build加入资源插件
3.创建student实体类,定义属性,属性名和类名一致
4.创建dao接口,定义操作数据库方法
5.创建xml文件(mapper文件),写SQL语句的(mybaties框架推荐是把SQL语句和java代码分开),mapper文件,定义到和dao接口同意目录下,一个表一个mapper文件
使用dao的代理要求:
mapper文件中的namespace:必须是dao接口的全限定名称
mappre文件中标签的id是dao接口中的接口名称
6.创建mybaties的主配置文件(xml文件)
1)创建链接实例数据源的datasource对象
2)指定其他mapper文件的位置,使用<mapper resource="">
7.创建测试的内容(此处以一个功能为例子)
1)使用main方法测试mybaties访问数据库
2)也可以使用junit测试访问数据库