Mybatis是当前主流的Java持久层框架之一,是一种ORM框架。性能优异,有高度的灵活性、可优化性、易于维护。Mybatis是一个支持普通SQL查询、存储过程以及高级映射的持久层框架,消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,并使用简单的XML或者注解进行配置和原始映射,用以将接口和Java的POJO映射成数据库中的记录。Mybatis也被称为ORM(对象关系映射)框架,通过Java对象与数据表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。
准备工作:1.mybatis jar包 2.数据库驱动jar包
注:安装mysql,并有管理mysql的图形化界面,个人推荐Navicat premium
思路操作:
0.在src下创建model包,model包下创建userinfo.class实体类,model下的每个实体类对应数据库中的一张表。务必将数据库中所有属性写到实体类中。
1.在src下创建config.xml配置文件,该文件用于配置连接数据库的信息。
具体内容如下:
PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
2.在src下创建mapper包,在mapper包下创建UserinfoMapper.class接口类文件。该文件即SQL映射文件,该文件中配置了操作数据库的SQL语句,需要在config.xml中加载才能执行。mybatis-config.xml可以加载多个配置文件,每个配置文件对应数据库中的一张表。
具体实例如下:
public interface UserInfoMapper {
@Select("select * from userinfo")
public List getAllUserInfo();
@Select("select * from userinfo where u_account=#{u_account} and u_password=#{u_password}")
public UserInfo login(UserInfo userInfo);
@Insert("insert into userinfo(u_account,u_password) values(#{u_account},#{u_password})")
public int insert(UserInfo userInfo);
}
3.在src下创建utils包,在utils包下创建MybatisUtil.class文件,该文件用于集成功能获取factory。
具体内容如下:
public class MybatisUtils {
public static SqlSessionFactory getFactory() {
String config="config.xml";
InputStream inputStream=
MybatisUtils.class.getClassLoader().getResourceAsStream(config);
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
return factory;
}
}
4.在src下创建dao包,在dao包下创建UserinfoDao.class文件,该文件用于实现mapper接口类中的方法。
具体内容如下:
public class UserinfoDao {
public List getAllUser(){
SqlSession session=MybatisUtils.getFactory().openSession();
UserinfoMapper mapper=session.getMapper(UserinfoMapper.class);
List users=mapper.getAllUserinfo();
session.close();
return users;
}
public Userinfo login(Userinfo userinfo) {
SqlSession session=MybatisUtils.getFactory().openSession();
UserinfoMapper mapper=session.getMapper(UserinfoMapper.class);
Userinfo users=mapper.login(userinfo);
session.close();
return users;
}
public int insert(Userinfo userinfo) {
SqlSession session=MybatisUtils.getFactory().openSession();
UserinfoMapper mapper=session.getMapper(UserinfoMapper.class);
int users=mapper.insert(userinfo);
session.commit();
session.close();
return users;
}
}
5.测试:
public class Test01 {
public static void main(String[] args) {
UserinfoDao dao=new UserinfoDao();
// List users=dao.getAllUser();
// System.out.println(users);
Userinfo userinfo=new Userinfo();
//userinfo.setU_account("useraccount1");
//userinfo.setU_password("321");
//Userinfo user=dao.login(userinfo);
//System.out.println(user.getU_id());
userinfo.setU_account("lyh");
userinfo.setU_password("123");
dao.insert(userinfo);
}