MySQL通过SQL语句生成实体类_使用sql生成表对应的CRUD语句和表对应java实体类的实例变量...

本文介绍如何使用MySQL的SQL语句来生成指定表(如worker)的SELECT、UPDATE、INSERT语句,以及对应的Java实体类实例变量。通过`information_schema.COLUMNS`获取表结构,结合`GROUP_CONCAT`函数拼接SQL语句,对于不同数据类型(如varchar、datetime、int、float)设置不同的Java类型。这些方法有助于快速构建数据库操作和持久化模型。
摘要由CSDN通过智能技术生成

该sql运行于mysql 无 SELECTCONCAT('SELECT ',GROUP_CONCAT(COLUMN_NAME),' FROM ',TABLE_NAME)FROMinformation_schema. COLUMNSWHERETABLE_NAME = 'worker'; 其中 表名为worker SELECTCONCAT("UPDATE worker SET ",GROUP_CONCAT(COLUMN_NAME,"= ()")," WHERE

该sql运行于mysql

SELECT

CONCAT(

'SELECT ',

GROUP_CONCAT(COLUMN_NAME),

' FROM ',

TABLE_NAME

)

FROM

information_schema. COLUMNS

WHERE

TABLE_NAME = 'worker';

其中 表名为worker

SELECT

CONCAT(

"UPDATE worker SET ",

GROUP_CONCAT(

COLUMN_NAME,

"= ()"

),

" WHERE Id = "

)

FROM

information_schema. COLUMNS

WHERE

TABLE_NAME = 'worker';

SELECT

CONCAT(

'INSERT INTO worker( ',

GROUP_CONCAT(COLUMN_NAME),

') VALUES (',

GROUP_CONCAT(

CONCAT('()')

),

')'

)

FROM

information_schema. COLUMNS

WHERE

TABLE_NAME = 'worker' ;

SELECT

CONCAT(

'private ',

(

CASE

WHEN DATA_TYPE = 'varchar' THEN 'String '

WHEN DATA_TYPE = 'datetime' THEN

'Date '

WHEN DATA_TYPE = 'int' THEN

'int '

WHEN DATA_TYPE = 'float' THEN

'float '

END

),

COLUMN_NAME,' ;//',COLUMN_COMMENT

)

FROM

information_schema. COLUMNS

WHERE TABLE_NAME = 'worker' ;

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

下面是Java语言实现单操作共通方法的示例代码,包含了Mybatis和Springboot的相关配置及实现: 1. 配置pom.xml文件,添加Mybatis和mysql的依赖: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> </dependencies> ``` 2. 在application.properties文件中配置数据库连接信息: ```properties spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=root ``` 3. 创建实体类,如下所示: ```java public class User { private Long id; private String name; private Integer age; // getter and setter methods } ``` 4. 创建Mapper接口,定义CRUD方法,如下所示: ```java @Mapper public interface UserMapper { @Insert("INSERT INTO user (name, age) VALUES (#{name}, #{age})") @Options(useGeneratedKeys = true, keyProperty = "id") int insert(User user); @Update("UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}") int update(User user); @Delete("DELETE FROM user WHERE id=#{id}") int delete(Long id); @Select("SELECT * FROM user WHERE id=#{id}") User selectById(Long id); @Select("SELECT * FROM user") List<User> selectAll(); } ``` 5. 创建Service层,实现对Mapper接口的调用,并添加事务控制,如下所示: ```java @Service @Transactional public class UserService { @Autowired private UserMapper userMapper; public int insert(User user) { return userMapper.insert(user); } public int update(User user) { return userMapper.update(user); } public int delete(Long id) { return userMapper.delete(id); } public User selectById(Long id) { return userMapper.selectById(id); } public List<User> selectAll() { return userMapper.selectAll(); } } ``` 6. 创建Controller层,暴露API接口,如下所示: ```java @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @PostMapping("/insert") public ApiResponse<User> insert(@RequestBody User user) { userService.insert(user); return ApiResponse.success(user); } @PostMapping("/update") public ApiResponse<User> update(@RequestBody User user) { userService.update(user); return ApiResponse.success(user); } @PostMapping("/delete") public ApiResponse<Long> delete(@RequestParam Long id) { userService.delete(id); return ApiResponse.success(id); } @GetMapping("/selectById") public ApiResponse<User> selectById(@RequestParam Long id) { User user = userService.selectById(id); return ApiResponse.success(user); } @GetMapping("/selectAll") public ApiResponse<List<User>> selectAll() { List<User> users = userService.selectAll(); return ApiResponse.success(users); } } ``` 7. 最后,定义ApiResponse类,用于封装API接口的返回结果,如下所示: ```java public class ApiResponse<T> { private Integer code; private String message; private T data; public ApiResponse(Integer code, String message, T data) { this.code = code; this.message = message; this.data = data; } public static <T> ApiResponse<T> success(T data) { return new ApiResponse<>(200, "success", data); } // getter and setter methods } ``` 这样,就完成了Java语言实现单操作共通方法的示例代码,包含了Mybatis和Springboot的相关配置及实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值