# 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());
});
}
}
}
```