1. 加入mybatis的依赖
<dependencies> <!-- 单元测试相关依赖 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.2.RELEASE</version> <scope>test</scope> </dependency> <!-- 日志相关依赖 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.10</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.1.2</version> </dependency> <!-- mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.18</version> </dependency> <!-- mybatis相关依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin> </plugins> </build>2. classpath下添加mybatis的配置文件(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="db.properties" /> <settings> <setting name="mapUnderscoreToCamelCase" value="true" /> </settings> <!--配置environment环境 --> <environments default="development"> <!-- 环境配置1,每个SqlSessionFactory对应一个环境 --> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="UNPOOLED"> <property name="driver" value="${jdbc_driver}" /> <property name="url" value="${jdbc_url}" /> <property name="username" value="${jdbc_username}" /> <property name="password" value="${jdbc_password}" /> </dataSource> </environment> </environments> <!-- 映射文件,mapper的配置文件 --> <!-- <mappers> 直接映射到相应的mapper文件 <mapper resource="sqlmapper/TUserMapper.xml" /> </mappers> --> <mappers> <mapper class="com.jiulu.mybatis.mapper.TUserMapper" /> </mappers> </configuration>3. 场景介绍
4. 编写实体类、mapper接口以及mapper xml文件
实体类:
package com.jiulu.mybatis.entity; public class TUser { private Integer id; private String userName; private String realName; private Byte sex; private String mobile; private String email; private String note; private Integer positionId; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getRealName() { return realName; } public void setRealName(String realName) { this.realName = realName; } public Byte getSex() { return sex; } public void setSex(Byte sex) { this.sex = sex; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getNote() { return note; } public void setNote(String note) { this.note = note; } public Integer getPositionId() { return positionId; } public void setPositionId(Integer positionId) { this.positionId = positionId; } @Override public String toString() { return "TUser [id=" + id + ", userName=" + userName + ", realName=" + realName + ", sex=" + sex + ", mobile=" + mobile + ", email=" + email + ", note=" + note + ", positionId=" + positionId + "]"; } }mapper接口:
package com.jiulu.mybatis.mapper; import com.jiulu.mybatis.entity.TUser; public interface TUserMapper { TUser selectByPrimaryKey(Integer id); }mapper配置文件(TUserMapper.xml):注意和mapper接口放同一目录
<?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.jiulu.mybatis.mapper.TUserMapper"> <select id="selectByPrimaryKey" resultType="com.jiulu.mybatis.entity.TUser" parameterType="java.lang.Integer"> select id, user_name , real_name , sex, mobile, email, note, position_id positionId from t_user where id = #{id,jdbcType=INTEGER} </select> </mapper>5. 编写实例代码
package com.jiulu.mybatis; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Before; import org.junit.Test; import com.jiulu.mybatis.entity.TUser; import com.jiulu.mybatis.mapper.TUserMapper; public class MybatisQuickStart { private SqlSessionFactory sqlSessionFactory; @Before public void init() throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); // 1.读取mybatis配置文件创SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); inputStream.close(); } @Test // 快速入门 public void quickStart() throws IOException { // 2.获取sqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); // 3.获取对应mapper TUserMapper mapper = sqlSession.getMapper(TUserMapper.class); // 4.执行查询语句并返回结果 TUser user = mapper.selectByPrimaryKey(1); System.out.println(user.toString()); } }运行结果:
18:38:49.978 [main] DEBUG org.apache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter. 18:38:50.424 [main] DEBUG o.a.i.t.jdbc.JdbcTransaction - Opening JDBC Connection 18:38:51.063 [main] DEBUG o.a.i.t.jdbc.JdbcTransaction - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@376b4233] 18:38:51.077 [main] DEBUG c.j.m.m.T.selectByPrimaryKey - ==> Preparing: select id, user_name , real_name , sex, mobile, email, note, position_id positionId from t_user where id = ? 18:38:51.151 [main] DEBUG c.j.m.m.T.selectByPrimaryKey - ==> Parameters: 1(Integer) 18:38:51.192 [main] DEBUG c.j.m.m.T.selectByPrimaryKey - <== Total: 1 TUser [id=1, userName=caojiulu, realName=***, sex=1, mobile=18291282102, email=24802382@qq.com, note=123, positionId=1]