• 一、两种方式初始化Mybatis


    一、xml

    Configuration.xml

     1 <?xml version="1.0" encoding="UTF-8" ?> 
     2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
     3 "http://mybatis.org/dtd/mybatis-3-config.dtd">
     4 <configuration>
     5     <!-- 用于建立会话的变量,可以从文件中读取 -->
     6     <properties resource="config/config.properties">
     7         <property name="driver" value="com.mysql.jdbc.Driver" />
     8         <property name="url" value="jdbc:mysql://localhost:3306/test" />
     9         <property name="username" value="root" />
    10         <property name="password" value="asd123" />
    11     </properties>
    12 
    13     <!-- 可以不设置 -->
    14     <!-- <setting></setting> -->
    15     
    16     <typeAliases>
    17         <typeAlias alias="Student" type="entity.Student"></typeAlias>
    18         <typeAlias alias="Score" type="entity.Score"></typeAlias>
    19     </typeAliases>
    20     <environments default="development">
    21         <environment id="development">
    22             <transactionManager type="JDBC" />
    23             <dataSource type="POOLED">
    24                 <property name="driver" value="${driver}" />
    25                 <property name="url" value="${url}" />
    26                 <property name="username" value="${username}" />
    27                 <property name="password" value="${password}" />
    28             </dataSource>
    29         </environment>
    30     </environments>
    31     <mappers>
    32         <mapper resource="mapper/StudentMapper.xml" />
    33         <mapper resource="entity/ScoreMapper.xml" />
    34     </mappers>
    35 </configuration> 

    StudentMapper.xml

     1 <?xml version="1.0" encoding="UTF-8"?> 
     2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
     3     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     4 <mapper namespace="mapper.StudentMapper">
     5 
     6 
     7     <resultMap type="Student" id="StudentResultMap">
     8         <id property="id" column="id" />
     9         <result property="name" column="name" />
    10         <result property="password" column="password" />
    11         <result property="sex" column="sex" />
    12         <result property="college" column="college" />
    13         <collection property="scores" column="sid" javaType="ArrayList" ofType="Score" resultMap="Score.ScoreResultMap" />
    14     </resultMap>
    15     
    16     
    17     
    18     <select id="get" parameterType="String" resultMap="StudentResultMap">
    19         SELECT * FROM sc_student st LEFT OUTER JOIN sc_score sc ON st.id=sc.sid WHERE st.id=#{id}
    20     </select>
    21     <insert id="insert" parameterType="Student">
    22         insert into sc_student (id,name,password,sex,college) values
    23         (#{id},#{name},#{password},#{sex},#{college})
    24     </insert>
    25     <update id="update" parameterType="Student">
    26         UPDATE sc_student SET id=#{id},name=#{name},password=#{password},
    27         sex=#{sex},college=#{college} WHERE id=#{id}
    28     </update>
    29     <delete id="delete" parameterType="Student">
    30         DELETE FROM sc_student WHERE id = #{id}
    31     </delete>
    32 </mapper>
     1 package test;
     2 
     3 import java.io.IOException;
     4 import java.io.Reader;
     5 
     6 import mapper.StudentMapper;
     7 
     8 import org.apache.ibatis.io.Resources;
     9 import org.apache.ibatis.session.SqlSession;
    10 import org.apache.ibatis.session.SqlSessionFactory;
    11 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    12 import org.junit.Before;
    13 import org.junit.BeforeClass;
    14 import org.junit.Test;
    15 
    16 import entity.Student;
    17 
    18 public class TestXmlBuild1 {
    19     public static SqlSessionFactory sqlMapper = null;
    20 
    21     @Before
    22     public void setUpClass() throws IOException {
    23         String resource = "config/Configuration1.xml";
    24         Reader reader = Resources.getResourceAsReader(resource);
    25         sqlMapper = new SqlSessionFactoryBuilder().build(reader);
    26     }
    27 
    28     @Test
    29     public void test1() {
    30         SqlSession session = sqlMapper.openSession();
    31         //第一种方法,直接调用,名字要和<mapper namespace="mapper.StudentMapper">匹配
    32         try {
    33             Student student = (Student) session.selectOne("mapper.StudentMapper.get", "ttt");
    34             System.out.println(student);
    35         } finally {
    36             session.close();
    37         }
    38     }
    39     
    40     @Test
    41     public void test2() {
    42         SqlSession session = sqlMapper.openSession();
    43         //第二种方法,通过接口,mapper名字需要和<mapper namespace="mapper.StudentMapper">匹配
    44         try {
    45             StudentMapper studentMapper = session.getMapper(StudentMapper.class);
    46             Student student = studentMapper.get("ttt123"); 
    47             System.out.println(student);
    48         } finally {
    49             session.close();
    50         }
    51     }
    52 }

    二、不使用XML构建SqlSessionFactory 

    没用到,就不解释了。

    1 DataSource dataSource = BlogDataSourceFactory.getBlogDataSource(); 
    2 TransactionFactory transactionFactory = new 
    3 JdbcTransactionFactory(); 
    4 Environment environment = 
    5 new Environment("development", transactionFactory, dataSource); 
    6 Configuration configuration = new Configuration(environment); 
    7 configuration.addMapper(BlogMapper.class); 
    8 SqlSessionFactory sqlSessionFactory = 
    9 new SqlSessionFactoryBuilder().build(configuration);
  • 相关阅读:
    k8s环境实现springcloud电商项目(二)SpringCloud及组件介绍&Eureka组件部署
    k8s核心资源之service四层负载均衡器代理(六)
    在B串中查找是否有A串华为
    matplotlib学习笔记
    Spring IOC 常用注解与使用
    Spring AOP快速使用教程
    SpringBoot启动原理
    BeanFactory和ApplicationContext的区别总结
    泛型之泛型方法
    Lombok中的@Builder注解的使用
  • 原文地址:https://www.cnblogs.com/xunol/p/3238758.html
Copyright © 2020-2023  润新知