MyBatis Day_1
StudentMapper.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.Greatest.MyBaites.Mapper.StudentMapper">
<!-- 类似驼峰式命名 -->
<!-- <resultMap type="examstudent" id="student">
<id column="flow_id" property="FlowId" javaType="int"/>
<result column="IDCard" property="Idcard"/>
</resultMap> -->
<!-- <resultMap type="examstudent" id="exam">
<id colunm="flow_id" property="FlowId" javaType="int"/>
<result column="IDCard" property="IDCard"></result>
级联属性
<result column="bookname" property="library.bookname"/>
<association property="library" javaType="com.Greatest.MyBaites.Model.Library">
<id column="flow_id" property="FlowId"/>
<result column="bookname" property="bookname"></result>
<result column="price" property="price"></result>
</association>
</resultMap> -->
<resultMap type="com.Greatest.MyBaites.Model.examstudent" id="MyExam">
<id column="flow_id" property="FlowId"/>
<result column="bookname" property="library.bookname"/>
<result column="price" property="library.price"/>
</resultMap>
<!-- 链接查询 -->
<select id="getExam" parameterType="java.lang.String" resultType="examstudent">
select * from ${table} where Type=13
</select>
<select id="selectLibrary" resultMap="MyExam">
select examstudent.flow_id,examstudent.Type,IDCard,examCard,StudentName,bookname,Price
from examstudent join library where examstudent.flow_id=#{FlowId} and examstudent.flow_id=library.flow_id
</select>
<select id="selectBolg" resultType="examstudent">
select * from examstudent where Type=#{Type}
</select>
<select id="getStudents" resultType="examstudent">
select * from examstudent where Type=#{Type}
</select>
<select id="getStudentsList" resultType="examstudent">
select * from examstudent
</select>
<select id="getExamStuMap" resultType="examstudent">
select * from examstudent
</select>
<select id="getExamStuMapMH" resultType="examstudent">
<bind name="StudentName" value="'%'+StudentName+'%'"/>
SELECT * FROM examstudent WHERE StudentName LIKE #{StudentName}
</select>
<insert id="insertBolg">
insert into examstudent values(1,12,140525199702115117,955880,"lvqian",02,100)
</insert>
<insert id="insertTWO" parameterType="examstudent">
insert into examstudent values(#{FlowId},#{Type},#{IDCard},#{ExamCard},#{StudentName},#{Location},#{Grade})
</insert>
<!-- 自动生成主键值 要配置KeyProperty属性-->
<insert id="insertOne" parameterType="examstudent" keyProperty="FlowId" useGeneratedKeys="true">
insert into examstudent(Type,Idcard,ExamCard,StudentName,Location,Grade) values(#{Type},#{IDCard},#{ExamCard},#{StudentName},#{Location},#{Grade})
</insert>
<delete id="dleetethree" parameterType="int">
delete from examstudent where Type=#{Type}
</delete>
<update id="updateFour">
update examstudent set IdCard=#{card} where Type=#{type}
</update>
<update id="updateFive">
update examstudent set IdCard=#{c} where Type=#{tp}
</update>
<!-- 返回自动生成的主键值 -->
<insert id="insertStu" parameterType="examstudent">
<selectKey keyProperty="FlowId" order="AFTER" resultType="java.lang.Integer">
select Last_INSERT_ID()
<!-- SELECT uuid() 非自增主键的返回 -->
</selectKey>
insert into examstudent(Type,Idcard,ExamCard,StudentName,Location,Grade) values(#{Type},#{IDCard},#{ExamCard},#{StudentName},#{Location},#{Grade})
</insert>
</mapper>
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="jdbc.properties"></properties>
<settings>
<!-- 支持驼峰命名 -->
<setting name="mapUnderscoreToCamelCase" value="true"></setting>
</settings>
<typeAliases>
<!-- 为全类名起别名 -->
<typeAlias type="com.Greatest.MyBaites.Model.examstudent" alias="examstudent"></typeAlias>
</typeAliases>
<environments default="development"><!-- 可创建多个数据库配置文件 -->
<environment id="development">
<transactionManager type="JDBC"/> <!-- -->
<dataSource type="POOLED">
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
<property name="driver" value="${driverClass}"/>
<property name="url" value="${jdbcUrl}"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.Greatest.MyBaites.Mapper"/><!-- 扫描的是接口的包 -->
<!-- <mapper resource="StudentMapper.xml" /> --> <!-- 配置文件的名字要与接口的名字一致-->
</mappers>
</configuration>
package com.Greatest.MyBaites.TestMain;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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.Greatest.MyBaites.Mapper.StudentMapper;
import com.Greatest.MyBaites.Model.examstudent;
public class TestMyBatis{
@Test
public void test1() throws Exception{
String resource="mybatis-config.xml";
InputStream in=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
SqlSession sqlsession=sqlSessionFactory.openSession();
try{
examstudent stu=sqlsession.selectOne("com.Greatest.MyBaites.Mapper.StudentMapper.selectBolg",13);
System.out.println(stu);
}finally{
sqlsession.close();
}
}
//根据接口的方法名直接查询
@Test
public void test2() throws Exception{
String resource="mybatis-config.xml";
InputStream in=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
SqlSession sqlsession=sqlSessionFactory.openSession();
try{
StudentMapper stuMapper=sqlsession.getMapper(StudentMapper.class);
examstudent stu=stuMapper.getStudents(13);
System.out.println(stu);
}finally{
sqlsession.close();
}
}
@Test
public void testgetmap() throws Exception{
String resuorce="mybatis-config.xml";
InputStream inputstream=Resources.getResourceAsStream(resuorce);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputstream);
SqlSession sqlsession=sqlSessionFactory.openSession();
StudentMapper studentMapper=sqlsession.getMapper(StudentMapper.class);
try{
// Map<String ,examstudent> examstudent=studentMapper.getExamStuMap();
// for (Map.Entry<String, examstudent> Exam : examstudent.entrySet()) {
// System.out.println("Examstudent: " +Exam.getValue() );
// } //根据Key获取value
// System.out.println(examstudent.get(14));
Map<String ,examstudent> map=studentMapper.getExamStuMapMH();
System.out.println(map.get("a"));
for(Map.Entry<String , examstudent> exams:map.entrySet()){
System.out.println("模糊查询的结果: "+exams.getValue());
}
}finally{
sqlsession.close();
}
}
@Test
public void test2_1() throws Exception{
String resource="mybatis-config.xml";
InputStream in=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
SqlSession sqlsession=sqlSessionFactory.openSession();
try{
StudentMapper stuMapper=sqlsession.getMapper(StudentMapper.class);
List<examstudent> stu=stuMapper.getStudentsList();
for (examstudent examstudent : stu) {
System.out.println(examstudent);
}
}finally{
sqlsession.close();
}
}
//可以选择不同的表 用${} 传值的时候用#{}
@Test
public void test2_2() throws Exception{
String resource="mybatis-config.xml";
InputStream in=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
SqlSession sqlsession=sqlSessionFactory.openSession();
try{
StudentMapper stuMapper=sqlsession.getMapper(StudentMapper.class);
examstudent stu=stuMapper.getExam("examstudent");
System.out.println(stu);
}finally{
sqlsession.close();
}
}
@Test
public void test3() throws Exception{
String resource="mybatis-config.xml";
InputStream in=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
SqlSession sqlsession=sqlSessionFactory.openSession();
try{
examstudent stu=sqlsession.selectOne("com.Greatest.MyBaites.Mapper.StudentMapper.insertBolg");
}finally{
sqlsession.close();
}
}
@Test
public void test4() throws Exception{
String resource="mybatis-config.xml";
InputStream in=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
SqlSession sqlsession=sqlSessionFactory.openSession(true);//提交事物
StudentMapper stuMapper=sqlsession.getMapper(StudentMapper.class);
try{
examstudent examstudent=new examstudent(14,"140525199709269587","955330","钟馗","05",101);
stuMapper.insertTWO(examstudent);
}finally{
sqlsession.close();
}
}
//返回 自动生成的主键值
@Test
public void test4_1() throws Exception{
String resource="mybatis-config.xml";
InputStream in=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
SqlSession sqlsession=sqlSessionFactory.openSession(true);//提交事物
try{
examstudent examstudent=new examstudent(14,"140525199911265982","955888","刘唐","99",191);
sqlsession.insert("com.Greatest.MyBaites.Mapper.StudentMapper.insertOne",examstudent);
System.out.println(examstudent.getFlowId());
}finally{
sqlsession.close();
}
}
@Test
public void test4_2() throws Exception{
String resource="mybatis-config.xml";
InputStream in=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
SqlSession sqlsession=sqlSessionFactory.openSession(true);//提交事物
try{
examstudent examstudent=new examstudent(34,"999999999999999999","999888","鲁提辖","99",191);
sqlsession.insert("com.Greatest.MyBaites.Mapper.StudentMapper.insertStu",examstudent);
System.out.println(examstudent.getFlowId());
}finally{
sqlsession.close();
}
}
@Test
public void test5() throws Exception{
String resource="mybatis-config.xml";
InputStream in=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
SqlSession sqlsession=sqlSessionFactory.openSession(true);
StudentMapper stuMapper=sqlsession.getMapper(StudentMapper.class);
try{
stuMapper.dleetethree(13);
}finally{
sqlsession.close();
}
}
@Test
public void test6() throws Exception{
String resource="mybatis-config.xml";
InputStream in=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
SqlSession sqlsession=sqlSessionFactory.openSession(true);
StudentMapper stuMapper=sqlsession.getMapper(StudentMapper.class);
try{
stuMapper.dleetethree(13);
}finally{
sqlsession.close();
}
}
@Test
public void test7() throws Exception{
String resource="mybatis-config.xml";
InputStream in=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
SqlSession sqlsession=sqlSessionFactory.openSession(true);
StudentMapper stuMapper=sqlsession.getMapper(StudentMapper.class);
try{
stuMapper.updateFour("140525199809188897", 10);
}finally{
sqlsession.close();
}
}
@Test
public void test8() throws Exception{
String resource="mybatis-config.xml";
InputStream in=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
SqlSession sqlsession=sqlSessionFactory.openSession(true);
StudentMapper stuMapper=sqlsession.getMapper(StudentMapper.class);
try{
Map map=new HashMap<>();
map.put("c", "123456789012345678");
map.put("tp", 11);
stuMapper.updateFive(map);
}finally{
sqlsession.close();
}
}
@Test
public void Testjilian() throws Exception{
String resource="mybatis-config.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlsession=sqlSessionFactory.openSession();
StudentMapper studentMapper=sqlsession.getMapper(StudentMapper.class);
try{
examstudent examstudent=studentMapper.selectLibrary(6);
System.out.println(examstudent);
}finally{
sqlsession.close();
}
}
}