mybatis框架入门程序:演示通过mybatis实现数据库的查询操作

发布于:2021-09-13 08:52:07

我们现在工程基于的数据库见“https://www.cnblogs.com/wyhluckdog/p/10147754.html ”这篇博文。


1.mybatis下载


  mybatis的代码由githua.com管理,地址:https://github.com/mybatis/mybatis-3/releases


  


  *?mybatis-3.2.7.jar----mybatis的核心包


  * lib----mybatis的依赖包


  *?mybatis-3.2.7.pdf----mybatis使用手册


2.需求


  实现以下功能:


    根据用户id查询一个用户的信息


    根据用户名称模糊查询用户信息列表


    添加用户


    更新用户


    删除用户


3.工程搭建


(1)第一步:创建java工程


  使用ecplise创建java工程,jdk为1.7.0_72.


(2)第二步:导入jar包


  加入mybatis核心包、依赖包(在lib目录下)、数据驱动包、单元测试包。


  


(3)第三步:创建包结构config,我们将所有的配置文件均放在这个包下。


(4)第四步:在config包下创建配置文件log4j.properties。



# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# 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%n

  mybatis默认使用log4j作为作为输出日志信息。


(5)第五步:在config包下创建SqlMapConfig.xml配置文件。




PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">



















?  SqlMapConfig.xml是mybatis核心配置文件,上边文件的配置内容为数据源、事务管理。


(6)第六步:po类。在工程下创建po包,用于放置po类(本质上与bean类没有区别,同样是参数和对应的set/get方法)。


  po类作为mybatis进行sql映射使用,po类通常与数据库表对应,User.java如下:



package com.huida.po;

import java.util.Date;

public class User {

private int id;
private String username;// 用户姓名
private String sex;// 性别
private Date birthday;// 生日
private String address;// 地址
public void setId(int id) {
this.id = id;
}
public void setUsername(String username) {
this.username = username;
}
public void setSex(String sex) {
this.sex = sex;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public void setAddress(String address) {
this.address = address;
}
public int getId() {
return id;
}
public String getUsername() {
return username;
}
public String getSex() {
return sex;
}
public Date getBirthday() {
return birthday;
}
public String getAddress() {
return address;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + "]";
}

}

(7)sql映射文件。


  在config包下创建sql映射文件User.xml:




PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">






  namespace:命名空间,用于sql隔离语句。


  在mapper标签中要写很多sql语句。在开发项目的过程中有很多人都会写Sql语句,在最后整合的时候可能会重复。现在我们使用命名空间开进行隔离,比如zhangsan写的select * from user,我们可以写为:zhangsan:select * from user来进行标识。


(8)第八步:加载映射文件。


  mybatis框架需要加载映射文件,将User.xml添加在SqlMapConfig.xml,如下:







(9)第九步:根据id查询用户信息


  1、映射文件:


  在User.xml的mapper标签中添加:






  id:sql语句的唯一标识 test:findUserById就可以唯一标识sql语句
paremeterType:指定传入的参数类型
resultSetType:返回值结果类型
#{}占位符:起到占位的左永刚,如果传入的基本类型{String,long,double,int boolean等},那么#{}中的变量名称可以随意写。

  2、测试程序:



package com.huida.test;

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;

import com.huida.po.User;

public class UserTest {

@Test
public void testFindUserById() throws Exception{
//通过流将核心配置文件读取进来
InputStream inputStream=Resources.getResourceAsStream("config/SqlMapConfig.xml");
//通过核心配置文件输入流来创建工厂
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂创建session
SqlSession openSession=factory.openSession();
//查询语句,查询id为1的记录,返回值为User对象
User user=openSession.selectOne("test.findUserById", 1);
System.out.println(user);
//关闭资源
openSession.close();
//factory没有close(),因为session关闭之后,factory也就关闭了。
}

}

(10)执行测试程序,单元测试UserTest方法,可以看到在控制台输出id以及username。说明查询成功。


?



转载于:https://www.cnblogs.com/wyhluckdog/p/10149480.html

相关推荐

最新更新

猜你喜欢