1.日志工厂
标准日志配置
写在核心配置文件mybatis-config.xml中
<!--日志--> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings>
2.log4j
- Log4j是一个由Java编写可靠、灵活的日志框架,是Apache旗下的一个开源项目
- 它不但能控制日志输出的目的地,也能控制日志输出的内容格式
- 通过定义不同的日志级别,可以更加精确的控制日志的生成过程
- 只需要通过一个配置文件就可以灵活的配置,而不需要修改任何代码
2.1导入log4j包
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
2.2创建log4j.properties配置文件
#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码 log4j.rootLogger=DEBUG,console,file #控制台输出的相关设置 log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.Threshold=DEBUG log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=[%c]-%m%n #文件输出的相关设置 log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File=./log/shun.log log4j.appender.file.MaxFileSize=10mb log4j.appender.file.Threshold=DEBUG log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n #日志输出级别 log4j.logger.org.mybatis=DEBUG log4j.logger.java.sql=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.ResultSet=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG
2.3配置log4j为日志的实现
<setting name="logImpl" value="LOG4J "/>
简单使用
Logger导包import org.apache.log4j.Logger;
static Logger logger = Logger.getLogger(UserTest.class);//当前类名 @Test public void Log4jTest(){ logger.info("info进入log4j"); logger.debug("debug进入log4j"); logger.error("error进入log4j"); }
3.分页
- limit分页
语法:select * from mybatis_study.user limit startIndex,pageSize startIndex表示起始位置(0) pageSize表示几条数据
select * from mybatis_study.user limit 0,3;
mybatis分页查询
接口UserMapper.java
//分页查询 List<User> getUserLimit(Map<String,Integer> map);
UserMapper.xml
<!--分页查询--> <select id="getUserLimit" resultMap="UserMap" parameterType="map"> select * from USER limit #{startIndex},#{pageSize} </select>
测试类
//分页查询 @Test public void getUserLimit(){ SqlSession session = MybatisUtil.getSqlSession(); UserMapper mapper = session.getMapper(UserMapper.class); //创建Map对象 Map<String, Integer> map = new HashMap<>(); //第一个参数对应的是sql语句中的参数 map.put("startIndex",1); map.put("pageSize",3); List<User> userList = mapper.getUserLimit(map); for (User user : userList) { System.out.println(user); } session.commit(); session.close(); }
友情链接:
mybatis分页插件PageHelper
4.注解
接口UserMapper.java
@Select("select * from user") List<User> getUsers();
绑定接口:在核心配置文件mybatis-config.xml
<!--绑定接口--> <mappers> <mapper class="mapper.UserMapper"></mapper> </mappers>
测试
@Test public void test1(){ SqlSession session = MybatisUtil.getSqlSession(); UserMapper mapper = session.getMapper(UserMapper.class); List<User> userList = mapper.getUsers(); for (User user : userList) { System.out.println(user); } session.commit(); session.close(); }
根据ID查询
方法中有多个参数时,必须加@Param
UserMapper.java接口
//方法中有多个参数时,必须加@Param @Select("select * from user where id = #{id}") User getUserById(@Param("id") int id);
测试类
@Test public void getUserById(){ SqlSession session = MybatisUtil.getSqlSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.getUserById(1); System.out.println(user); session.close(); }
关于@Param
- 基本类型的参数和string需要加上
- 引用类型不需要加
5.lombok
5.1在idea中安装lombok插件
5.2导lombok包(或添加依赖)
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> </dependency>
5.3在实体类添加注解
@Getter and @Setter
@FieldNameConstants
@ToString
@EqualsAndHashCode
@AllArgsConstructor:有参构造
@RequiredArgsConstructor
@NoArgsConstructor:无参构造
@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger, @CustomLog
@Data:无参构造,get,set,hashCode,equals,toString(这些方法就不用写了)
@Builder
@SuperBuilder
@Singular
@Delegate
@Value
@Accessors
@Wither
@With
@SneakyThrows
@val
@var
experimental @var
@UtilityClass
@Data public class User{ private Integer id; private String name; private String sex; private String address; }