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>