SSM快速入门第一天:初识MyBatis

给大家带来Java中常用框架SSM的实操学习,更注重实际操作,文字性描述不多,适合已经学习过JavaWeb相关内容的小可爱。欢迎各位指正哦。
废话不多说,开始喽:

1、在Eclipse中创建web项目mybatis01
2、在项目中导入mybatis相关jar包(自己百度下载一个就行)
在这里插入图片描述
3、创建mybatis核心配置文件mybatis-config.xml
在这里插入图片描述
4、创建jdbc.properties文件
在这里插入图片描述
5、编写jdbc.properties文件的内容
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
username=root
password=111

6、编写mybatis-config.xml配置文件内容
在这里插入图片描述

7、创建数据库mybatis,并在期中创建表tab_user,表结构如下:
在这里插入图片描述
8、创建用户POJO 类User.java
在这里插入图片描述
9、编写User.java的内容(注意,类名可以和表名不一致,但属性名必须和表中列名一致)
package com.mybatis.pojo;
public class User {
private int id;
private String name;
private String password;
private String phone;
private String address;
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 getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
10、创建UserMapper.xml文件,此文件为SQL映射文件,完成与POJO的映射
在这里插入图片描述
11、编写UserMapper.xml文件内容
在这里插入图片描述
12、在mybatis-config.xml文件的mappers标签中加入如下代码,将mapper文件加入到配置文件中。
在这里插入图片描述
13、创建测试类UserTest.java进行功能测试
在这里插入图片描述
14、编写UserTest.java文件的内容
package com.mybatis.test;
import java.io.IOException;
import java.io.InputStream;
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 org.junit.Test;
public class UserTest {
//测试getCount
@Test
public void t01(){
//读取全局配置文件mybatis-config.xml
String resource = “mybatis-config.xml”;
InputStream in = null;
SqlSession session = null;
try {
in = Resources.getResourceAsStream(resource);
//创建SqlSessionFactory对象,此对象可以完成对配置文件的读取
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//创建SqlSession对象,磁对象调用mapper文件进行数据操作,需要注意的是必须先把mapper文件映入到全局配置文件中才能起效
session = factory.openSession();
//mybatis通过mapper文件的namespace和子元素的id来找到相应的SQL,从而执行查询操作
int count = session.selectOne(“com.mybatis.dao.UserMapper.getCount”);
System.out.println(count);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
//关闭SqlSession对象
session.close();
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
至此,我们完成了第一个mybatis的小例子,必须要会哦!


来做个小练习吧,需求:利用mybatis获取tab_user表所有数据。
1、在UserMapper.xml文件的mapper标签中加入如下代码
在这里插入图片描述
2、在UserTest.java文件中新建m02()方法,代码如下
@Test
public void m02(){
String resource = “mybatis-config.xml”;
InputStream in = null;
SqlSession session = null;
try {
in = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
session = factory.openSession();
List list = session.selectList(“com.mybatis.dao.UserMapper.getAllUser”);
for(User u:list){
System.out.println(u.getName());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
session.close();
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
还可以自己重新建表将以上流程重新再来几遍哦!


在UserTest.java文件的m01和m02方法中,我们有获取到SqlSessionFactory 对象,需要注意的是,SqlSessionFactory一旦创建,就会在整个应用运行过程中始终存在,没有理由去销毁或再创建,并且在应用运行中也不建议多次创建。所以,我们接下来把代码进行优化。
1、创建MyBatisUtil.java文件
在这里插入图片描述
2、编写MyBatisUtil.java文件,代码如下:
package com.mybatis.util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtl {
private static SqlSessionFactory factory;
//静态代码块只运行一次,所以factory只会被创建一次
static{
String resorce = “mybatis-config.xml”;
try {
InputStream in = Resources.getResourceAsStream(resorce);
factory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//创建SqlSession对象和关闭SqlSession
public static SqlSession getSqlSession(){
return factory.openSession();
}
public static void closeSqlSession(SqlSession session){
if(session != null){
session.close();
}
}
}
3、在UserTest.java文件中创建m03方法,对刚才写的工具类进行测试,代码如下
@Test
public void m03(){
SqlSession session = MyBatisUtl.getSqlSession();
List list = session.selectList(“com.mybatis.dao.UserMapper.getAllUser”);
for(User u:list){
System.out.println(u.getName());
}
session.close();
}


接下来,我们换种方式来操作数据。基于接口方式操作数据
1、创建UserDao.java文件,注意,它是接口哦
在这里插入图片描述
2、编写UserDao.java文件,代码如下:
package com.mybatis.dao;
import java.util.List;
import org.apache.ibatis.annotations.Select;
import com.mybatis.pojo.User;
public interface UserDao {
//查询用户列表
@Select(“select * from tab_user”)
public List getAllUser();
}
3、在mybatis-config.xml文件的mappers标签中加入如下代码,将接口文件加入到配置文件中
在这里插入图片描述
4、在UserTest.java文件中创建m04方法,对刚才写的工具类进行测试,代码如下
@Test
public void m04(){
SqlSession session = MyBatisUtl.getSqlSession();
List list = session.getMapper(UserDao.class).getAllUser();
for(User u:list){
System.out.println(u.getName());
}
session.close();
}
这样也能顺利运行呢!多建几张表试试哦


接下来,再讲一个小技巧
在UserMapper.xml中,有这样一段配置:
在这里插入图片描述
注意红色框中的内容,指定了结果的类型,指向对应的实体类,但这样写完整类名难免觉得写得太多,那么,现在我们就来将这里进行一个简化。
1、在mybatis-config.xml文件中,增加如下内容(注意:加到environments标签之前,不相信的话,可以加在其他地方试试哦!)
在这里插入图片描述
通过package的name属性直接指定报名,MyBatis会自动扫描指定包下的JavaBean,并默认设置一个别名,该别名就是实体类的类名哦。
2、接下来,将UserMapper.xml中的代码进行修改,如下所示:
在这里插入图片描述
红框中就是修改后的内容哦。
3、运行UserTest.java文件的m03方法进行测试,可以看到,结果和之前一样。

到这里呢,MyBatis的第一部分内容就结束了,要多练习哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值