01-Mybatis_01
HelloWorld
项目结构:
Tips:在src以外的路径下写配置文件IDEA是找不到的.
解决:
1.
2.
问题得以解决.
bean类:Employee
配置文件:mybatis全局配置文件
配置文件: Employee的sql映射文件
Tips:
在导入log4j的包后不要忘了把log4.xml也配置进来,不然无法在控制台看到日志信息
selectOne的弊端:
解决:
1.创建一个接口,里面抽象方法的返回类型就是bean,参数值类型就是Integer:
2.与sqlMapper文件进行动态关联:
测试类中:
测试类的这种编程方式也叫接口式编程:
- 1、接口式编程
- 原生: Dao ===> DaoImpl
- mybatis:Mapper(也是接口) ===> xxMapper.xml
- (mybatis通过映射文件创建对应的代理对象)
- 2、SqlSession代表和数据库的一次会话;用完必须关闭;
- 3、SqlSession和connection一样它都是非线程安全。每次使用都应该去获取新的对象。
Tips: 只要是非线程安全的对象,都不能作为成员变量进行使用. 比如:线程A使用完了该对象之后就把它关闭了,而线程B也要使用的话,这会造成报错。 - 4、mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象。(将接口和xml进行绑定)
-
EmployeeMapper empMapper = sqlSession.getMapper(EmployeeMapper.class);
- 5、两个重要的配置文件:
-
mybatis的全局配置文件:包含数据库连接池信息,事务管理器信息等...系统运行环境信息(该文件是次要的,因为没有它一样可以运行.)
在没有全局配置情况下的代码:
DataSource dataSource = BlogDataSourceFactory.getBlogDataSource();
TransactionFactory transactionFactory = new JdbcTransactionFactory();
Environment environment = new Environment(“development”, transactionFactory, dataSource);
Configuration configuration = new Configuration(environment);
configuration.addMapper(BlogMapper.class);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configur
(代码片段的缺失是由于它的声明文档中代码片段也是如此)
-
sql映射文件(不可缺少的文件):保存了每一个sql语句的映射信息:将sql抽取出来。
Tips:Mybatis全局配置文件没有提示怎么办?
解决: 引入相应的dtd文件:
在没联网的状态下:
那就要找到dtd文件在jar包中的位置,然后解压出来.
IDEA:
Eclipse:
配置完后都要关闭当前mybatis配置文件,再重新打开就好了
-------------华丽的分割线---------------
所有设置的标签都是在configuration 标签里面的!!!