ORM和Mybatis的区别
Mybatis快速入门
注意事项:
- 如果parameterType为简单类型(基本类型+String),#{}中的参数名称可以任意
- 如果parameterType为POJO类型,#{}中的参数名称必须和POJO中的属性名称一致
- 如果resultType为POJO类型,select中的列名和POJO中的属性名称一致
<mapper namespace="userMapper">
<select id="findAll" resultType="com.hgd.mybatis.pojo.User">
select * from tb_user
</select>
</mapper>
public class UserMapperImpl implements UserMapper{
private SqlSessionFactory sqlSessionFactory;
public UserMapperImpl(SqlSessionFactory sqlSessionFactory) {
this.sqlSessionFactory = sqlSessionFactory;
}
@Before
public void init() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("phase01/mybatis-config.xml");
sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourceAsStream);
}
public List<User> findAll() {
SqlSession sqlSession=sqlSessionFactory.openSession();
return sqlSession.selectList("userMapper.findAll");
}
}
public interface UserMapper {
List<User> findAll();
}
//mybatis-config.xml===>核心配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="phase01/jdbc.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/hotel?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="phase01/UserMapper.xml"></mapper>
</mappers>
</configuration>
mybatis(Mapper代理开发方式)
Mapper代理开发规范:
- Mapper接口的类路径与Mapper.xml文件中的namespace相同
- Mapper接口方法名称和Mapper.xml中定义的每个statement的id相同
- Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameter的id相同
- Mapper接口方法的返回值类型和mapper.xml中定义的每个sql的resultType的类型相同
<mapper namespace="com.hgd.mybatis.mapper02.UserMapper">
<select id="findAll" resultType="com.hgd.mybatis.pojo.User">
select * from tb_user
</select>
</mapper>
public interface UserMapper {
List<User> findAll();
}
mybatis注解开发
public interface UserMapper {
@Select("select * from tb_user")
List<User> findAll();
}
<mappers>
<mapper class="com.hgd.mybatis.mapper03.UserMapper"></mapper>
</mappers>