目录
如果使用maven,则所需依赖如下pom.xml
实体类
MyBatilUtil工具类
dao(数据访问层)
sql mapper(sql映射文件)
主配置文件
如果使用maven,则所需依赖如下pom.xml
4.0.0
edu.tjdz
ch02-mybatis-dao
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
实体类
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 +
'}';
}
}
MyBatilUtil工具类
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;
}
}
dao(数据访问层)
package edu.tjdz.dao;
import edu.tjdz.domain.Student;
import java.util.List;
public interface StudentDao {
List selectStudent();
int insertStudent(Student student);
}
package edu.tjdz.dao.impl;
import edu.tjdz.dao.StudentDao;
import edu.tjdz.domain.Student;
import edu.tjdz.utils.MyBatitsUtils;
import org.apache.ibatis.session.SqlSession;
import java.util.List;
public class StudentDaoImpl implements StudentDao {
@Override
public List selectStudent() {
//获取SqlSession对象
SqlSession sqlSession = MyBatitsUtils.getSqlSession();
String sqlId = "edu.tjdz.dao.StudentDao.selectStudent";
//执行sql语句
List students = sqlSession.selectList(sqlId);
//关闭
sqlSession.close();
return students;
}
@Override
public int insertStudent(Student student) {
//获取SqlSession对象
SqlSession sqlSession = MyBatitsUtils.getSqlSession();
String sqlId = "edu.tjdz.dao.StudentDao.insertStudent";
//执行sql语句
int nums = sqlSession.insert(sqlId,student);
//提交事务
sqlSession.commit();
//关闭
sqlSession.close();
return nums;
}
}
sql mapper(sql映射文件)
insert into student values(#{id},#{name},#{email},#{age})
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 +
'}';
}
}
MyBatilUtil工具类
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;
}
}
dao(数据访问层)
package edu.tjdz.dao;
import edu.tjdz.domain.Student;
import java.util.List;
public interface StudentDao {
List selectStudent();
int insertStudent(Student student);
}
package edu.tjdz.dao.impl;
import edu.tjdz.dao.StudentDao;
import edu.tjdz.domain.Student;
import edu.tjdz.utils.MyBatitsUtils;
import org.apache.ibatis.session.SqlSession;
import java.util.List;
public class StudentDaoImpl implements StudentDao {
@Override
public List selectStudent() {
//获取SqlSession对象
SqlSession sqlSession = MyBatitsUtils.getSqlSession();
String sqlId = "edu.tjdz.dao.StudentDao.selectStudent";
//执行sql语句
List students = sqlSession.selectList(sqlId);
//关闭
sqlSession.close();
return students;
}
@Override
public int insertStudent(Student student) {
//获取SqlSession对象
SqlSession sqlSession = MyBatitsUtils.getSqlSession();
String sqlId = "edu.tjdz.dao.StudentDao.insertStudent";
//执行sql语句
int nums = sqlSession.insert(sqlId,student);
//提交事务
sqlSession.commit();
//关闭
sqlSession.close();
return nums;
}
}
sql mapper(sql映射文件)
insert into student values(#{id},#{name},#{email},#{age})
package edu.tjdz.dao;
import edu.tjdz.domain.Student;
import java.util.List;
public interface StudentDao {
List selectStudent();
int insertStudent(Student student);
}
package edu.tjdz.dao.impl;
import edu.tjdz.dao.StudentDao;
import edu.tjdz.domain.Student;
import edu.tjdz.utils.MyBatitsUtils;
import org.apache.ibatis.session.SqlSession;
import java.util.List;
public class StudentDaoImpl implements StudentDao {
@Override
public List selectStudent() {
//获取SqlSession对象
SqlSession sqlSession = MyBatitsUtils.getSqlSession();
String sqlId = "edu.tjdz.dao.StudentDao.selectStudent";
//执行sql语句
List students = sqlSession.selectList(sqlId);
//关闭
sqlSession.close();
return students;
}
@Override
public int insertStudent(Student student) {
//获取SqlSession对象
SqlSession sqlSession = MyBatitsUtils.getSqlSession();
String sqlId = "edu.tjdz.dao.StudentDao.insertStudent";
//执行sql语句
int nums = sqlSession.insert(sqlId,student);
//提交事务
sqlSession.commit();
//关闭
sqlSession.close();
return nums;
}
}
sql mapper(sql映射文件)
insert into student values(#{id},#{name},#{email},#{age})



