mybatis入门编程
思路:搭建环境--导入数据--编写代码--测试
创建数据库表
CREATE DATABASE `mybatis`; USE `mybatis`; CREATE TABLE `user` ( `uid` int(20) NOT NULL, `uname` varchar(30) DEFAULT NULL, `uage` varchar(30) DEFAULT NULL, PRIMARY KEY (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into `user`(`uid`,`uname`,`upwd`) values (1,'lhb','19'),(2,'张三','17'),(3,'李四','18');
新建项目
导入maven依赖
在pom.xml导入maven依赖
<dependencies> <!--MySQL驱动包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <!-- MyBatis的核心包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <!--Junit测试包--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> <scope>test</scope> </dependency> </dependencies>
编写mybatis核心配置文件
在src--main--resources中编写核心配置文件Mybatis-config.xml
<?xml version="1.0" encoding="UTF8"?> <!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"/> <dataSource type="POOLED"> <property name="driver" value="${mysql.driver}"/> <property name="url" value="${mysql.url}"/> <property name="username" value="${mysql.username}"/> <property name="password" value="${mysql.password}"/> </dataSource> </environment> </environments> </configuration>
在src--main--resources中编写核心配置文件db.properties
mysql.driver=com.mysql.jdbc.Driver mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false mysql.username=root mysql.password=Jc170712
编写实体类User.java
package com.systop.pojo; public class User { private int uid; private String uname; private String uage; public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getUage() { return uage; } public void setUage(String uage) { this.uage = uage; } @Override public String toString() { return "User{" + "uid=" + uid + ", uname='" + uname + '\'' + ", uage='" + uage + '\'' + '}'; } }
编写接口实现类
package com.systop; import java.util.List; public interface UserMapper { List<User> getList(); }
编写实现类的映射文件UserMapper.xml
<?xml version="1.0" encoding="UTF8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.systop.pojo.UserMapper"> <select id="getList" resultType="com.systop.pojo.User"> select * from mybatis.users </select> </mapper>
修改mybatis-config.xml配置文件
<mappers> <mapper resource="com/systop/mapper/UserMapper.xml"/> </mappers>
编写测试UserTest.java
import com.systop.User; import com.systop.UserMapper; 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.Reader; import java.util.List; public class UserTest { @Test public void user(){ //读取mybatis-config.xml配置文件 Reader reader = null; try { reader = Resources.getResourceAsReader("Mybatis-config.xml"); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sqlSessionFactory.openSession(); <!--第一种方法 --> List<User> user = session.selectList("com.systop.pojo.UserMapper.getList"); for (User user1 : user) { System.out.println(user1.getUid()); System.out.println(user1.getUname()); System.out.println(user1.getUage()); } <!--第二种方法 --> UserMapper mapper = session.getMapper(UserMapper.class); for (User user1 : mapper.getList()) { System.out.println(user1.getUid()); System.out.println(user1.getUname()); System.out.println(user1.getUage()); } } }
可能会出现的问题
uri 未注册(设置 | 语言和框架 | 架构和 dtd)
文件--设置