0.前言
本教程是學習狂神的mybatis視頻後的步驟總結,給新接觸的人做爲參考,之後熟悉後直接看官網文檔。html
mybatis官方地址: https://mybatis.org/mybatis-3/configuration.html#mappersjava
1.建立maven項目
建立maven項目並在根pom.xml配置文件中加入如下依賴(具體版本能夠根據實際狀況變更)mysql
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies>
爲了不出現myhabits找不到資源的現象,在該pom.xml文件中加入如下配置,並刷新mavensql
<build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> </build>
2.寫mybatis配置文件
根據官網的教程拷貝模板,並在其上加入本身的項目的相關配置(如數據庫帳號密碼等),下面url那一行是鏈接數據庫的配置。寫完該配置文件後本例將其保存爲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> <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?useSSL=false& useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="帳號(此處根據狀況寫)"/> <property name="password" value="密碼(如上)"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/kikian/dao/userMapper.xml"></mapper> </mappers> </configuration>
3.寫工具類
建立一個子項目並將mybatis的通用代碼封裝成一個工具類(最好用單例模式,將sqlSessionFactory置爲static),該工具類的做用是:讀取剛剛寫好的mybatis-config.xml配置文件獲取SqlSessionFactory對象。mybatis
public class mybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); }catch (IOException e){ e.printStackTrace(); } } public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession(); } }
4.寫實體類
該實體類要與將從數據庫中讀取的數據要相對應,例如要從數據庫讀取的數據字段爲id name pwd,因此設置的對象也要包含該三個變量。爲了簡約,此處刪去了getter setter toString等代碼。app
public class user { private int id; private String name; private String pwd; public user(){ } public user(int id,String name,String pwd){ setId(id); setName(name); setPwd(pwd); } }
5.寫接口並實現
public interface userDao { List<user> getUserList(); } public class userDaoImpl implements userDao{ public List<user> getUserList(){ return null; } }
6.寫mapper配置文件
將mybatis和java代碼進行映射,創建鏈接。maven
<?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"> <mapper namespace="com.kikian.dao.userDao"> <select id="getUserList" resultType="com.kikian.pojo.user"> select * from mybatis.user </select> </mapper>
namespace:命名空間,映射查詢的關鍵參數,要和接口包名一致。 id:調就是對應的namespace中的方法名。 resultType:sql語句執行的返回值。 parameterType:傳入參數的類型,以下例。工具
<select id="getUserList" parameterType="int" resultType="com.kikian.pojo.user"> select * from mybatis.user where id = #{id}; </select>
7.單元測試
寫單元測試代碼,測試項目可否跑通。單元測試
public class userDaoTest { @Test public void test(){ SqlSession sqlSession = mybatisUtils.getSqlSession(); userDao udao = sqlSession.getMapper(userDao.class); List<user> userList = udao.getUserList(); for (user user : userList) { System.out.println(user); } sqlSession.close(); } }