# maven **Repository Path**: myprofile/maven ## Basic Information - **Project Name**: maven - **Description**: 我得maven私服 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-03 - **Last Updated**: 2025-05-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## maven仓库 ```xml lhstack https://gitee.com/myprofile/maven/raw/master true true ``` ## mybatis-plus-helper 依赖 ```xml com.lhstack mybatis-plus-helper 1.0.0-shadow com.lhstack mybatis-plus-helper 1.0.0 ``` ## mybatis-plus-helper demo ```xml 4.0.0 com.lhstack test 1.0-SNAPSHOT 11 11 UTF-8 com.lhstack mybatis-plus-helper 1.0-shadow-SNAPSHOT org.slf4j slf4j-api 1.7.36 ch.qos.logback logback-classic 1.2.3 com.zaxxer HikariCP 4.0.3 org.xerial sqlite-jdbc 3.49.1.0 lhstack https://gitee.com/myprofile/maven/raw/master true true ``` ```java import com.lhstack.mybatisplus.SqlSessionFactoryCreator; import com.lhstack.mybatisplus.SqlSessionHelper; import com.lhstack.org.apache.ibatis.logging.slf4j.Slf4jImpl; import com.lhstack.org.apache.ibatis.reflection.MetaObject; import com.lhstack.org.apache.ibatis.session.SqlSessionFactory; import com.lhstack.shade.com.baomidou.mybatisplus.annotation.*; import com.lhstack.shade.com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.lhstack.shade.com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.lhstack.shade.com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.lhstack.shade.com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import com.lhstack.shade.com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.lhstack.shade.com.baomidou.mybatisplus.extension.service.IService; import com.lhstack.shade.com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; public class SqlSessionFactoryCreatorTest { public interface PersonMapper extends BaseMapper { void createTable(); } public interface IPersonService extends IService { void createTable(); } public static class PersonServiceImpl extends ServiceImpl implements IPersonService { @Override public void createTable() { this.baseMapper.createTable(); } } @TableName(value = "t_person") public static class Person { @TableId(type = IdType.AUTO) private Integer id; private String name; private Integer age; @TableField(fill = FieldFill.INSERT) private Long created; @TableField(fill = FieldFill.INSERT_UPDATE) private Long updated; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Long getCreated() { return created; } public void setCreated(Long created) { this.created = created; } public Long getUpdated() { return updated; } public void setUpdated(Long updated) { this.updated = updated; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", created=" + created + ", updated=" + updated + '}'; } } public static void main(String[] args) { HikariConfig config = new HikariConfig(); config.setDriverClassName("org.sqlite.JDBC"); config.setJdbcUrl("jdbc:sqlite:" + System.getProperty("user.dir") + "\\test.db"); config.setMaximumPoolSize(5); config.setMinimumIdle(1); config.setAutoCommit(true); config.setConnectionTimeout(60000); config.setIdleTimeout(60000); config.setMaxLifetime(1800000); try (HikariDataSource dataSource = new HikariDataSource(config)) { SqlSessionFactory sqlSessionFactory = SqlSessionFactoryCreator.create(dataSource) .withInterceptor(new PaginationInnerInterceptor()) .withXmlFileContents("\n" + "\n" + "\n" + "\n" + " \n" + " CREATE TABLE IF NOT EXISTS t_person (\n" + " id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " name TEXT,\n" + " age INTEGER,\n" + " created INTEGER,\n" + " updated INTEGER\n" + " )\n" + " \n" + "") .configureConfiguration(mybatisConfiguration -> { mybatisConfiguration.addMapper(PersonMapper.class); mybatisConfiguration.setLogImpl(Slf4jImpl.class); }) .withMetaObjectHandler(new MetaObjectHandler() { @Override public void insertFill(MetaObject metaObject) { setFieldValByName("created", System.currentTimeMillis(), metaObject); setFieldValByName("updated", System.currentTimeMillis(), metaObject); } @Override public void updateFill(MetaObject metaObject) { setFieldValByName("updated", System.currentTimeMillis(), metaObject); } }) .build(); SqlSessionHelper sqlSessionHelper = new SqlSessionHelper(sqlSessionFactory); sqlSessionHelper.getService(PersonServiceImpl.class, PersonMapper.class, PersonServiceImpl::createTable); sqlSessionHelper.getMapper(PersonMapper.class, mapper -> { Person person = mapper.selectOne(new LambdaQueryWrapper().eq(Person::getName, "test")); if (person == null) { person = new Person(); person.setAge(25); person.setName("test"); mapper.insert(person); } }); sqlSessionHelper.getService(PersonServiceImpl.class, PersonMapper.class, service -> { System.out.println(service.getById(1)); System.out.println(service.page(new Page<>(1, 10)).getRecords()); }); } } } ```