官方网站http://www.mybatis.org/mybatis-3/zh/index.html
pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.yujian</groupId>
<artifactId>mybatisdemo3</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>

</dependencies>
<!--下面是防止src/main/java下面的东西无法加载到resources下面(若是把db.properties和mybatis-config.xml直接放在resources下面,则不需要)-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>
</project>


mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="db.properties"></properties>
<!--导入参数来源-->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
<!--用于生成可视的sql命令-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings><!--配置驼峰命名法必须在properties后面,有顺序,ctr然后点configuration查看顺序-->
<typeAliases>
<!--<typeAlias type="com.yujian.pojo.Student" alias="s2"></typeAlias>-->
<!--如果用上面这种,则每个pojo里面的类都需要加入进来写别名-->
<package name="com.yujian.pojo"></package>
<!--如果上面这种,则自动扫描包pojo下的注解类的别名-->
</typeAliases>
<!--environments可以写多个,然后通过写id,在StudentMapper.xml下的sql语句中
加入大baseid即如:<select >db.properties

#mysql
mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/school?useSSL=false
mysql.username=root
mysql.password=root

MybatisHelper.class
package com.yujian.util;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;


public class MybatisHelper {
private static SqlSessionFactory sqlSessionFactory=null;
public static SqlSessionFactory getSqlSessionFactory(){
if(sqlSessionFactory==null) {
try {
/*InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);*/
InputStream inputStream=Resources.getResourceAsStream("mybatis-config.xml");
sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
return sqlSessionFactory;
}
}

studentsMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yujian.model.StudentMapper">
<!--<select >
select * from student where stuName like #{stuName} and stuSex like #{stuSex} and stuId=#{stuId}
</select>

</mapper>
StudentMapper.class
package com.yujian.model;

import com.yujian.pojo.Student;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

public interface StudentMapper {
@Select("select s.*,c.* from student s inner join classinfo c on s.classid=c.classid")
@Results(id = "student",value = {
@Result(column = "stuName",property = "stuName1"),
/*@Result(column = "classId",property = "classInfo.classId"),
@Result(column = "className",property = "classInfo.className"),*/
@Result(property = "classInfo",column = "classId",one=@One(select = "com.yujian.model.ClassInfoMapper.findListClassInfoById"))
/* @Result(column = "stuId",property = "stuId"),
@Result(column = "stuBirth",property = "stuBirth"),
@Result(column = "stuSex",property = "stuSex")
列不需要字段写全,只要不同名字段属性,给一一匹配就好
*/

})
List<Student> findeStudentList();
@Select("select s.*,c.* from student s inner join classinfo c on s.classid=c.classid")
@Results(id = "student2",value = {
@Result(column = "stuName",property = "stuName1"),
@Result(column = "className",property = "classInfo.className") ,
@Result(column = "classId",property = "classInfo.classId")
})
List<Student> findStudentList();
@Select("select s.*,c.* from student s inner join classinfo c on s.classid=c.classid" +
" where s.stuid=#{stuId}")
/*@ResultMap("com.yujian.model.StudentMapper.r1")*/
@ResultMap("student2")

Student findStudentById(int stuId);
void insertStudent(Student student);
void updateStudent(Student student);
void deleteStudent(int stuId);
@Select("select s.*,c.* from student s inner join classinfo c on s.classid=c.classid" +
" where s.classId=#{classId}")
/*@ResultMap("com.yujian.model.StudentMapper.r1")*/
/*@Results({
@Result(column = "stuName",property = "stuName1")
})*/
@Results(id = "student3",value = {
@Result(column = "stuName",property = "stuName1"),
@Result(column = "className",property = "classInfo.className") ,
@Result(column = "classId",property = "classInfo.classId")
})
List<Student> findStudentListByClassId(int classId);
List<Student> findAssoListStudent();
@Select("select * from student where stuName like #{stuName} and stuSex like #{stuSex} and stuId=#{stuId}")
@Results({
@Result(column = "stuName",property = "stuName1")
})
List<Student> findStuLike(@Param("stuName") String stuName,@Param("stuSex") String stuSex,@Param("stuId") int stuId);
List<Student> findStuMap(Map map);
@Select("select * from student where stuName like #{param1} and stuSex like #{param2} and stuId=#{param3}")
@Results({
@Result(column = "stuName",property = "stuName1")
})
List<Student> findStuLike2(String stuName,String stuSex,int stuId);
}

测试文件
import com.yujian.model.ClassInfoMapper;
import com.yujian.model.StudentMapper;
import com.yujian.pojo.ClassInfo;
import com.yujian.pojo.Student;
import com.yujian.util.Dateformat;
import com.yujian.util.MybatisHelper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class StudentTest {
@Test
public void testFindStudentList(){
SqlSessionFactory sqlSessionFactory=MybatisHelper.getSqlSessionFactory();

SqlSession sqlSession=sqlSessionFactory.openSession();
try {
StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);
List<Student> students=studentMapper.findeStudentList();
System.out.println(students.size());
System.out.println(students.get(0).getStuName1());
System.out.println(students.get(0).getClassInfo().getClassName());
System.out.println(students.get(0).getStuSex());

/*sqlSession.commit();*/
/* sqlSession.rollback();*/
} catch (Exception e) {
e.printStackTrace();
sqlSession.rollback();
} finally {
sqlSession.close();
}
}
@Test
public void testFindStudent(){
SqlSessionFactory sqlSessionFactory=MybatisHelper.getSqlSessionFactory();
SqlSession sqlSession=sqlSessionFactory.openSession();
StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);
try {
Student student=studentMapper.findStudentById(2);
System.out.println(student.getClassInfo().getClassName());
} catch (Exception e) {
e.printStackTrace();
sqlSession.rollback();
} finally {
sqlSession.close();
}
}
@Test
public void testinsertStudent(){
SqlSessionFactory sqlSessionFactory=MybatisHelper.getSqlSessionFactory();
SqlSession sqlSession=sqlSessionFactory.openSession();

StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);
ClassInfoMapper classInfoMapper=sqlSession.getMapper(ClassInfoMapper.class);

try {
Student student=new Student();
student.setStuName1("李四");
student.setStuSex(1);
ClassInfo classInfo=null;
classInfo=classInfoMapper.findListClassInfoById(1);
student.setClassInfo(classInfo);

studentMapper.insertStudent(student);
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
sqlSession.rollback();
} finally {
sqlSession.close();
}


}
@Test
public void testupdateStudent(){
SqlSessionFactory sqlSessionFactory=MybatisHelper.getSqlSessionFactory();
SqlSession sqlSession=sqlSessionFactory.openSession();

StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);
ClassInfoMapper classInfoMapper=sqlSession.getMapper(ClassInfoMapper.class);
Dateformat format=new Dateformat();

