前言:java web开发的后端技术包括MyBatis框架,因此mybatis的学习是必须的了
阅读目录:
- 1.MyBatis是什么
- 2.MyBatis下载
- 3.MyBatis入门开发
1.MyBatis是什么
MyBatis是一款优秀的持久层框架,即ORM框架(Object Relation Mapping),它支持定制化SQL、存储过程、高级映射。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和java的pojo映射成数据库的记录
它的特点是小巧、上手快。
2.MyBatis下载
MyBatis官网是http://www.mybatis.org/mybatis-3/zh/index.html
mybatis 代码由github.com托管 下载地址: http://github.com/mybatis/mybatis-3/releases
目前MyBatis版本mybatis-3.4.5
3.MyBatis入门开发
一个简单的MyBatis连接Oracle数据库的例子
3.1 准备环境 Eclipse+Maven+Oracle
maven引入jar包:mybatis-3.4.5.jar ojdbc14-10.2.0.5.0.jar
数据库使用项目中的测试数据库,里面有用户表User
3.2进入开发---这里采用Mapper代理开发
- 创建maven的java web工程 mybatisdemo
- 在pom文件中加入mybatis和ojdbc的jar包
- 在src/main/resources目录下创建mybatis-config配置文件
和user映射文件
4.创建实体User类和接口UserMapper
5.创建测试类Test1
3.3详解
1.全局配置文件mybatis-config.xml,配置mybatis的数据库连接信息,文档的顶层结构如下:
configuration 配置
- properties 属性
- settings 设置
- typeAliases 类型别名
- typeHandlers 类型处理器
- objectFactory 对象工厂
- plugins 插件
- environments 环境
- environment 环境变量
- transactionManager 事务管理器
- dataSource 数据源
- environment 环境变量
- databaseIdProvider 数据库厂商标识
- mappers 映射器
mybatis-config.xml 内容为:
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="jdbc.properties"> </properties> <!-- 和spring整合后 environments配置将废除 --> <environments default="development"> <environment id="development"> <!-- 使用jdbc事务管理,事务控制由mybatis管理 --> <transactionManager type="JDBC" /> <!-- 数据库连接池,由mybatis管理 --> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> <!--数据库连接信息除了上述配置方式外,还有下面一种配置方式,数据库连接相关信息直接写在value上, 注意:jdbc通过thin方式连接oracle,使用service_name的格式为 jdbc:oracle:thin:@//host:port/service_name --> <!-- <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@//10.221.129.208:1523/otatransuser" />
<property name="username" value="otatransuser" />
<property name="password" value="otatransuser123" />
--> </dataSource> </environment> </environments> <!-- 加载映射文件 --> <mappers> <mapper resource="UserMapper.xml" /> </mappers> </configuration>
2.映射文件UserMapper.xml
这个映射文件的命名规则一般是表名+Mapper.xml
<!-- namespace命名空间,作用就是对sql进行分类化的管理,理解为sql隔离
注意:使用mapper代理开发时,namespace有特殊作用
-->
<mapper namespace="mybatisdemo.dao.UserDao">
<select id="findUserByName" parameterType="java.lang.String" resultType="mybatisdemo.pojo.User">
select * from ota_user where username=#{username}
</select>
</mapper>
3.创建Mapper接口 UserMapper
mapper接口的命名方式建议:表名+Mapper
public interface UserMapper {
public User findUserByName(String name) throws Exception;
}
4.测试类 BatisTest
public class BatisTest {
public static void main(String[] args) throws Exception{
String resource ="Mybatis-Config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = factory.openSession();
UserMapper userdao = session.getMapper(UserMapper.class);
User user = userdao.findUserByName("wanghaixia");
System.out.println(user);
session.close();
}
运行测试类,得到结果:
User [id=4283, username=wanghaixia, password=gxBB2fIrpx8=
, offices=null, ips=*, max_Concurrent_Call=1, available=true, company=中国航信, email=null, last_Login=null, create_Time=Mon Apr 20 00:00:00 CST 2015, tel=57651606, mobile=null, contact=王海霞, iata=*, user_Groups=INNER, abbreviation=中国航信, belongs=暂未分类, temp_Password=null, black_Offices=SHA177]