前置工作
- 导包(mysql-connector-java、mybatis)
- 实体类
Mapper层
1.接口
public interface BookMapper {
public Book getBookById(Integer bookID);
}
2.创建Mapper的映射文件
select * from books where bookID=#{bookID}
Service层
可以不使用Service层,使用其他方式包含以下核心代码也可以。
核心代码
static {
String resource = "mybatis-config.xml";
try {
InputStream inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
e.printStackTrace();
}
}
//1.读取xml配置文件,创建SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
//2服务器托管网.通过创建SqlSessionFactory对象获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//3.通过SqlSession对象获取代理对象mapper,传入接口class对象
BookMapper mapper=sqlSession.getMapper(BookMapper.class);
//4.通过mapper调用接口对应方法
mapper.getBookById(bookID);
以下为使用Service层实现的方式
1.接口
public interface BookService {
Book getBookById(Integer bookID);
}
2.接口实现类(重点关注)
public class BookServiceImpl implements BookService{
static InputStream inputStream = null;
static {
String resource = "mybatis-config.xml";
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
e.printStackTrace();
}
}
//1.读取xml配置文件,创建SqlSessionFactory对象
private final SqlSessionFactory sqlSessionFactory
= new SqlSessionFactoryBuilder().build(inputStream);
@Override
public Book getBookById(Integer bookID) {
//2.通过创建SqlSessionFactory对象获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//3.通过SqlSession对象获取代理对象mapper,传入接口class对象,
BookMapper mapper = sqlSession.getMapper(BookMapper.class);
//4.通过mapper调用接口对应方法
return mapper.getBookById(bookID);
}
}
Mybatis配置文件mybatis-config.xml(重点关注)
服务器托管网
测试
BookService bookServicelmpl = new BookServiceImpl();
System.out.println(bookServicelmpl.getBookById(2));
遇到的问题
1.BookMapper.xml不放在resources下,加过滤
src/main/java
**/*.properties
**/*.xml
true
src/main/resources
**/*.properties
**/*.xml
true
2.解决xml编码问题:1 字节的 UTF-8 序列的字节 1 无效:https://www.cnblogs.com/thetree/p/12991403.html
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: IT工单治理野史:由每周最高150+治理到20+ | 京东物流技术团队
背景 相信不少人都值过班当过小秘吧,每天都要在线排查与解答各种各样来自IT或”单聊”的问题,同时还要针对每个问题进行”复盘”分析,在完善系统、提高体验的同时挖掘出其中的雷点,防止某一天突然”爆炸”造成不可控的局面。 我们这边在值班小秘每日进行线上问题排查、解答…