环境搭建及测试
jar包的引用
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.study</groupId> <artifactId>annotation_mybatis</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies> </project>
主配置文件SqlMapConfig.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> <!--引入外部属性文件--> <properties resource="db.properties"></properties> <!--配置别名--> <typeAliases> <package name="com.mybatis.model"></package> </typeAliases> <!--配置环境--> <environments default="mysql"> <environment id="mysql"> <!--事务--> <transactionManager type="JDBC"></transactionManager> <!--POOLED连接池--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"></property> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <!--带有注解的dao接口所在位置--> <mappers> <package name="com.mybatis.dao"></package> </mappers> </configuration>
db.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql:///mybatisdb jdbc.username=root jdbc.password=123456
实体类和接口
实体类 public class User { private Integer id; private String username; private String address; private String sex; private Date birthday; get/set方法 } 接口 package com.mybatis.dao; import com.mybatis.model.User; import org.apache.ibatis.annotations.Select; import java.util.List; public interface UserDao { @Select("select * from user") List<User> findAll(); }
测试方法
package com.mybatis.test; import com.mybatis.dao.UserDao; import com.mybatis.model.User; 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 org.junit.Test; import java.io.IOException; import java.io.InputStream; import java.util.List; public class MybatsiAnnotationTest { @Test public void test1() throws IOException { String resource = "SqlMapConfig.xml"; //获取字节输入流 InputStream is = Resources.getResourceAsStream(resource); //根据字节输入流构建SqlSessionFactory SqlSessionFactory factory =new SqlSessionFactoryBuilder().build(is); //使用SqlSessionFactory生产一个SqlSession SqlSession session = factory.openSession(); //使用SqlSession获取Dao的代理对象 UserDao userDao = session.getMapper(UserDao.class); //执行方法 List<User> list = userDao.findAll(); for (User u:list) { System.out.println(u); } //释放资源 session.close(); is.close(); } }
日志log4j.properties
# Set root category priority to INFO and its only appender to CONSOLE. #log4j.rootCategory=INFO, CONSOLE debug info warn error fatal log4j.rootCategory=debug, CONSOLE, LOGFILE # Set the enterprise logger category to FATAL and its only appender to CONSOLE. log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE # CONSOLE is set to be a ConsoleAppender using a PatternLayout. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n # LOGFILE is set to be a File appender using a PatternLayout. log4j.appender.LOGFILE=org.apache.log4j.FileAppender log4j.appender.LOGFILE.File=d:\axis.log log4j.appender.LOGFILE.Append=true log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n