环境搭建 创建项目 导入jar包 mybatis包 数据库驱动包 其它依赖包 编写配置文件 DTD配置 ?xml version="1.0" encoding="utf-8"? !DOCTYPE configuration PUBLIC "-//mybait.org//DTD ccnfig 3.0//EN" "http://mybatis.org/dtd
环境搭建
创建项目
导入jar包
mybatis包
数据库驱动包
其它依赖包
编写配置文件
DTD配置
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE configuration PUBLIC "-//mybait.org//DTD ccnfig 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!-- properties加载外部文件 --> <properties resource="db.properties"></properties> <!--配置setting标签--> <settings> <!--设置mybaits使用log4j日志支持 --> <setting name="logImpl" value="LOG4J"/> </settings> <!--typeAliases标签,给类型起别名,缩短全限定路径 --> <typeAliases> <!-- 对指定的类定义别名 --> <typeAlias type="com.bjsxt.pojo.Users" alias="u"/> <!-- 不设置别名时,别名默认为类名,且不区分大小写 --> <typeAlias type="com.bjsxt.pojo.Users"/> <!-- 设置在包上,将把包下所有类自动设置别名,别名默认为类名 --> <package name="com.bjsxt.pojo"/> </typeAliases> <!-- 用于指定使用哪个环境 --> <environments default="dev"> <!-- 用于配置环境 --> <environment id="dev"> <!-- 事务管理器,设置 mybatis 使用什么方式来管理事务 type: JDBC表示采用和JDBC一样的管理方式 --> <transactionManager type="JDBC"></transactionManager> <!-- 数据库连接池,用于配置数据库连接池和连接参数 type: 用于设置mybatis是否采用连接池 POOLED 表示采用连接池技术--> <dataSource type="POOLED" # 引用properties外部配置文件中的参数 <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <!-- 扫描映射文件,与数据访问层的xml全路径及文件名相同,使用resource加载--> <mappers> <mapper resource="com/bjsxt/mapper/UserMapper.xml"/> </mappers></configuration>
外部配置文件db.properties
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/bjsxt?useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=123456
定义POJO类
数据模型层
数据访问层(DAO层)
推荐使用mapper作为包名,这里只需要写映射配置文件 .xml
用于定义要执行的SQL语句,同时设定返回结果的类型
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace 命名空间,一般使用全限定路径,包名+类名 mybatis 管理sql语句,通过 namespace+id 来定位 --><mapper namespace="com.bjsxt.mapper.UserMapper"> <!-- select 标签用于编写查询语句, id: sql语句的唯一标识 resultType: 用于设定返回结果的类型(全限定路径),如果返回结果为集合,要写集合泛型的类型 --> <select id="selAll" resultType="com.bjsxt.pojo.Users"> select * from users </select></mapper>
执行查询
@Testpublic void selectAll(){ try { // 加载mybatis核心配置文件 InputStream is = Resources.getResourceAsStream("mybatis.xml"); // 构建SqlSessionFactory工厂对象 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); SqlSession session = factory.openSession(); List<Users> list = session.selectList("com.bjsxt.mapper.UserMapper.selAll"); System.out.println(list); session.close(); } catch (IOException e) { e.printStackTrace(); }}
查询结果为列表
mapper名+id
List<Users> list = session.selectList("com.bjsxt.mapper.UserMapper.selAll");查询结果为单条记录
mapper名+id
Users user = session.selectOne("com.bjsxt.mapper.UserMapper.selAll");查询结果为Map对象
mapper名+id, 指定列名作为map的键
Map<Object, Object> map = session.selectMap("com.bjsxt.mapper.UserMapper.selAll", "name");LOG4J配置
log4j.rootLogger=INFO, Console, LOGFILE# 打印日志到控制台log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=[%p]-%d{ISO8601} : %m%n# 为指定方法设置日志级别log4j.logger.com.bjsxt.mapper.UserMapper.selOne=DEBUG# 为指定类设置日志级别log4j.logger.com.bjsxt.mapper.UserMapper=DEBUG# 为指定包设置日志级别log4j.logger.com.bjsxt.mapper=DEBUG# 打印日志到文件 log4j.appender.LOGFILE=org.apache.log4j.FileAppenderlog4j.appender.LOGFILE.File=log/log4j.loglog4j.appender.LOGFILE.Append=falselog4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.LOGFILE.layout.ConversionPattern=[%p]-%d{ISO8601} : %m%n