1.开发的时候,一般会将jdbc连接的属性写入到jdbc.properties文件中。配置信息如下:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/shop
jdbc.username=root
jdbc.password=123
2.将该配置文件的内容导入到SqlMapConfig.xml(Mybatis的基础信息配置)中。
<?xml version="1.0"encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<propertiesresource="jdbc.properties"><!—把jdbc的配置信息写入到该文件中à
</properties>
<environmentsdefault="development">
<environmentid="development">
<transactionManagertype="JDBC" />
<dataSourcetype="POOLED">
<propertyname="driver" value="${jdbc.driverClassName}" />
<propertyname="url" value="${jdbc.url}" />
<propertyname="username" value="${jdbc.username}" />
<propertyname="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapperresource="com/gxa/bj/model/CateMapper.xml" />
</mappers>
</configuration>
3.通过Mapper映射的方式去实现sql操作。
1)在dao层首先是定义了一个接口,比如这里的接口名字CateMapper:
public interface CateMapper {
public List<Cate> selectAllCate();
}
2)在dao层配置CateMapper.xml文件。
3)操作的时候,实际是通过生成动态代理对象。
CateMapper cateMapper =sqlSession.getMapper(CateMapper.class);//实际就是生成了动态代理的对象
List<Cate> listCate = cateMapper.selectAllCate();
3.动态SQL语句的操作,是根据传入的参数不一样,所生成的sql语句也不相同。在生成的时候,一定要写清楚它的判定规则:比如:
<select id="selectCateByParam"resultType="com.gxa.bj.model.Cate"
parameterType="com.gxa.bj.model.Cate">
Select * From cate where 1=1
<iftest="id>0">
And id=#{id}
</if>
<if test="name!=null">
And name like '%${name}%'
</if>
<iftest="description!=null">
And description like '%${description}%'
</if>
</select>