A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

用自己的语言,把自己理解的Mybatis入门案例(xml配置方式和注解的方式)描述出来

6 个回复

倒序浏览
用自己的语言,把自己理解的Mybatis入门案例(xml配置方式和注解的方式)描述出来
xml配置方式
       1.环境搭建。
        建好maven项目后,在pom.xml文件中添加依赖,如mybatisjunitmysql-connector-javalog4j等。之后在SqlMapConfig.xml主配置文件中配置MySQL的环境并添加mappers
        在resources资源目录下建立与dao相对应的目录结构,并在其中创建UserDao.xml映射配置文件。在该文件中,设置mapper标签的属性namespaceUserDao的全限定路径。在select标签中设置属性id为方法名,resultTypeUser的全限定路径,并设置标签体内容为sql语句。
       2.创建User类,创建UserDao接口,在接口中定义findAll()方法,在该方法上添加注解(@Select("select *from user"))。
       3.编写测试类。在测试方法中,读取配置文件,创建SqlSessionFactory工厂,使用工厂生产SqlSession对象,使用SqlSession创建Dao接口的代理对象,使用代理对象执行方法,释放资源。
       4.执行测试方法,检验结果。
注解的方式:
       1.环境搭建。建好maven项目后,在pom.xml文件中添加依赖,如mybatis、junit、mysql-connector-java、log4j等。之后在SqlMapConfig.xml主配置文件中配置MySQL的环境并添加mappers。
       2.创建User类,创建UserDao接口,在接口中定义findAll()方法,在该方法上添加注解(@Select("select *from user"))。
       3.编写测试类。在测试方法中,读取配置文件,创建SqlSessionFactory工厂,使用工厂生产SqlSession对象,使用SqlSession创建Dao接口的代理对象,使用代理对象执行方法,释放资源。
       4.执行测试方法,检验结果。

回复 使用道具 举报
用自己的语言,把自己理解的Mybatis入门案例(xml配置方式和注解的方式)描述出来
xml配置方式:
1,创建maven项目,导入mysql,jdbc和junit的依赖
2,创建mybatis的主配置文件,写mysql的数据源信息,和映射配置文件信息,resource中的路径要和userdao的接口一样的目录结构,resource是目录结构,用/分隔;
3,创建映射配置文件,mapper标签的namespace是userdao的全类名,select标签中id作为唯一标识,他的值为接口中调用的方法名称,namespace+id组合成的stament能够确定唯一的sql语句,select标签中还要定义resultType属性,用于标识返回值的类型,如果有参数传递,还需要指定参数的类型;
4,创建测试文件,读取配置文件为流对象,通过流对象作为参数获取SqlSession工厂对象,再通过工厂对象获取SqlSession对象,再通过SqlSession对象获取接口的代理对象,通过动态代理的方式增强接口,获得代理对象后,调用代理对象增强后的方法,获取查询的结果集;
5,关闭资源,需要关闭的有sqlsession和inputstream对象;
注解方式:
1,创建maven项目,导入mysql,jdbc和junit的依赖
2,创建mybatis的主配置文件,写mysql的数据源信息,和映射配置文件信息,这里需要使用class属性,属性是接口的全类名路径,由于是classes中的路径,所以用.来分隔;
3,在接口需要使用的方法上添加注解,注解中写需要使用的sql语句;
4,创建测试文件,读取配置文件为流对象,通过流对象作为参数获取SqlSession工厂对象,再通过工厂对象获取SqlSession对象,再通过SqlSession对象获取接口的代理对象,通过动态代理的方式增强接口,获得代理对象后,调用代理对象增强后的方法,获取查询的结果集;
5,关闭资源,需要关闭的有sqlsession和inputstream对象;



回复 使用道具 举报
用自己的语言,把自己理解的Mybatis入门案例(xml配置方式和注解的方式)描述出来
xml配置:
1 主配置文件引入约束。mapper的属性写resource ,值写 带 / 的 ,这样才是多级目录。引入
2引入约束。在xml配置文件中写namespace 这个位置要和dao接口所在的包结构一样,id要写方法名;在select的标签体中写SQL语句。包结构一致+namespace+ID+这是不用写实现类的三个必要条件。
3写测试类。加载配置文件,获取工厂对象,创建session执行对象,通过代理模式调用方法,关闭资源。

注解:
和xml配置的一个大的区别是不用写自己的映射配置文件,在主配置文件中,属性写class,指向dao接口所在的位置,在dao接口中添加注解 @Select(“SQL语句”)。记得两种配置文件不能同时用。
测试了和xml配置一样。
回复 使用道具 举报
配置文件:
                1:在测试类中创建一个main方法,方法内使用类加载器读取核心配置文件返回一个流对象
                2:将流对象给build一下返回一个工厂 SqlSessionFactoryBuilder.build
                3:从工厂中得到一个与数据库打交道的SqlSession
                4:SqlSession.getMapper(接口.class)返回接口的代理对象
                        代理对象执行findAll()方法前后可以添加其他代码
                        执行前:
                                注册驱动
                                连接
                                执行
                        执行后:
                                映射结果集
                5:关流
                        sqlsession
                        io流
                好处:无须手动映射,提高开发效率
               
        注解:
                1:删除映射配置文件
                2:将核心配置文件resources更改为class
                3:接口中的findAll方法上添加@select注解
                4:其余不变
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马