try {
Student student=studentMapper.findStudentById(2);
student.setStuName1("王五");
student.setStuSex(0);
String birth="1997-03-30";
student.setStuBirth(format.format(birth));
ClassInfo classInfo=null;
classInfo=classInfoMapper.findListClassInfoById(2);
student.setClassInfo(classInfo);

studentMapper.updateStudent(student);
sqlSession.commit();

} catch (Exception e) {
e.printStackTrace();
sqlSession.rollback();
} finally {
sqlSession.close();
}
}
@Test
public void testDeleteStudent(){
SqlSessionFactory sqlSessionFactory=MybatisHelper.getSqlSessionFactory();
SqlSession sqlSession=sqlSessionFactory.openSession();
StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);

try {
studentMapper.deleteStudent(3);
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
sqlSession.rollback();
} finally {
sqlSession.close();
}

}
@Test
public void testfindStudentListByClassId(){
SqlSessionFactory sqlSessionFactory=MybatisHelper.getSqlSessionFactory();
SqlSession sqlSession=sqlSessionFactory.openSession();
StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);

try {
List<Student> students=studentMapper.findStudentListByClassId(1);
System.out.println(students.get(0).getClassInfo().getClassName());
System.out.println(students.get(0).getStuName1());
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
sqlSession.rollback();
} finally {
sqlSession.close();
}

}
@Test
public void testFindAssoListStudent(){

SqlSessionFactory sqlSessionFactory=MybatisHelper.getSqlSessionFactory();

SqlSession sqlSession=sqlSessionFactory.openSession();
try {
StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);
List<Student> students=studentMapper.findAssoListStudent();
System.out.println(students.size());
System.out.println(students.get(0).getStuName1());
System.out.println(students.get(0).getClassInfo().getClassName());
System.out.println(students.get(0).getStuSex());

/*sqlSession.commit();*/
/* sqlSession.rollback();*/
} catch (Exception e) {
e.printStackTrace();
sqlSession.rollback();
} finally {
sqlSession.close();
}
}
@Test
public void testListLikeStu(){
SqlSession sqlSession=MybatisHelper.getSqlSessionFactory().openSession();
try {
StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);

List<Student> students=studentMapper.findStuLike("张%","1",1);
for (Student s:students){
System.out.println(s.getStuName1());
}
} catch (Exception e) {
e.printStackTrace();
sqlSession.rollback();
} finally {
sqlSession.close();
}
}@Test
public void testListMapStu(){
SqlSession sqlSession=MybatisHelper.getSqlSessionFactory().openSession();
try {
StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);
Map<String,Object> map=new HashMap<String, Object>();
map.put("stuName","张%");
map.put("stuSex","1");
map.put("stuId",1);
List<Student> students=studentMapper.findStuMap(map);
for (Student s:students){
System.out.println(s.getStuName1());
}
} catch (Exception e) {
e.printStackTrace();
sqlSession.rollback();
} finally {
sqlSession.close();
}
}
@Test
public void testListLikeStu2(){
SqlSession sqlSession=MybatisHelper.getSqlSessionFactory().openSession();
try {
StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);

List<Student> students=studentMapper.findStuLike2("张%","1",1);
for (Student s:students){
System.out.println(s.getStuName1());
}
} catch (Exception e) {
e.printStackTrace();
sqlSession.rollback();
} finally {
sqlSession.close();
}
}
}


相关文章:

  • 2021-11-18
  • 2021-06-02
  • 2021-08-06
  • 2022-12-23
  • 2022-12-23
  • 2021-07-30
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-15
  • 2022-01-17
  • 2021-09-18
相关资源
相似解决方案