注:本文仅提供作者自己查阅使用
1.1、准备导入MyBati、log4j以及 mysql 驱动 相关的jar包
规范:
-
MyBatis配置文件一般建议使用 mybatis-config.xml文件
文件位置
整个结构:
tips:这里的小鸟是装了一个叫 MyBatisX 的一个插件
mybatis-config.xml
1.3、log4j日志配置文件
log4j日志配置文件,此配置文件在出现错误,或者异常的时候打印日志信息
# Global logging configuration log4j.rootLogger=ERROR, stdout # MyBatis logging configuration... log4j.logger.org.mybatis.example.BlogMapper=TRACE # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n1.4、编写关联外部的 xml文件、接口、以及实体类
关联外部 .xml文件 一般建议和实体类放在一起
select * from user where id = #{id};
UserMapper接口
package mapper;
import org.apache.ibatis.annotations.Param;
import pojo.User;
import java.util.List;
import java.util.Map;
public interface UserMapper {
//根据id来查询数据
User selectUserById(int id);
List selectUserList();
List selectUserLikeUserName(String username);
// Integer addUser(User user);
Integer addUser(@Param(value = "username") String name,@Param(value = "password") String pwd);
// Integer addUser(Map map);
Integer updateUser(User user);
Integer deleteUser(int id);
}
User实体类
package pojo;
public class User {
private Integer id;
private String username;
private String password;
public User() {
}
public User(Integer id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + ''' +
", password='" + password + ''' +
'}';
}
}
实体类对应库中的表
MyBatisUtils
package utils;
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;
public class MyBatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
//MyBatis 核心配置文件名称
String config = "mybatis-config.xml";
InputStream is = null;
try {
is = Resources.getResourceAsStream(config);
} catch (IOException e) {
e.printStackTrace();
}
//创建工厂
sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
}
//获取SqlSession
public static SqlSession getSqlSession(){
//openSession() 里面可以不写true,不写则默认为 false 需要手动提交事务,手动提交事务需要调用 commit()方法,否则,处理的数据,不会持久化到数据库中。
return sqlSessionFactory.openSession(true);//写 true 代表自动管理事务
}
//释放资源
public static void closeSqlSession(SqlSession sqlSession){
if (sqlSession != null){
sqlSession.close();
}
}
}
1.6、测试
Demo
package demo;
import mapper.UserMapper;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import pojo.User;
import utils.MyBatisUtils;
public class Demo {
@Test
public void fun(){
//封装工具类后,就可以直接拿到 SqlSession 对象
SqlSession sqlSession = MyBatisUtils.getSqlSession();
//获取 UserMapper 接口
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//调用方法,执行依赖的 sql 语句
User user = userMapper.selectUserById(1);
System.out.println(user);
}
}



