例子:
在mybati.xml中<mappers>下使用<package>
<mappers>
<package name="com.bjsxt.mapper"/>
</mappers>
mybatis.xml 的完整代码
<?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>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<typeAliases>
<package name="com.bjsxt.pojo" />
</typeAliases>
<!-- default引用environment的id,当前所使用的环境 -->
<environments default="default">
<!-- 声明可以使用的环境 -->
<environment id="default">
<!-- 使用原生JDBC事务 -->
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
<property name="username" value="root"/>
<property name="password" value="smallming"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.bjsxt.mapper"/>
</mappers>
</configuration>
log4j.properties
log4j.rootCategory=ERROR, CONSOLE ,LOGFILE
log4j.logger.com.bjsxt.mapper.LogMapper=DEBUG
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%C %p %m %n
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=E:/my.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%C %m %L %n
一.mapper
新建接口
LogMapper.java
package com.bjsxt.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.bjsxt.pojo.Log;
public interface LogMapper {
List<Log> selAll();
/**
* mybatis把参数转换为map了,其中@Param("key") 参数内容就是map的value
* @param accin123
* @param accout3454235
* @return
*/
List<Log> selByAccInAccout(@Param("accin") String accin123,@Param("accout") String accout3454235);
}
LogMapper.xml
<?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="com.bjsxt.mapper.LogMapper">
<select id="selAll" resultType="log">
select * from log
</select>
<!-- 当多参数时,不需要写parameterType -->
<select id="selByAccInAccout" resultType="log" >
select * from log where accin=#{accin} and accout=#{accout}
</select>
</mapper>
二.pojo
Log.java
package com.bjsxt.pojo;
public class Log {
private int id;
private String accIn;
private String accOut;
private double money;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAccIn() {
return accIn;
}
public void setAccIn(String accIn) {
this.accIn = accIn;
}
public String getAccOut() {
return accOut;
}
public void setAccOut(String accOut) {
this.accOut = accOut;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
@Override
public String toString() {
return "Log [id=" + id + ", accIn=" + accIn + ", accOut=" + accOut + ", money=" + money + "]";
}
}
三.test
test.java
package com.bjsxt.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.bjsxt.mapper.LogMapper;
import com.bjsxt.pojo.Log;
public class Test {
public static void main(String[] args) throws IOException {
InputStream is = Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
/*
* 接口,为什么能实例化?
*
* 需要给接口一个实例化对象.
*
* 使用的JDK的动态代理设计模式.
* 面向接口的代理设计模式(必须有接口)
*
*/
// LogMapper logMapper = session.getMapper(LogMapper.class);
// List<Log> list = logMapper.selAll();
// for (Log log : list) {
// System.out.println(log);
// }
// 对应于上面的原来写法
// List<Log> list=session.selectList("com.bjsxt.mapper.LogMapper.selAll");
LogMapper logMapper = session.getMapper(LogMapper.class);
List<Log> list = logMapper.selByAccInAccout("3", "1");
for (Log log : list) {
System.out.println(log);
}
session.close();
System.out.println("程序执行结束");
}
}