第一個mybatis專案(查詢表User中所有資料)
阿新 • • 發佈:2020-08-29
1、在pom.xml中配置:
//依賴配置:
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.4</version> </dependency> <dependency> <groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies>
//防止資原始檔匯出失敗:
<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-config.xml檔案,一般放入maven專案中的resource目錄中:
<?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?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> </configuration>
其中driver為jdbc驅動:com.mysql.jdbc.Driver,url為資料庫地址,username為使用者名稱,password為密碼。
2、編寫mybatis工具類mybatisUtils:
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(); } }
//以上內容基本上是寫死了的
3、建立一個javabean,欄位與表中的欄位一致。
public class User { private String username; private String pswd; private String sex; public User(){} public User(String username, String pswd, String sex) { this.username = username; this.pswd = pswd; this.sex = sex; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPswd() { return pswd; } public void setPswd(String pswd) { this.pswd = pswd; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "User{" + "username='" + username + '\'' + ", pswd='" + pswd + '\'' + ", sex='" + sex + '\'' + '}'; } }
4、編寫UserMapper介面:
public interface UserMapper { public List getUserList(); }
5、編寫UserMapper介面對應的xml:UserMapper.xml:
<?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="dao.UserMapper"> <select id="getUserList" resultType="pojo.User"> select * from mybatis.user </select> </mapper>
注意:namespace繫結UserMapper介面,id與介面中的getUserList()方法關聯,resultType繫結剛才編寫的javabean:User
select標籤內容為sql查詢語句:select * from mybatis.user
6、去mybatis-config.xml中把剛才寫的UserMapper.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?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <mappers> <mapper resource="./dao/UserMapper.xml" /> </mappers> </configuration>
可以發現就是使用了mappers,mapper標籤:
<mappers> <mapper resource="./dao/UserMapper.xml" /> </mappers>
7、編寫測試類進行驗證:
我這裡使用junit:
@Test public void test(){ SqlSession sqlSession = new MybatisUtils().getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); List<User> userList = userMapper.getUserList(); for(User user:userList){ System.out.println(user); } sqlSession.close(); }
結果:
8、最後附上一張專案結構圖以作參考: