是apache下的一个产品,ibatis改名叫做Mybatis,是一个半ORM(对象关系映射)持久层框架;
mybatis入门
引入依赖
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatisartifactId>
<version>3.2.8version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>5.1.24version>
dependency>
全局配置文件
<configuration>
<properties>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis-110?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
properties>
<environments default="test">
<environment id="test">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis-110" />
<property name="username" value="root" />
<property name="password" value="123456" />
dataSource>
environment>
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
dataSource>
environment>
environments>
configuration>
配置**Mapper.xml
<mapper namespace="MyMapper">
<select id="selectUser" resultType="com.zpc.mybatis.User">
select * from tb_user where id = #{id}
select>
mapper>
修改全局配置文件,把**Mapper.xml加入到全局配置文件中
<configuration>
<environments default="test">
<environment id="test">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/ssmdemo" />
<property name="username" value="root" />
<property name="password" value="123456" />
dataSource>
environment>
environments>
<mappers>//加载**Mapper.xml配置文件
<mapper resource="mappers/**Mapper.xml" />
mappers>
configuration>
构建sqlSessionFactory(Test.java)
// 指定全局配置文件
String resource = "mybatis-config.xml";
// 读取配置文件
InputStream inputStream = Resources.getResourceAsStream(resource);
// 构建sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
6,打开sqlSession会话,并执行sql(Test.java)
// 获取sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 操作CRUD,第一个参数:指定statement,规则:命名空间+“.”+statementId
// 第二个参数:指定传入sql的参数:这里是用户id
User user = sqlSession.selectOne("MyMapper.selectUser", 1);
System.out.println(user);
mybatis使用步骤总结
1、Dao接口+Dao实现类+XML映射文件(不建议使用,较繁锁)
具体实现细节:通过在Dao接口的实现类中调用SqlSession的方法,与传统的在实现类中调用JDBC提供的一系列执行sql的方法大同小异
2、Dao接口+XML映射文件:mapper动态代理(一般使用这个)
要求:
接口的名称与配置文件的namespace(命名空间)一致
接口中方法名与配置文件中的id相对应
参数类型相同
具体实现:创建满足上述条件的Dao接口以及XML映射文件,使用SqlSession提供的getMapper(Class arg0);由Mybatis自动创建具体的实现类
3、Dao接口+Annotation(注解)(仅用于简单的sql语句,复杂的sql使用该方式太繁琐,不易于维护)
具体实现:在Dao接口的方法上加入对应操作的Annotation,获得接口实现类的方法与Dao接口+映射文件方法相同(SqlSession 的getMapper()方法)
要求:需要使用配置文件(configuration.xml)中的子标记,name属性对应具有Annotation的接口的包名
示例: