博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis基础:MyBatis入门(1)
阅读量:6160 次
发布时间:2019-06-21

本文共 6374 字,大约阅读时间需要 21 分钟。

1. MyBatis简介

  MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。

  MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

  MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

2. MyBatis框架

2.1 MyBatis下载

  MyBatis下载地址:

  MyBatis参考文档:

            

2.2 MyBatis基本构成

  MyBatis核心组件:

  ◊ SqlSessionFactoryBuilder:根据配置信息或代码来生成SqlSessionFactory。

  ◊ SqlSessionFactory:生成SqlSession。

  ◊ SqlSession:发送SQL去执行并返回结果,获取Mapper接口。

  ◊ SQL Mapper:由一个Java接口和XML文件(或注解)构成,提供对应的SQL和映射规则。负责发送SQL去执行,并返回结果。

3. MyBatis快速入门

3.1 基于XML实现

  项目结构:

4.0.0
libing
com-helloworld-api
war
0.0.1-SNAPSHOT
com-helloworld-api Maven Webapp
http://maven.apache.org
UTF-8
UTF-8
1.8
mysql
mysql-connector-java
5.1.44
org.mybatis
mybatis
3.4.5
log4j
log4j
1.2.17
junit
junit
4.12
test
com-helloworld-api
org.apache.maven.plugins
maven-compiler-plugin
1.8
1.8
pom.xml
database.driver=com.mysql.jdbc.Driverdatabase.url=jdbc:mysql://localhost:3306/helloworld?characterEncoding=utf8database.username=rootdatabase.password=root
jdbc.properties
mybatis-config.xml
log4j.rootLogger=DEBUG,stdoutlog4j.logger.org.mybatis=DEBUGlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
log4j.properties
package com.libing.helloworld.model;public class Role {        private Integer id;    private String roleName;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getRoleName() {        return roleName;    }    public void setRoleName(String roleName) {        this.roleName = roleName;    }    }
Role.java
package com.libing.helloworld.dao;import java.util.List;import com.libing.helloworld.model.Role;public interface IRoleDao {        List
findAll(); }
IRoleDao.java
RoleMapper.xml
package com.libing.helloworld.test;import java.io.InputStream;import java.util.List;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.apache.log4j.PropertyConfigurator;import org.junit.Assert;import org.junit.Before;import org.junit.Test;import com.libing.helloworld.dao.IRoleDao;import com.libing.helloworld.model.Role;public class RoleTest {    SqlSession sqlSession = null;    @Before    public void init() {        PropertyConfigurator.configure(RoleTest.class.getClassLoader().getResourceAsStream("log4j.properties"));        String resource = "mybatis-config.xml";        try {            InputStream inputStream = RoleTest.class.getClassLoader().getResourceAsStream(resource);            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);            sqlSession = sqlSessionFactory.openSession();        } catch (Exception e) {            e.printStackTrace();        }    }    @Test    public void findAll() {        try {            IRoleDao roleDao = sqlSession.getMapper(IRoleDao.class);            List
roles = roleDao.findAll(); Assert.assertNotNull(roles); Assert.assertTrue(roles.size() > 0); } catch (Exception e) { e.printStackTrace(); } finally { sqlSession.close(); } }}
RoleTest.java

  选中RoleTest.java,右击 | Run As | JUnit Test,查看运行结果。

DEBUG [main] - ==>  Preparing: SELECT id, role_name FROM role ORDER BY id ASC DEBUG [main] - ==> Parameters: DEBUG [main] - <==      Total: 6

3.2 基于注解实现

package com.libing.helloworld.dao;import java.util.List;import org.apache.ibatis.annotations.Select;import com.libing.helloworld.model.Week;public interface IRoleDao {    @Select("SELECT id,role_name FROM role ORDER BY id ASC")    List
findAll();}

3.3 mysql-connector-java 6.0.6配置

  pom.xml:

mysql
mysql-connector-java
6.0.6

  mybatis-config.xml:

  jdbc.properties:

database.driver=com.mysql.cj.jdbc.Driverdatabase.url=jdbc:mysql://localhost:3306/helloworld?serverTimezone=UTCcharacterEncoding=utf8&useSSL=falsedatabase.username=rootdatabase.password=root

转载于:https://www.cnblogs.com/libingql/p/7365195.html

你可能感兴趣的文章
CSS引入的方式有哪些? link和@import的区别?
查看>>
Redis 介绍2——常见基本类型
查看>>
asp.net开发mysql注意事项
查看>>
(转)Cortex-M3 (NXP LPC1788)之EEPROM存储器
查看>>
ubuntu set defult jdk
查看>>
[译]ECMAScript.next:TC39 2012年9月会议总结
查看>>
【Xcode】编辑与调试
查看>>
用tar和split将文件分包压缩
查看>>
[BTS] Could not find stored procedure 'mp_sap_check_tid'
查看>>
PLSQL DBMS_DDL.ALTER_COMPILE
查看>>
Activity生命周期
查看>>
高仿UC浏览器弹出菜单效果
查看>>
Ubuntu忘记密码,进不了系统的解决方法
查看>>
[原创]白盒测试技术思维导图
查看>>
<<Information Store and Management>> 读书笔记 之八
查看>>
Windows 8 开发之设置合约
查看>>
闲说HeartBeat心跳包和TCP协议的KeepAlive机制
查看>>
MoSQL
查看>>
Hibernate多对一外键单向关联(Annotation配置)
查看>>
《CLR via C#》读书笔记 之 方法
查看>>