db.properties

1 driver=com.mysql.jdbc.Driver
2 url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
3 username=root
4 password=root

 

mybatis-config.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <!--configuration核心配置文件-->
 6 <configuration>
 7 <!--    引入外部配置文件-->
 8     <properties resource="db.properties"/>
 9     
10     <settings>
11 <!--        STDOUT_LOGGING标准的日志工程的实现(默认)-->
12         <setting name="logImpl" value="STDOUT_LOGGING"/>
13         <!--        <setting name="logImpl" value="LOG4J"/>-->
14     </settings>
15 
16 <!--    可以给实体类起别名-->
17     <typeAliases>
18 <!--        <typeAlias type="com.User" alias="User"/>-->
19 <!--        用包,别名为JavaBean的大写或小写,但是推荐为小写-->
20         <package name="com.ning.pojo"/>
21 <!--        第三种在实体类@Alias("别名")-->
22     </typeAliases>
23 
24     <environments default="development">
25         <environment id="development">
26             <transactionManager type="JDBC"/>
27             <dataSource type="POOLED">
28                 <property name="driver" value="${driver}"/>
29                 <property name="url" value="${url}"/>
30                 <property name="username" value="${username}"/>
31                 <property name="password" value="${password}"/>
32             </dataSource>
33         </environment>
34     </environments>
35 
36 <!--每一个mapper.xml都需要在Mybatis核心配置文件中注册-->
37     <mappers>
38 <!--      方式一 必不会错误 -->
39         <mapper resource="com/ning/dao/UserMapper.xml"></mapper>
40 
41 <!--方式二和方式三注意:  接口和它的Mapper配置文件必须同名,且必须在同包下  -->
42 <!--      方式二  <mapper class="com.UserMapper"/>-->
43 <!--      方式三  <package name="com.ning.dao"/>-->
44     </mappers>
45 
46 </configuration>

mybatisUtil

 1 import org.apache.ibatis.io.Resources;
 2 import org.apache.ibatis.session.SqlSession;
 3 import org.apache.ibatis.session.SqlSessionFactory;
 4 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 5 
 6 import java.io.InputStream;
 7 
 8 
 9 //sqlSessionFactory  -->sqlSession
10 public class MybatisUtil {
11 
12     private static SqlSessionFactory sqlSessionFactory;
13 
14     static {
15         try {
16             //使用mybatis第一步,获取sqlSession对象
17             String resource = "mybatis-config.xml";
18             InputStream inputStream = Resources.getResourceAsStream(resource);
19             sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
20         } catch (Exception e) {
21             e.printStackTrace();
22         }
23     }
24 
25     //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
26     // SqlSession 提供了在数据库执行SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。(增删改查等)
27 
28     public static SqlSession getSqlSession() {
29         return sqlSessionFactory.openSession();
30     }
31 }

UserMapper(和之前的UserDao是同样的意思,只是换了一个名字,是一个接口)

 1 import java.util.List;
 2 import java.util.Map;
 3 
 4 public interface UserMapper {
 5     //根据id查询用户
 6     User getUserById(int id);
 7 
 8     //limit分页查询
 9     List<User> getUserLimit(Map<String, Integer> map);
10 
11 }

UserMapper.xml

 1 <!DOCTYPE mapper
 2         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 3         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 4 <!--namespace=绑定一个对应的Dao/Mapper接口-->
 5 <mapper namespace="com.ning.dao.UserMapper">
 6 <!--结果集映射-->
 7     <resultMap id="UserMap" type="User">
 8 <!--        column数据库中的字段,property实体类中的属性-->
 9 <!--        <result column="id" property="id"/>-->
10 <!--        <result column="name" property="name"/>-->
11         <result column="pwd" property="password"/>
12     </resultMap>
13 
14     <select id="getUserById" parameterType="int" resultMap="UserMap">
15         select * from mybatis.user where id = #{id}
16     </select>
17 
18     <select id="getUserLimit" parameterType="map" resultMap="UserMap">
19         select * from mybatis.user limit #{startIndex}, #{pageSize}
20     </select>
21 
22 </mapper>