(Mybatis)Mybatis简介和初步使用
生活随笔
收集整理的這篇文章主要介紹了
(Mybatis)Mybatis简介和初步使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. Mybatis簡介
1.1什么是Mybatis
- MyBatis 是一款優秀的持久層框架
- 它支持定制化 SQL、存儲過程以及高級映射。
- MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。
- MyBatis 可以使用簡單的 XML 或注解來配置和映射原生類型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 對象)為數據庫中的記錄。
- MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,并且改名為MyBatis 。
- 2013年11月遷移到Github。
1.2 Mybatis獲取方式
- maven依賴
- Github : https://github.com/mybatis/mybatis-3/releases
- 中文文檔:https://mybatis.org/mybatis-3/zh/index.html
1.3 為什么用Mybatis
- 幫助程序猿將數據存入到數據庫中。
- 方便
- 傳統的JDBC代碼太復雜了。簡化。框架。自動化。
- 不用Mybatis也可以。更容易上手。 技術沒有高低之分
- 優點:
- 簡單易學
- 靈活
- sql和代碼的分離,提高了可維護性。
- 提供映射標簽,支持對象與數據庫的orm字段關系映射
- 提供對象關系映射標簽,支持對象關系組建維護
- 提供xml標簽,支持編寫動態sql。
總結一點: 好用!
2. Mybatis初步使用
2.1環境搭建
2.1.1 創建數據庫和表
CREATE DATABASE `mybatis`;USE `mybatis`;CREATE TABLE `user`(`id` INT(20) NOT NULL PRIMARY KEY,`name` VARCHAR(30) DEFAULT NULL,`pwd` VARCHAR(30) DEFAULT NULL )ENGINE=INNODB DEFAULT CHARSET=utf8;INSERT INTO `user`(`id`,`name`,`pwd`) VALUES (1,'張三','123456'), (2,'李四','123456'), (3,'趙五','123456')2.1.2 新建一個maven項目
導入依賴
<!--導入依賴--><dependencies><!--mysql驅動--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><!--mybatis--><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><!--junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>2.2 編寫Mybatis核心配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <!--configuration核心配置文件--> <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/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments></configuration>2.3 編寫Mybatis工具類
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 java.io.IOException; import java.io.InputStream;//sqlSessionFactory --> sqlSession public class MybatisUtils {private static SqlSessionFactory sqlSessionFactory;static{try {//使用Mybatis第一步:獲取sqlSessionFactory對象String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}//從SqlSessionFactory中獲得 SqlSession 的實例// SqlSession 完全包含了面向數據庫執行 SQL 命令所需的所有方法。public static SqlSession getSqlSession(){return sqlSessionFactory.openSession();}}2.4創建實體類和Dao接口以及實現mapper
User實體類
public class User {private int id;private String name;private String pwd;public User() {}public User(int id, String name, String pwd) {this.id = id;this.name = name;this.pwd = pwd;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", pwd='" + pwd + '\'' +'}';} }Dao接口
public interface UserDao {List<User> getUserList(); }mapper配置文件替代了原來的接口實現類UserDaoImpl,方便快捷
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace=綁定一個對應的Dao/Mapper接口--> <mapper namespace="com.zh.dao.UserDao"><!--select查詢語句--><!--id:要實現的接口,resultType:返回結果類型--><select id="getUserList" resultType="com.zh.pojo.User">select * from mybatis.user</select></mapper>2.5 測試
@Testpublic void test(){//第一步,獲取sqlSession對象SqlSession sqlSession = MybatisUtils.getSqlSession();//方式一,getmapper獲取mapperUserDao userDao = sqlSession.getMapper(UserDao.class);//返回查詢結果集List<User> userList = userDao.getUserList();for (User user : userList) {System.out.println(user);}sqlSession.close();}報錯:org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDao is not known to the MapperRegistry.
原因: 沒有在核心配置文件中注冊mappers
xml一定要放在resources文件夾中否則運行時target目錄不會生成
如果不放在resources文件夾中,必須在pom.xml中添加
上述問題解決后正確輸出了select的查詢結果。
總結
以上是生活随笔為你收集整理的(Mybatis)Mybatis简介和初步使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (数据结构与算法)单向环形链表解决约瑟夫
- 下一篇: (数据结构与算法)数组和单链表实现栈的基