mybatis Map的简单使用

Posted Rzk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis Map的简单使用相关的知识,希望对你有一定的参考价值。

1 //第一新建一个TeacherMapper接口
2 public interface TeacherMapper {
3         //使用map修改
4         int updateTeacherMap(Map<String,Object> map);
5         //使用map插入
6         int addTeacherMap(Map<String,Object> map);
7 }
 1 //第二建立对象TeacherMapper对应的xml
 2 <?xml version="1.0" encoding="UTF-8" ?>
 3 <!DOCTYPE mapper
 4         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 5         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 6     //TeacherMapper对应的是上面接口的名字,通过这个名字 **xml** 于接口进行绑定
 7 <mapper namespace="com.rzk.mapper.TeacherMapper">
 8     <!--map修改-->
 9     <update id="updateTeacherMap" parameterType="map">
10        update mybatis.teacher set name=#{name} where id=#{id}
11     </update>
12     <!--map插入-->
13     <insert id="addTeacherMap" parameterType="map">
14         insert into mybatis.teacher(id, name) values (#{tid},#{tname})
15     </insert>
16 </mapper>
 1 //第三建pojo
 2 public class Teacher {
 3     private int id;
 4     private String name;
 5     public Teacher() {
 6     }
 7     public int getId() {
 8         return id;
 9     }
10     public void setId(int id) {
11         this.id = id;
12     }
13     public String getName() {
14         return name;
15     }
16     public void setName(String name) {
17         this.name = name;
18     }
19     public Teacher(int id, String name) {
20         this.id = id;
21         this.name = name;
22     }
23     @Override
24     public String toString() {
25         return "Teacher{" +
26                 "id=" + id +
27                 ", name=\'" + name + \'\\\'\' +
28                 \'}\';
29     }
30 }

 

 1 //第四mybatis建工具类
 2 public class MybatisUtils {
 3     private static SqlSessionFactory sqlSessionFactory;
 4     static{
 5         try {
 6             String resources="mybatis-config.xml";
 7             InputStream inputStream = Resources.getResourceAsStream(resources);
 8             sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
 9         } catch (IOException e) {
10             e.printStackTrace();
11         }
12     }
13     public static SqlSession getSqlSessionFactory() {
14         return sqlSessionFactory.openSession();
15     }
16 }

 

 1 //编写config.xml
 2 <?xml version="1.0" encoding="UTF-8" ?>
 3 <!DOCTYPE configuration
 4         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 5         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 6 <!--configguration核心配置文件-->
 7 <configuration>
 8     <!--导入外部配置文件-->
 9     <properties resource="db.properties"/>
10     <!--标准日志工厂实现-->
11     <!--   <settings>
12            <setting name="logImpl" value="STDOUT_LOGGING"/>
13        </settings>-->
14     <settings>
15         <setting name="logImpl" value="LOG4J"/>
16     </settings>
17     <!--给实体类起别名-->
18     <typeAliases>
19         <package name="com.rzk.pojo" />
20     </typeAliases>
21     <environments default="development">
22         <environment id="development">
23             <transactionManager type="JDBC"/>
24             <dataSource type="POOLED">
25                 <property name="driver" value="${driver}"/>
26                 <property name="url" value="${url}"/>
27                 <property name="username" value="${username}"/>
28                 <property name="password" value="${password}"/>
29             </dataSource>
30         </environment>
31     </environments>
32     <mappers>
33 <!--        <mapper resource="com/rzk/dao/StudentMapper.xml"/>-->
34         <mapper resource="com/rzk/mapper/TeacherMapper.xml"/>
35 <!--        <mapper class="com.rzk.mapper.Teacher"/>-->
36         <mapper class="com.rzk.mapper.StudentMapper"/>
37     </mappers>
38 </configuration>

 

 1 测试类
 2   /*map修改*/
 3     @Test
 4     public void updateTeacherMap(){
 5         SqlSession sqlSession = MybatisUtils.getSqlSessionFactory();
 6       //通过反射获取接口里面的东西
 7         TeacherMapper mapper = sqlSession.getMapper(TeacherMapper.class);
 8         Map<String, Object> map = new HashMap<>();
 9         map.put("id",1);
10         map.put("name","精致的猪猪女孩");
11         //增删改查都要进行提交
12         int i = mapper.updateTeacherMap(map);
13         if (i>0){
14             System.out.println("修改成功");
15             sqlSession.commit();
16         }
17         sqlSession.close();
18     }
19   /*map的插入*/
20     @Test
21     public void addTeacher1(){
22         SqlSession sqlSession = MybatisUtils.getSqlSessionFactory();
23         TeacherMapper mapper = sqlSession.getMapper(TeacherMapper.class);
24         Map<String, Object> map = new HashMap<String,Object>();
25         map.put("tid",3);
26         map.put("tname","李大强");
27         mapper.addTeacherMap(map);
28         sqlSession.commit();
29         sqlSession.close();
30     }
31 
32 底层使用的还是jdbc的东西

 

以上是关于mybatis Map的简单使用的主要内容,如果未能解决你的问题,请参考以下文章

mybatis group by查询返回map类型

Mybatis动态sql技术

SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper

Mybatis 框架学习—— 简单CRUD的实现

mybatis

初识MyBatis