1,在xml配置文件中配置數據源、註冊Mapper
<configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置數據庫連接信息 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> <property name="username" value="root" /> <property name="password" value="XDP" /> </dataSource> </environment> </environments> <mappers> <!-- 註冊userMapper.xml文件, userMapper.xml位於me.gacl.mapping這個包下,所以resource寫成me/gacl/mapping/userMapper.xml--> <mapper resource="me/gacl/mapping/userMapper.xml"/> </mappers> </configuration>
2,配置好相應Mapper
在Mapper中配置SQL語句
<!-- 爲這個mapper指定一個唯一的namespace,namespace的值習慣上設置成包名+sql映射文件名,這樣就能夠保證namespace的值是唯一的例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除後綴)
-->
<mapper namespace="me.gacl.mapping.userMapper">
<!-- 在select標籤中編寫查詢的SQL語句, 設置select標籤的id屬性爲getUser,id屬性值必須是唯一的,不能夠重複
使用parameterType屬性指明查詢時使用的參數類型,resultType屬性指明查詢返回的結果集類型
resultType="me.gacl.domain.User"就表示將查詢結果封裝成一個User類的對象返回
User類就是users表所對應的實體類
-->
<!--
根據id查詢得到一個user對象
-->
<select id="getUser" parameterType="int"
resultType="me.gacl.domain.User">
select * from users where id=#{id}
</select>
</mapper>
3,使用Mybatis的方式操作數據庫
//mybatis的配置文件
String resource = "conf.xml";
//使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件)
InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);
//構建sqlSession的工廠
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//使用MyBatis提供的Resources類加載mybatis的配置文件(它也加載關聯的映射文件)
//Reader reader = Resources.getResourceAsReader(resource);
//構建sqlSession的工廠
//SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//創建能執行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession();
/**
* 映射sql的標識字符串,
* me.gacl.mapping.userMapper是userMapper.xml文件中mapper標籤的namespace屬性的值,
* getUser是select標籤的id屬性值,通過select標籤的id屬性值就可以找到要執行的SQL
*/
String statement = "me.gacl.mapping.userMapper.getUser";//映射sql的標識字符串
//執行查詢返回一個唯一user對象的sql
User user = session.selectOne(statement, 1);
System.out.println(user);