Mybatis快速入门
前提说明:本案例于是使用idea2019工具,jdk1.8,maven项目管理,mysql5.5,Sqlyog。
1.准备数据库
CREATE DATABASE IF NOT EXISTS test; USE test; CREATE TABLE `user`( id INT PRIMARY KEY AUTO_INCREMENT, age INT, `name` VARCHAR(23) NOT NULL, hobby VARCHAR(23) NOT NULL ); INSERT INTO USER VALUES(NULL,12,'张三','跑步'),(NULL,22,'李四','跳舞'),(NULL,18,'赵六','飞');
2.创建项目(JavaSe)
3.导入mybatis依赖和mysql数据库依赖
pom.xml文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.qiong</groupId> <artifactId>mybatisdemo</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!--MyBatis核心包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency>
<!--数据库驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
</project>
4.创建项目结构
5.在resources下创建并配置mybatisConfig.xml核心配置文件
源代码mybatisConfig.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> <!--设置java类型别名--> <typeAliases> <!--将整个包下所有的类名设置了别名,别名(小名):类名--> <package name="cn.wzy.entity"></package> </typeAliases> <!--数据库环境配置--> <environments default="mysql"> <!--使用MySQL环境--> <environment id="mysql"> <!--事务管理器:JDBC类型--> <transactionManager type="JDBC"></transactionManager> <!--连接池:内置POOLED--> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://127.0.0.1:3306/test"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> </dataSource> </environment> </environments> <!--加载映射文件--> <mappers> <!-- Dao接口所在包--> <package name="com.wzy.dao"></package> </mappers> </configuration>
6.创建实体类User和dao层接口UserDao
User.java
tip:User类中的字段必须要和数据库的字段一致,否则就丢失字段,或者报错!
package com.wzy.entity; public class User { private Integer id; private String name; private String hobby; public User() { } public User(Integer id, String name, String hobby) { this.id = id; this.name = name; this.hobby = hobby; } /** * 获取 * @return id */ public Integer getId() { return id; } /** * 设置 * @param id */ public void setId(Integer id) { this.id = id; } /** * 获取 * @return name */ public String getName() { return name; } /** * 设置 * @param name */ public void setName(String name) { this.name = name; } /** * 获取 * @return hobby */ public String getHobby() { return hobby; } /** * 设置 * @param hobby */ public void setHobby(String hobby) { this.hobby = hobby; } public String toString() { return "User{id = " + id + ", name = " + name + ", hobby = " + hobby + "}"; } }
UserDao接口
package com.wzy.dao; import com.wzy.entity.User; import org.apache.ibatis.annotations.Select; import java.util.List; public interface UserDao { @Select("select * from user") List<User> findAll(); }
7.编写测试类
package com.wzy; import com.wzy.dao.UserDao; import com.wzy.entity.User; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.util.List; public class test { public static void main(String[] args) { //1. 创建SqlSession工厂构造器 SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); //2. 利用SqlSession工厂构造器读取SqlMapCOnfig.xml配置文件,得到SqlSessionFactory SqlSessionFactory sessionFactory = sqlSessionFactoryBuilder.build( test.class.getResourceAsStream("/mybatisConfig.xml")); //3. 利用SqlSessionFactory得到SqlSession SqlSession sqlSession = sessionFactory.openSession(); //4. SqlSession得到接口的代理对象 UserDao mapper = sqlSession.getMapper(UserDao.class); //5. 调用接口代理对象的方法 List<User> all = mapper.findAll(); System.out.println(all);
//关闭SqlSession sqlSession.close(); } }
8.测试结果
9.总结:Mybatis的简单应用,实现从数据库中读取数据
10.和你说:你离成功只差那么一点点,就那么一点点!!!