- 创建Maven项目
- 根据数据库,创建实体类,遵循下划线转驼峰命名
- 创建对实体类进行dao *** 作的 映射接口 ,并在映射接口中定义方法。
- 创建映射文件 xxxMapper.Xml ,根据映射接口定义其中的mapper内容
- 在MyBatis的配置文件中,配置引用我们的映射文件,添加log4j的配置文件.properties文件,并修改路径。
- 测试类 获取SqlSessionFactory
Reader read = Resources.getResourceAsReader("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(read);
SqlSession sqlSession = sqlSessionFactory.openSession();
SysUserMapper userMapper = sqlSession.getMapper(SysUserMapper.class);
第一:maven项目创建成功,效果如下
第二:修改pom.xml文件,我们需要配置Maven项目运行的基本环境,比如我们要进行单元测试,要连接数据库,都需要有jar包进行支持。在该文件中添加如下内容:
maven-compiler-plugin junit slf4j-log4j12 mysql-connector-java |
添加完毕之后,进行ctrl+s进行保存:多了一个Maven Dependencies
但是现在项目上有红色 *, 所以我们要刷新一下Maven项目。
到此为止: Maven的运行环境,还差一步Junit的配置文件,需要将log4J.properties,拷贝到
然后下面的路径待修改:
第二大步: 搞定mybatis的运行环境
1.mybatis的配置文件: 在以下目录,创建mybatis-config.xml文件
2.修改mybatis的配置文件:拷贝如下内容
|
- 创建系统的目录结构
注意: countryMapper.xml 作为我们的映射文件,需要格外注意以下几点:
先拷贝文档声明:
遗漏下面这个属性:
至此:最简单的规范Mybatis项目完成,开始进行测试:测试之前千万千万别忘了我们还有个待修改路径:
最后开始去写测试类:测试类所在的目录:
新建一个测试类: TestCountry.java 这个类中,我们要
加载mybatis的基础信息
获取sqlSession
最后的配置:
映射器方法多参数传递:假如有两个参数 username password
- arg0 \arg1 | param1 \param2
Select * from user where user_name = #{arg0} and user_password = #{arg1}
②: 使用map进行传递: 保证sql中的占位 和Map的key值一致。
Map
paramMap.put(“uname”,”周广彬”);
paramMap.put(“pwd”,”123456”);
Select * from user where user_name = #{uname} and user_password = #{pwd}
③使用注解
List
select * from sys_user u , sys_dept d where u.dept_id = d.id and u.id = #{uuuuid}
Mybatis: 最流行的:
一个实体类 p.java --> 接口 pMapper.java --> pMapper.xml
使用注解之后的:
一个实体类 p.java --> 接口 pMapper.java --> pMapper.xml
第三章: MyBatis 高级映射 ★
1: 需求: 查询出某个用户详细信息和它的部门名称
一对一嵌套查询:
一对多映射:
Mybatis要有基础的配置文件: mybatis-config.xml 放置在 src/main/resources 文件夹下,
此处有两个地方需要修改,第一个是数据源配置,第二点引用映射文件。
Com.zq.bean -->实体类 Medicine.java
Com.zq.mapper--> 接口类 MedicineMapper.java
映射接口: 在接口中的方法都抽象的不必实现的。 起的名字很重要,要来做关联。
Com.zq.mapper--> 映射文件xml medicineMapper.xml 映射文件
第一步:拷贝文档声明
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
第二步:编写
Namespace 值指向的是 映射接口的全类名eg. Com.zq.mapper.MedicineMapper
第三步:和方法做具体映射。id属性指定和接口中的方法进行关联。
增:
删:
改:
映射接口中,方法的参数的问题。
情况1:参数只有一个 parameterType可写可不写
情况1.1 可以是一个实体类
情况1.2 可以是一个基本数据类型
情况2:参数是一个以上: ☆ 使用注解 @Param 起个别名,这个别名对应是sql中的参数值
查:
Id:
resultType:结果类型 -->指定一个实体类
只要是查询的结果的列,和实体类中的属性能够对应上【考虑到有无配置mapUnderScoer,,,,这个参数】,就可以使用resultType
resultMap:结果Map结合,自动映射不好使,闲的,去手动配置映射。
Id 比较特殊: 可以使用id标签进行手工映射。 property 实体类中的属性名 , column:数据库中的字段名
注意:特殊字段类型:添加 jdbcType=BLOB类型 TIMESTAMP
列的别名可以解决一切不对应。
高级映射:
1对1:
实体类的某个属性,也是一个实体类。
1对多:
实体类中的某个属性,是一个集合
动态SQL: if where
---------转载老师课堂上给我们写的笔记
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)