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、执行结果

在这里插入图片描述

在这里插入图片描述

Logo

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

更多推荐