MyBatis入门及环境搭建
1.什么是MyBatis
MyBatis是一个开源的持久层框架,它帮助我们简化了数据库操作的代码。与传统的JDBC相比,MyBatis使用XML或注解的方式来描述 SQL 语句和映射关系,使得开发人员可以专注于业务逻辑而不用花太多精力在 SQL 上。
2.MyBatis的优势与特点
灵活性:MyBatis支持自定义SQL查询,可以灵活地编写和调整SQL语句,满足各种需求。
易于学习和使用:MyBatis的配置简单明了,不需要过多的学习成本即可上手使用。
性能高效:MyBatis采用动态SQL生成机制,可以根据不同条件生成不同的SQL查询语句,提高性能。
可扩展性强:MyBatis支持插件机制,可以对底层进行灵活的扩展和定制。
1.3 环境搭建准备工作
在开始使用MyBatis之前,需要确保以下环境已经准备好:
JDK安装并配置好环境变量
Maven或Gradle构建工具
IDE(如IntelliJ IDEA、Eclipse等)
3. 下载与安装MyBatis
访问MyBatis官方网站,下载最新版本的MyBatis压缩包,并解压到指定目录。或者使用插件进行使用
这里我使用的是插件
4. 配置MyBatis的核心文件
配置数据库连接信息:在jdbc.properites文件中配置数据库连接信息,包括驱动类、URL、用户名和密码等。
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://47.100.191.44:3308/mybatis_ssm?useUnicode=true&characterEncoding=UTF-8
jdbc.username=test01
jdbc.password=test01
配置Mapper文件路径:在mybatis-config.xml文件中添加Mapper文件的扫描路径,告诉MyBatis去哪里找Mapper接口对应的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>
<!-- 引入外部配置文件 -->
<properties resource="jdbc.properties"/>
<settings>
<setting name="logImpl" value="LOG4J2"/>
</settings>
<!-- 别名 -->
<typeAliases>
<!--<typeAlias type="com.javaxl.model.Book" alias="Book"/>-->
</typeAliases>
<!-- 配置mybatis运行环境 -->
<environments default="development">
<environment id="development">
<!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
<transactionManager type="jdbc"/>
<!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
<!-- POOLED 表示支持JDBC数据源连接池 -->
<!-- UNPOOLED 表示不支持数据源连接池 -->
<!-- JNDI 表示支持外部数据源连接池 -->
<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="com/niyin/mapper/BookMapper.xml"/>
</mappers>
</configuration>
6. 测试MyBatis是否成功搭建
编写一个简单的Java程序,使用MyBatis查询数据库并输出结果,验证MyBatis环境是否搭建成功。
biz
package com.niyin.biz;
import com.niyin.model.Book;
public interface BookBiz {
int deleteByPrimaryKey(Integer bid);
int insert(Book record);
int insertSelective(Book record);
Book selectByPrimaryKey(Integer bid);
int updateByPrimaryKeySelective(Book record);
int updateByPrimaryKey(Book record);
}
impl
package com.niyin.biz.impl;
import com.niyin.biz.BookBiz;
import com.niyin.mapper.BookMapper;
import com.niyin.model.Book;
public class BookBizimpl implements BookBiz {
private BookMapper bookMapper;
public BookMapper getBookMapper() {
return bookMapper;
}
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
@Override
public int deleteByPrimaryKey(Integer bid) {
return bookMapper.deleteByPrimaryKey(bid);
}
@Override
public int insert(Book record) {
return bookMapper.insert(record);
}
@Override
public int insertSelective(Book record) {
return bookMapper.insertSelective(record);
}
@Override
public Book selectByPrimaryKey(Integer bid) {
return bookMapper.selectByPrimaryKey(bid);
}
@Override
public int updateByPrimaryKeySelective(Book record) {
return bookMapper.updateByPrimaryKeySelective(record);
}
@Override
public int updateByPrimaryKey(Book record) {
return bookMapper.updateByPrimaryKey(record);
}
}
ultis
package com.niyin.utils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class SessionUtil {
private static SqlSessionFactory sessionFactory;
private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>();
static {
sessionFactory = new SqlSessionFactoryBuilder().build(SessionUtil.class.getResourceAsStream("/mybatis.cfg.xml"));
}
public static SqlSession openSession() {
SqlSession session = threadLocal.get();
if (null == session) {
session = sessionFactory.openSession();
threadLocal.set(session);
}
return session;
}
public static void main(String[] args) {
SqlSession session = openSession();
System.out.println(session.getConnection());
session.close();
// System.out.println(session.getConnection());
}
}
7. MyBatis的删查测试mybatis
demo1
用于测试删除和查询
package com.niyin.demo;
import com.niyin.biz.BookBiz;
import com.niyin.biz.impl.BookBizimpl;
import com.niyin.mapper.BookMapper;
import com.niyin.model.Book;
import com.niyin.utils.SessionUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.text.Bidi;
public class demo1 {
private SqlSession sqlSession;
private BookBiz bookBiz;
@Before
public void a(){
System.out.println("执行测试之前会执行的初始化代码");
sqlSession= SessionUtil.openSession();
BookBizimpl bookBiz=new BookBizimpl();
BookMapper mapper = sqlSession.getMapper(BookMapper.class);
bookBiz.setBookMapper(mapper);
this.bookBiz=bookBiz;
};
@After
public void b(){
System.out.println("执行测试之后会执行");
sqlSession.commit(true);
}
@Test
public void test1(){
System.out.println("测试方法");
Book book = bookBiz.selectByPrimaryKey(35);
System.out.println(book);
};
@Test
public void test2(){
int i = bookBiz.deleteByPrimaryKey(35);
System.out.println(i);
};
}
以上是关于MyBatis入门及环境搭建以及增删改查操作的简要介绍和扩展内容。通过学习和实践这些基本操作,可以更好地利用MyBatis进行数据库操作,提高开发效率。希望对你有所帮助!