目录
实现步骤
1.pom.xml依赖
2.创建数据库
3.数据库映射类
4.sql映射文件
5.mybatis主配置文件
6
.测试select
创建Util类
用于创建SqlSession
使用工具类测试select
测试insert数据
实现步骤
chapter-hello-mybatis:第一个入门的mybatis例子
实现步骤:
1.新建Student表
2.加入maven的mybatis坐标,mysql驱动的坐标
3.创建实体类,Student---保存表中的一个行数据
4.创建持久层的dao接口,定义操作数据库的方法
5.创建一个mybatis使用的配置文件
叫做mysql驱动:写sql语句的。一般一个表一个sql映射文件,这个文件是xml文件。
1.文件写在接口所在的目录中
2.文件名称和接口保持一致
6.创建mybatis的猪配置文件:
一个项目就一个主配置文件。
主配置文件提供数据库的连接信息和sql文件的位置信息
7.创建使用mybatis的类
1.pom.xml依赖
4.0.0
edu.tjdz
ch01-hello-mybatis
1.0-SNAPSHOT
UTF-8
1.8
1.8
junit
junit
4.11
test
org.mybatis
mybatis
3.5.6
mysql
mysql-connector-java
8.0.25
src/main/java
***.xml
false
2.创建数据库
3.数据库映射类
package edu.tjdz.domain;
//推荐和表名一样,容易记忆
public class Student {
Integer id;
String name;
String email;
Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + ''' +
", email='" + email + ''' +
", age=" + age +
'}';
}
}
package edu.tjdz.dao;
import edu.tjdz.domain.Student;
import java.util.List;
//接口,操作Student表
public interface StudentDao {
//查询Student表的所有数据
public List selectStudents();
//插入方法
//参数:Student,表示要插入的数据库的数据
//返回值:int ,表示执行insert操作后,影响数据库的行数
public int insertStudent(Student student);
}
4.sql映射文件
chapter-hello-mybatis:第一个入门的mybatis例子
实现步骤:
1.新建Student表
2.加入maven的mybatis坐标,mysql驱动的坐标
3.创建实体类,Student---保存表中的一个行数据
4.创建持久层的dao接口,定义操作数据库的方法
5.创建一个mybatis使用的配置文件
叫做mysql驱动:写sql语句的。一般一个表一个sql映射文件,这个文件是xml文件。
1.文件写在接口所在的目录中
2.文件名称和接口保持一致
6.创建mybatis的猪配置文件:
一个项目就一个主配置文件。
主配置文件提供数据库的连接信息和sql文件的位置信息
7.创建使用mybatis的类
4.0.0 edu.tjdz ch01-hello-mybatis 1.0-SNAPSHOT UTF-8 1.8 1.8 junit junit 4.11 test org.mybatis mybatis 3.5.6 mysql mysql-connector-java 8.0.25 src/main/java ***.xml false
2.创建数据库
3.数据库映射类
package edu.tjdz.domain;
//推荐和表名一样,容易记忆
public class Student {
Integer id;
String name;
String email;
Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + ''' +
", email='" + email + ''' +
", age=" + age +
'}';
}
}
package edu.tjdz.dao;
import edu.tjdz.domain.Student;
import java.util.List;
//接口,操作Student表
public interface StudentDao {
//查询Student表的所有数据
public List selectStudents();
//插入方法
//参数:Student,表示要插入的数据库的数据
//返回值:int ,表示执行insert操作后,影响数据库的行数
public int insertStudent(Student student);
}
4.sql映射文件
package edu.tjdz.domain;
//推荐和表名一样,容易记忆
public class Student {
Integer id;
String name;
String email;
Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + ''' +
", email='" + email + ''' +
", age=" + age +
'}';
}
}
package edu.tjdz.dao;
import edu.tjdz.domain.Student;
import java.util.List;
//接口,操作Student表
public interface StudentDao {
//查询Student表的所有数据
public List selectStudents();
//插入方法
//参数:Student,表示要插入的数据库的数据
//返回值:int ,表示执行insert操作后,影响数据库的行数
public int insertStudent(Student student);
}
4.sql映射文件
StudentDao.xml
insert into student values(#{id},#{name},#{email},#{age});
5.mybatis主配置文件
mybatis.xml
6.测试select
package edu.tjdz;
import edu.tjdz.domain.Student;
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;
import java.util.List;
public class MyApp {
public static void main(String[] args) throws IOException {
//访问mybatis读取student数据
//1.定义mybatis主配置文件的名称
String config = "mybatis.xml";
//2.读取config表示的文件
InputStream in = Resources.getResourceAsStream(config);
//3.创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//4.创建SqlSessionFactory对象
SqlSessionFactory factory = builder.build(in);
//5.[重要]获取SqlSession对象,从SqlSessionFactory中获取SqlSession
SqlSession sqlSession = factory.openSession();
//6.[重要]指定要执行的sql语句的标识。sql映射文件中的namespace+"."+标签的id值
String sqlId = "edu.tjdz.dao.StudentDao.selectStudents";
//7.执行sql语句,通过sqlId找到语句
List studentList = sqlSession.selectList(sqlId);
//8.输出结果
//studentList.forEach(student -> System.out.println(student));
for(Student stu : studentList){
System.out.println("查询的学生:"+stu);
}
//9.关闭资源
sqlSession.close();
}
}
创建Util类
用于创建SqlSession
package edu.tjdz.utils;
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 MyBatitsUtils {
private static SqlSessionFactory factory = null;
//静态代码块在类加载的时候执行
static {
String config = "mybatis.xml";
try {
InputStream in = Resources.getResourceAsStream(config);
//创建SqlSessionFactory对象,使用SqlSessionFactoryBuilder
factory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取SqlSession的方法
public static SqlSession getSqlSession(){
SqlSession sqlSession = null;
if (factory != null){
sqlSession = factory.openSession(true);
}
return sqlSession;
}
}
使用工具类测试select
package edu.tjdz;
import edu.tjdz.domain.Student;
import edu.tjdz.utils.MyBatitsUtils;
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;
import java.util.List;
public class MyApp2 {
public static void main(String[] args) throws IOException {
//[重要]获取SqlSession对象,从SqlSessionFactory中获取SqlSession
SqlSession sqlSession = MyBatitsUtils.getSqlSession();
//[重要]指定要执行的sql语句的标识。sql映射文件中的namespace+"."+标签的id值
String sqlId = "edu.tjdz.dao.StudentDao.selectStudents";
//执行sql语句,通过sqlId找到语句
List studentList = sqlSession.selectList(sqlId);
//输出结果
//studentList.forEach(student -> System.out.println(student));
for(Student stu : studentList){
System.out.println("查询的学生:"+stu);
}
//9.关闭资源
sqlSession.close();
}
}
测试insert数据
package edu.tjdz;
import edu.tjdz.domain.Student;
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 java.io.IOException;
import java.io.InputStream;
public class TestMybatis {
//测试方法,测试功能
@Test
public void testInsert() throws IOException {
//访问mybatis读取student数据
//1.定义mybatis主配置文件的名称
String config = "mybatis.xml";
//2.读取config表示的文件
InputStream in = Resources.getResourceAsStream(config);
//3.创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//4.创建SqlSessionFactory对象
SqlSessionFactory factory = builder.build(in);
//5.[重要]获取SqlSession对象,从SqlSessionFactory中获取SqlSession
//SqlSession sqlSession = factory.openSession();
SqlSession sqlSession = factory.openSession(true);
//6.[重要]指定要执行的sql语句的标识。sql映射文件中的namespace+"."+标签的id值
String sqlId = "edu.tjdz.dao.StudentDao.insertStudent";
//7.执行sql语句,通过sqlId找到语句
Student student = new Student();
student.setId(1005);
student.setName("关羽");
student.setEmail("gy@163.com");
student.setAge(50);
int nums = sqlSession.insert(sqlId,student);
//mybatis默认不是自动提交事务的,所以在insert,update,delete后要手动提交事务
//sqlSession.commit();
//8.输出结果
System.out.println("执行insert结果="+nums);
//9.关闭资源
sqlSession.close();
}
}
用于创建SqlSession
package edu.tjdz.utils;
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 MyBatitsUtils {
private static SqlSessionFactory factory = null;
//静态代码块在类加载的时候执行
static {
String config = "mybatis.xml";
try {
InputStream in = Resources.getResourceAsStream(config);
//创建SqlSessionFactory对象,使用SqlSessionFactoryBuilder
factory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取SqlSession的方法
public static SqlSession getSqlSession(){
SqlSession sqlSession = null;
if (factory != null){
sqlSession = factory.openSession(true);
}
return sqlSession;
}
}
使用工具类测试select
package edu.tjdz;
import edu.tjdz.domain.Student;
import edu.tjdz.utils.MyBatitsUtils;
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;
import java.util.List;
public class MyApp2 {
public static void main(String[] args) throws IOException {
//[重要]获取SqlSession对象,从SqlSessionFactory中获取SqlSession
SqlSession sqlSession = MyBatitsUtils.getSqlSession();
//[重要]指定要执行的sql语句的标识。sql映射文件中的namespace+"."+标签的id值
String sqlId = "edu.tjdz.dao.StudentDao.selectStudents";
//执行sql语句,通过sqlId找到语句
List studentList = sqlSession.selectList(sqlId);
//输出结果
//studentList.forEach(student -> System.out.println(student));
for(Student stu : studentList){
System.out.println("查询的学生:"+stu);
}
//9.关闭资源
sqlSession.close();
}
}
测试insert数据
package edu.tjdz;
import edu.tjdz.domain.Student;
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 java.io.IOException;
import java.io.InputStream;
public class TestMybatis {
//测试方法,测试功能
@Test
public void testInsert() throws IOException {
//访问mybatis读取student数据
//1.定义mybatis主配置文件的名称
String config = "mybatis.xml";
//2.读取config表示的文件
InputStream in = Resources.getResourceAsStream(config);
//3.创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//4.创建SqlSessionFactory对象
SqlSessionFactory factory = builder.build(in);
//5.[重要]获取SqlSession对象,从SqlSessionFactory中获取SqlSession
//SqlSession sqlSession = factory.openSession();
SqlSession sqlSession = factory.openSession(true);
//6.[重要]指定要执行的sql语句的标识。sql映射文件中的namespace+"."+标签的id值
String sqlId = "edu.tjdz.dao.StudentDao.insertStudent";
//7.执行sql语句,通过sqlId找到语句
Student student = new Student();
student.setId(1005);
student.setName("关羽");
student.setEmail("gy@163.com");
student.setAge(50);
int nums = sqlSession.insert(sqlId,student);
//mybatis默认不是自动提交事务的,所以在insert,update,delete后要手动提交事务
//sqlSession.commit();
//8.输出结果
System.out.println("执行insert结果="+nums);
//9.关闭资源
sqlSession.close();
}
}
package edu.tjdz;
import edu.tjdz.domain.Student;
import edu.tjdz.utils.MyBatitsUtils;
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;
import java.util.List;
public class MyApp2 {
public static void main(String[] args) throws IOException {
//[重要]获取SqlSession对象,从SqlSessionFactory中获取SqlSession
SqlSession sqlSession = MyBatitsUtils.getSqlSession();
//[重要]指定要执行的sql语句的标识。sql映射文件中的namespace+"."+标签的id值
String sqlId = "edu.tjdz.dao.StudentDao.selectStudents";
//执行sql语句,通过sqlId找到语句
List studentList = sqlSession.selectList(sqlId);
//输出结果
//studentList.forEach(student -> System.out.println(student));
for(Student stu : studentList){
System.out.println("查询的学生:"+stu);
}
//9.关闭资源
sqlSession.close();
}
}



