mybatis--基础--04--SQL语句构建器
通过Java代码动态生成sql语句。
·
mybatis–基础–04–SQL语句构建器
代码地址
https://gitee.com/DanShenGuiZu/learnDemo/tree/mysql_mybaties_DB/mybatis-learn-master
1、SQL类
通过Java代码动态生成sql语句
2.1、方法



2、案例
2.1、代码

@Data
public class User {
private Long id;
private String userName;
private String password;
}
public class SqlProvider {
public String selectAll(final User user){
SQL sql = new SQL();
sql.SELECT("*").FROM("user");
if(user.getId()!= null){
sql.WHERE("id=#{id}");
}
if(user.getPassword()!= null){
sql.WHERE("password=#{password}");
}
if(user.getUserName()!= null){
sql.WHERE("user_name=#{userName}");
}
return sql.toString();
}
}
public interface UserMapper {
@SelectProvider(type = SqlProvider.class, method = "selectAll")
List<User> selectAll(User user);
}
public class Mybatis001 {
public static void main(String[] args)throws Exception {
String resource = "common1/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
User u1=new User();
u1.setId(1L);
u1.setUserName("1111");
u1.setPassword("222");
try {
List<User> users = userMapper.selectAll(u1);
} finally {
session.close();
}
}
}
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 打印sql日志 -->
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
<typeAliases>
<!-- 使用包名 -->
<package name="com.cl.mybatis.learn.day26.bean"/>
</typeAliases>
<environments default="development1">
<environment id="development1">
<transactionManager type="MANAGED"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://zhoufei.ali.db.com:3306/test"/>
<property name="username" value="user123"/>
<property name="password" value="user123"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.cl.mybatis.learn.day26.dao"/>
</mappers>
</configuration>
2.2、执行结果


魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)