实验目标
-
掌握Mybatis原理
-
掌握Mybatis环境搭建步骤
-
最终执行有相应的效果
知识点回顾
- Jdbc连接数据库流程
实验分析
- 理解Mybatis环境搭建过程。
实验步骤
-
数据库建表(截图)
-
创建Maven工程
-
导入相关依赖
pom.xml 文件里面引入 mybatis和mysql依赖
<dependencies> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies>
-
编写pojo和dao接口
User:
package com.dxj.pojo; public class User { //建议属性名和字段名保持一致 private Long id; private String username; private String password; private Integer isadmin; public User() { } public User(Long id, String username, String password, Integer isadmin) { this.id = id; this.username = username; this.password = password; this.isadmin = isadmin; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getIsadmin() { return isadmin; } public void setIsadmin(Integer isadmin) { this.isadmin = isadmin; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + ", isadmin=" + isadmin + '}'; } }
UserDao:
扫描二维码关注公众号,回复: 13374491 查看本文章package com.dxj.dao; import com.dxj.pojo.User; public interface UserDao { //查询单个 public User queryUserById(Long id); }
-
创建MyBatis配置文件
需要先引入mybatis-3-config.dtd文件
settings---->Schemas and DTDs------>右边点击 + 新建 ------>弹框 uri 输入 http://mybatis.org/dtd/mybatis-3-config.dtd file 选择本机mybatis-3-config.dtd文件 ---->apply—>ok
配置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" > <configuration> <!--引入外部文件--> <properties resource="db.properties"/> <!--配置连接数据库配置信息--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <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> <!--引入映射文件--> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration>
-
创建MyBatis映射文件
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace 值必须和接口路径保持一致--> <mapper namespace="com.dxj.dao.UserDao"> <!--id值必须和接口里面的方法名保持一致--> <select id="queryUserById" parameterType="java.lang.Long" resultType="com.dxj.pojo.User"> select * from users where id = #{id} </select> </mapper>
-
单元测试调用
package test; import com.dxj.dao.UserDao; import com.dxj.pojo.User; 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.Test; import java.io.IOException; import java.io.InputStream; public class Test1 { @Test public void test1() throws IOException { //加载配置文件 并读取 通过IO流 //1.获取输入流 InputStream in = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in); SqlSession session = sqlSessionFactory.openSession(); User user = session.selectOne("com.dxj.dao.UserDao.queryUserById", 1L); System.out.println(user); session.close(); } }