sql_plus
Острое SQL.
Собственный SQL реализует функции добавления, удаления, изменения и запроса данных. Сущности наследуют класс Model или аннотацию AnnotationMapper. Также можно использовать класс SqlPuls2 для работы с базой данных и бесшовной интеграции с mybatis. Есть два генератора кода.
Можно настроить правила генерации кода, что позволяет сэкономить до 80 % времени разработки. Разработчику нужно только сосредоточиться на написании бизнес-логики, избегая траты времени на написание кода, не связанного с бизнесом. Это сокращает время разработки и повышает эффективность.
<dependency>
<groupId>com.qiaoyatao</groupId>
<artifactId>sql-plus</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
@Configuration public class SqlSessionCF {
@Autowired
private JdbcTemplate jdbc;
@Autowired
private SqlSessionFactory sessionFactory;
@Bean
public SqlSession2 sqlSession2(){
return new SqlSession2(jdbc);
}
@Bean
public SqlSession3 sqlSession3(){
return new SqlSession3(sessionFactory);
}
@Bean
public SqlHelper sqlHelper(){
return new SqlHelper(sessionFactory);
}
}
Объект сущности интегрирует Model:
@Data
public class Employee extends Model<Employee> {
private Integer id;
private String name;
private String age;
private String gender;
private Long deptId;
private String address;
private Date createTime;
}
Автоматически генерируется файл сущности:
DataSource source = new DataSource();
source.setUrl("jdbc:mysql://localhost:3306/tmc_info?useUnicode=true&characterEncoding=utf8&serverTimezone=CTT");
source.setUsername("root");
source.setPassword("root");
source.setDriverName("com.mysql.cj.jdbc.Driver");
GlobalConfig global = new GlobalConfig();
global.setConnection(source.get());
global.setAuthor("乔小乔");
global.setOutputDir("./src/test/java/");//文件路径
global.setDatabase("tmc_info");//база данных
//global.setExclude(new String[]{"sys_airport","sys_airport_city"}); исключить таблицы
//нужно создать таблицы (по умолчанию все таблицы)
//global.setInclude(new String[]{"sys_airport","sys_airport_city",
//"sys_tmc_office","sys_user_role"});
PackageConfig pc = new PackageConfig();
AutoGenerator generator = new AutoGenerator();
generator.setGlobal(global);
generator.setPc(pc);
generator.execute();
source.close();
Employee employee = new Employee();
employee.create();
CREATE TABLE `employee` (
`id` int(11) DEFAULT NULL,
`name` varchar(100) DEFAULT NULL,
`age` varchar(100) DEFAULT NULL,
`gender` varchar(100) DEFAULT NULL,
`dept_id` bigint(11) DEFAULT NULL,
`address` varchar(100) DEFAULT NULL,
`create_time` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Вставьте данные:
Employee employee = new Employee();
employee.setId(1);
employee.setName("乔小乔");
employee.setAddress("北京市昌平区生命科学园");
employee.setAge("10");
employee.setDeptId(1l);
employee.setCreateTime(new Date());
//1、отдельная вставка
employee.insert();
Пакетная вставка:
List<Employee> list = new ArrayList<>();
for (int i = 1; i <=10 ; i++) {
Employee employee = new Employee();
employee.setId(i);
employee.setName("乔小��цио");
employee.setAddress("北京市昌平区生命科学园");
employee.setAge("10");
employee.setDeptId(1l);
employee.setCreateTime(new Date());
list.add(employee);
}
Employee.insertList(list);//2、пакетная вставка
Вставка в несколько таблиц:
SysAccount account = new SysAccount();
account.setPhone("15510304125");
account.setUserName("乔小乔");
Employee employee = new Employee();
employee.setId(1);
employee.setName("乔小乔");
employee.setAddress("北京市昌平区生命科学园");
employee.setAge("27");
employee.setDeptId(1l);
employee.setCreateTime(new Date());
Employee.insertList(account,employee);//вставка разных типов
Запрос по параметру id:
//1、запрос по параметру id
Employee one = new Employee().selectByid(1);
Запрос по полю id сущности:
//2、запрос по полю id сущности
Employee employee = new Employee();
employee.setId(2);
Employee newEmployee =
2. **//参数id删除**
int i = new Employee().deleteById(1);
3. **//实体字段id删除**
Employee employee = new Employee(); employee.setId(2); employee.deleteById();
4. **//1、参数id更新**
Employee employee = new Employee(); employee.setCreateTime(new Date()); employee.setName("王梦妍"); employee.setAge("20"); employee.setGender("女"); employee.setCreateTime(new Date()); employee.setAddress("哈尔滨市"); employee.updateById(1);
5. **//实体字段id更新**
```
Employee employee = new Employee();
employee.setId(1);
employee.setName("乔小乔");
employee.setAddress("北京市昌平区生命科学园");
employee.updateById();
```
6. **//查询一条**
```
Employee employee = new Employee();
employee.setName("乔小乔");
employee.setAddress("北京市昌平区生命科学园");
List<Employee> list = employee.selectList();
```
7. **//查询列表**
```
Employee employee1 = new Employee();
employee1.setName("乔小乔");
employee1.setAddress("北京市昌平区生命科学园");
Long i = employee1.count();
```
8. **//分页查询**
```
Employee employee = new Employee();
employee.setId(1);
employee.setName("乔小乔");
PageInfo<Employee> info = employee.selectPage(new Page(1, 10));
```
9. **//关键词删除(and)**
```
Employee employee = new Employee();
employee.setId(1);
employee.setName("乔小��цио");
employee.delete();
```
10. **//QueryModel删除 and 、or**
```
QueryModel QueryModel = new QueryModel();
QueryModel.eq("name","乔小乔");
QueryModel.or("id",1);
int delete = new Employee().delete(QueryModel);
```
11. **//QueryModel map删除**
```
QueryModel QueryModel = new QueryModel();
Map<String, Object> params = new HashMap<>();
params.put("id",1);
params.put("name","乔小乔");
QueryModel.allEq(params);
int delete = new Employee().delete(QueryModel);
```
12. **//QueryModel查询 and 、or**
```
QueryModel QueryModel = new QueryModel();
```
13. **//QueryModel list 查询**
```
QueryModel QueryModel = new QueryModel();
QueryModel.eq("name","乔小乔");
QueryModel.or("id",1);
List<Employee> list = new Employee().selectList(QueryModel);
```
14. **//QueryModel 更新**
```
QueryModel QueryModel = new QueryModel();
```
15. **//QueryModel map更新**
```
QueryModel QueryModel = new QueryModel();
Map<String, Object> params = new HashMap<>();
params.put("id",1);
params.put("name","乔小乔");
QueryModel.allEq(params);
int update = new Employee().update(QueryModel);
```
16. **//QueryModel 片段sql**
```
QueryModel QueryModel = new QueryModel();
Object [] params={1,"乔小乔"};
String sql=" `id` =# AND `name` =#";
//1、数组类型
QueryModel.judge(sql,params);
//2、可变类型
QueryModel.judge(sql,1,"乔小乔");
//3、对象类型
Employee e = new Employee();
e.setId(1);
e.setName("老王");
QueryModel.judge(sql,e);
//1、查询一条
Employee employee = new Employee().selectOne(QueryModel);
//2、查询列表
List<Employee> list = new Employee().selectList(QueryModel);
//3、条件更新
int update = new Employee().update(QueryModel);
//4、条件删除
int delete = new Employee().delete(QueryModel);
```
17. **//22、QueryModel 全量sql**
```
QueryModel QueryModel = new QueryModel(); //*号默认会替换成字段,可以查询具体字段,切记不可as
String sql="SELECT * FROM `employee` WHERE `id` = # AND `name` =#";
//1、数组类型
Object [] params={1,"乔小乔"};
QueryModel.qL(sql,params);
//2、可变类型
QueryModel.qL(sql,1,"乔小乔");
//3、对象类型
Employee e = new Employee();
e.setId(1);
e.setName("老王");
QueryModel QueryModel1 = new QueryModel();
QueryModel1.qL(sql,e);
//1、查询一条
Employee employee = new Employee().selectOne(QueryModel1);
//2、查询列表
List<Employee> list = new Employee().selectList(QueryModel);
//3、条件更新
int update = new Employee().update(QueryModel);
//4、条件删除
int delete = new Employee().delete(QueryModel);
``` **Участие и вклад**
Автор: Цяо Сяоцяо (乔小乔)
Дата: ноябрь 2019 года
Описание: Если вы разработчик, и ваш бизнес достаточно сложен, а полей в таблице слишком много, то написание SQL-запросов может быть пустой тратой времени и сил. Большое количество повторяющихся SQL-запросов замедлит вашу эффективность разработки. Поэтому использование плагинов или инструментов — это лучший способ повысить эффективность написания кода, а также обеспечить его краткость и надёжность.
Как программист, вы пишете код не только для того, чтобы реализовать функции, но иногда вам нужно учитывать множество аспектов, таких как надёжность кода, читаемость, краткость, возможность повторного использования. Хороший программист пишет код, как произведение искусства, которое хочется держать в руках.
Цель создания этого плагина — повысить эффективность разработки, реализуя самые сложные функции с помощью минимального количества кода и тем самым повышая эффективность разработки.
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.