mybatis入门
------------恢复内容开始------------
------------恢复内容开始------------
1.创建一个项目,在项目中引入mybatis框架的jar包和mysql数据库驱动包。
2.创建一个接口(持久层),用于查询数据库。
代码如下:
/**
* 数据层
*
*/
public interface PersonDao {
//查询所有Person数据
public List<Person> findAll();
//根据id查询Person数据
public Person findById(Integer id);
}
3.创建接口对应的SQL语句映射文件
代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--###############################SQL语句映射配置文件##############################-->
<!--将该包内所有接口定义为映射接口-->
<mapper namespace="com.itheima.mybatis.PersonDao">
<!--查询所有Person数据-->
<select id="findAll" resultType="com.itheima.pojo.Person">
select * from person;
</select>
<!--根据id查询Person数据-->
<select id="findById" parameterType="int" resultType="com.itheima.pojo.Person">
select * from person where id=#{id};
</select>
</mapper>
-------------------------------------------------------------分隔符---------------------------------------------------------------------
如果Mapper映射文件的约束不会写,可以打开mybatis官网,有提供的模板,复制就行了。
4.创建mybatis的核心配置文件
代码如下:
<?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">
<!--###########################mybatis配置文件###########################-->
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/> <!--JDBC的事务-->
<dataSource type="POOLED">
<!--jdbc配置-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--配置SQL映射文件路径-->
<mappers>
<mapper resource="com/itheima/mybatis/PersonDao.xml"/>
</mappers>
</configuration>
-------------------------------------------------------------分隔符---------------------------------------------------------------------
如果<mapper resource="com/itheima/mybatis/PersonDao.xml"/>这里的SQL映射配置文件路径容易犯错,一个小技巧就是把项目编译一下,在编译文件里查找。
因为我这个项目是web项目,所以编译后在动态资源都在WEB-INF下的classes目录下,SQL映射文件的相对路径是com/itheima/mybatis/PersonDao.xml。
-------------------------------------------------------------分隔符---------------------------------------------------------------------
如果mybatis核心配置文件的约束不会写,可以打开mybatis官网,有提供的模板,复制就行了。
5.创建类,执行SQL语句查询
public class MybatisTest {
public static void main(String[] args) throws IOException {
//1.读取mybatis配置文件
String config = "com/itheima/mybatis/mybatis-config.xml"; //定义mybatis配置文件路径
InputStream inputStream = Resources.getResourceAsStream(config);
//2.创建SqlSessionFactoryBuilder对象,并创建SqlSessionFactory对象,接着获取SqlSession对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
//3.执行SQL语句
String sqlId = "com.itheima.mybatis.PersonDao.findAll";
List<Person> list = sqlSession.selectList(sqlId);
for (Person person : list) {
System.out.println("person = " + person);
}
//4.关闭sqlSession
sqlSession.close();
}
}
-------------------------------------------------------------分隔符---------------------------------------------------------------------
String config = "com/itheima/mybatis/mybatis-config.xml"; //定义mybatis配置文件路径
如果mybatis核心配置文件容易犯错,一个小技巧就是把项目编译一下,在编译文件里查找。
因为我这个项目是web项目,所以编译后在动态资源都在WEB-INF下的classes目录下,mybatis核心配置文件的相对路径是com/itheima/mybatis/mybatis-config.xml。
6.运行一下,查看控制台打印信息(查询的数据库表中数据),查询数据成功。