mybatis
- 简介:基于java的轻量级的持久层框架
面向对象--->面向配置(切片)的编程,增强程序的可维护性
以下为基于官方的一个步骤
0.创建数据库
创建数据库,建立表,添加一条记录

1.创建product实体类
1 2 3 4 5 6
| public class Product { private int id; private String productName; private String comment; private String status; //批量添加set,get方法
|
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” < /dev/null 2> /dev/null ; brew install caskroom/cask/brew-cask 2> /dev/null
2.创建配置文件 mybatisConfig.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="xx.xx.xx.xx"/> <property name="url" value="jdbc:mysql://xx"/> <property name="username" value="xx"/> <property name="password" value="xx"/> </dataSource> </environment> </environments> <mappers> <mapper resource="mapping/procuctMapper.xml"/> </mappers> </configuration>
|
其中mybatisConfig.xml中引用map文件的方式种类举例
1 2 3
| <mappers> <mapper resource ="jike/book/map/jikeUser.xml"> <mappers>
|
1 2 3
| <mappers> <mapper resource ="file:///var/jike/book/map/jikeUser.xml"> <mappers>
|
1
| <package name = "a.b.c">
|
3. 创建dao文件 ProductMapper.java
1 2 3
| public interface ProductMapper { Product selectByStatus(String status); }
|
4. 创建map文件 productMapper.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?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"> <mapper namespace="xx.xx.xx.dao.ProductMapper"> #注意,上面的mapper的namespace应该为dao的地址 #注意:这里的id :selectByStatus 与上面的接口名一致 <select id="selectByStatus" parameterType="java.lang.String" resultType="xx.xx.xx.model.Product"> select * from product where status = #{status} </select> </mapper>
|
5.编写测试类
流程
- 读取配置文件(数据库连接基本信息)
- 生成sqlSessionFactory
- 建立sqlSession
- 调用Mybatis提供的api(执行sql)
- 查询mpl配置
- 返回结果
- 关闭sqlSession
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class ProductController { public static void main(String[] args) { String resource = "mapping/MyBatisConfig.xml"; InputStream inputStream = null; try { inputStream = Resources.getResourceAsStream(resource); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlMapper.openSession(); Product result = session.selectOne("selectByStatus","normal"); System.out.println(result.getProduct()); session.close();
|
6.查看mybatis的sql可以通过配置日志看到
加入日志配置文件log4j.properties
log4j.rootLogger-DEBUG,Console
log4j.rootCategory=debug, stdout , R0
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %-20d{yyyy-MM-dd HH\:mm\:ss}%-5p (%F\:%L) - %m%n
log4j.appender.R0=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R0.layout=org.apache.log4j.PatternLayout
log4j.appender.R0.layout.ConversionPattern=%-20d{yyyy-MM-dd HH\:mm\:ss}%-5p (%F\:%L) - %m%n
log4j.appender.R0.DatePattern=’.’yyyy-MM-dd
log4j.appender.R0.File=logs/jsDataRoadApp.log
附:文件结构