- pojo:不按mvc分层,只是 Java bean有一些 属性,还有get,set方法
- domain:不按mvc分层,只是 Java bean有一些 属性,还有get,set方法
- po:用在持久层,还可以再增加或者修改 的时候,从页面直接传入action中,它里面的java bean 类名等于表名,属性名等于 表的字段,还有对应的get,set方法
- vo:view object表现层对象,主要 用于在高级查询中从页面接收传过来的 各种参数,好处 是扩展性强
bo:用在service层,现在企业基本不用
这些po,vo,bo,pojo可以用在各种层,也就是po用在表现层,vo用在持久层不报错,因为都是普通的java bean,没有 语法错误,但是在 企业 最好不要混淆着用,因为这些都是设计的原则,混着用比较乱,不利于代码维护- mybatis的依赖 包
asm-3.3.1.jar
- cglib-2.2.2.jar
- commons-logging-1.1.1.jar
- javassist-3.17.1-GA.jar
- log4j-1.2.17.jar
- log4j-api-2.0-rc1.jar
- log4j-core-2.0-rc1.jar
- slf4j-api-1.7.5.jar
- slf4j-log4j12-1.7.5.jar
MyBatis下载地址
地址:https://github.com/mybatis/mybatis-3/releases
若是maven搭建的项目,写如下的配置
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
sqlMapConfig.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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="sa"/>
<property name="password" value="123"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="User.xml"/>
</mappers>
</configuration>
- 这主要负责为我们的程序执行SQL查询
log4j.properties打印日志的配置文件
#Global logging configuration
log4j.rootLogger=DEBUG,stdout
#Console output
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t]-%m%n
写一个UserTest类
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import pojo.User;
public class UserTest {
@Test
public void textFindUserById() throws Exception {
String resource = "SqlMapConfig.xml";
// 通过流将核心配置文件读取进来
InputStream inputStream = Resources.getResourceAsStream(resource);
// 通过核心配置文件输入流来创建会话工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
// 通过工厂,创建会话
SqlSession opeanSession = factory.openSession();
// 第一个参数:所调用的sql语句=namespacce+.+sql的ID
User user = opeanSession.selectOne("test.findUserById", 1);
System.out.println(user);
opeanSession.close();
}
}
其中UString resource = “SqlMapConfig.xml”;是和上面一一对应的,双方都是要配置的
- 如果想写模糊查询
<select id="findUserByUserName" parameterType="java.lang.string" resultType="pojo.User">
select * from user where username like '%${value}%'
</select>
拼接符:字符串原样拼接,如果传入的参数是基本类型(string,long,double,int,boolean,float等),那么 {}中的变量名称必须是value,注意:拼接符有sql注入的风险,所以慎重使用,一般后面是=号的用占位符。like后面用拼接符
- UserTest中的代码就要这样写
List<User>list=openSession.selectList("test.findUserByUserName","王"):