Mybatis 所需要的包:
Mybatis3.jar 核心包
ognl.jar Mybatis 使用 ognl 解析XML文件。
javassist.jar , 该文件一般情况下,在WEB容器下都有,只是 APPLICATION下需要另外引入。
其它因为项目而使用的包:
1. JDBC 包。(连接数据库嘛,必须的。)
2. 日志. slf4j 或 log4j等。
我使用的是 slf4j , 日志实现 用logback-core和 logback-classic 2个jar包。
上面,把最基本的编码所需要的东西列了一下。
接下来,需要XML配置文件和java code。
配置文件
1. mybatis的配置文件
<?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> <properties resource="configs/jdbc.properties"></properties> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <mappers> <mapper resource="test/orm/JUserDao.xml"></mapper> </mappers> </configuration>
2. logback的日志配置Console输出
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder><pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder> </appender> <root level="INFO"><appender-ref ref="STDOUT" /></root> </configuration>
接下来,就要开始编写代码了。
先是实例化 SqlSessionFactory ,使它成为全局的对象。
private static final Logger log=org.slf4j.LoggerFactory.getLogger(DbFactory.class); private static SqlSessionFactory factory; static{ String resource="configs/mybatisconfig.xml"; Reader reader; try { reader = Resources.getResourceAsReader(resource); SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder(); factory=builder.build(reader); } catch (IOException ex) { log.error("mybatis configuration build error!",ex); System.exit(1); } } public static SqlSession getSqlSession(){ return factory.openSession(); }
完成SqlSession的获取方法后,就是操作数据库了。
这里的pojo JUser类就省略不贴出来了。
public JUser selectOneUser(String userid){ SqlSession sess=DbFactory.getSqlSession(); JUser ret; try { JUserDao userdao=sess.getMapper(JUserDao.class); ret=userdao.selectOneUser(userid); } finally{ sess.close(); } return ret; }
这就是Mybatis的数据库操作的接口文件。通过 SqlSession.getMapper方法可以得到一个实例,这就是Mybatis的作用之一,不需要用户去编写一个实现类。
public interface JUserDao { public JUser selectOneUser(String userid); public List<JUserView> selectUsers(String deptid); }
这里,最主要的就是JUserDao.xml文件了,getMapper的时候,mybatis根据类名的方法名,去找到对应的XML里的语句,再执行,并将结果返回。
<resultMap id="userResultMap" type="test.orm.model.JUser"> <id property="userid" column="user_id" jdbcType="CHAR" /> <result property="username" column="user_name" jdbcType="CHAR"/> <result property="password" column="password" jdbcType="CHAR"/> </resultMap> <select id="selectOneUser" resultMap="userResultMap" parameterType="string" > select user_id,user_name,password from tb_user where user_id=#{userid} </select>
下面是我的所有代码的清单
Mybatis中文手册 http://dl2.iteye.com/upload/attachment/0114/6200/fd005f15-bcbd-3251-b94b-f249bddf24a8.pdf