一、两种方式初始化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);
原文地址:https://www.cnblogs.com/xunol/p/3238758.html