2019独角兽企业重金招聘Python工程师标准>>>
MyBatis学习笔记
一、数据库与数据表的创建
1.创建数据库
create database thymeleaf;
use thymeleaf;
2.创建数据表
create table tb_user(
-> id int not null auto_increment,
-> name varchar(20),
-> password varchar(50),
-> email varchar(50),
-> primary key(id)
-> )engine=innodb default charset=utf8;
3.插入测试数据
insert into tb_user
-> (name,password,email)
-> values('admin','admin','[email protected]');
二、创建Java项目
1.新建Java项目
2.在项目下创建User类,内容如下:
package com.sky.demo2.bean;
public class User {
private Integer id;
private String name;
private String password;
private String email;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
", email='" + email + '\'' +
", cg=" + cg +
'}';
}
//省略其setter和getter方法
}
三、Mybatis入门
1.引入mybatis
要使用MyBatis,只需将mybatis-x.x.x.jar文件置于classpath中即可。如果使用Maven来构建项目,则需将下面的dependency代码置于pom.xml文件中
org.mybatis
mybatis
x.x.x
每个基于MyBatis的应用都是以一个SqlSessionFactory的实例为中心的。
本次学习采用将mybatis-x.x.x.jar文件复制于classpath中,
在项目要根目录下,创建lib目录,将mybatis-3.4.6.jar和mysql-connector-java-5.1.44-bin.jar文件复制到该目录下,并添加到构建路径中。
2.创建mybatis-config.xml文件
每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。
从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。
mybatis-config.xml配置文件内容如下:
其中properties,引入外部配置文件,该文件中主要配置数据库的相关信息,内容如下:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/thymeleaf
username=root
password=123456
datasource部分,配置数据库的连接信息,从外部配置文件中取得
部分,配置Mapper映射文件的路径,有两种方式,一种是为每一个Mapper文件配置,另一种是配置Mapper文件的包路径。分别如下
3.创建SqlSessionFactory,并从中获取SqlSession
为了实现该功能,采用工具类的方式实现,代码如下
package com.sky.demo2.util;
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 DBUtil {
private static SqlSessionFactory sqlSessionFactory;
static{
String resource="mybatis-config.xml";
try {
InputStream inputStream=Resources.getResourceAsStream(resource);
sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSession(){
return sqlSessionFactory.openSession();
}
}
通过该类的的静态方法getSession()来获取到SqlSession
4.采用接口的方式创建Mapper映射
首先,创建一个接口,接口内容如下:
package com.sky.demo2.dao;
import com.sky.demo2.bean.User;
import java.util.List;
public interface UserMapper {
public User getUserById(int id);
public List getUserByClassId(int id);
}
其次,创建Mapper的SQL映射文件,内容如下:
四、利用mybatis访问查询数据
package com.sky.demo2;
import com.sky.demo2.bean.ClassAndGrade;
import com.sky.demo2.bean.User;
import com.sky.demo2.dao.ClassAndGradeMapper;
import com.sky.demo2.dao.UserMapper;
import com.sky.demo2.util.DBUtil;
import org.apache.ibatis.session.SqlSession;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
UserMapper userMapper=session.getMapper(com.sky.demo2.dao.UserMapper.class);
User user=userMapper.getUserById(1);
System.out.println(user.toString());
}
}