mybatis使用Dao和Mapper方式

更新时间:2023-05-16 04:26:23 阅读: 评论:0

mybatis使⽤Dao和Mapper⽅式
1、配置jdcp.properties数据库连接⽂件
#mysql databa tting
jdbc.sql.jdbc.Driver
jdbc.url=jdbc:mysql://1xxx:3306/xx?uUnicode=true&characterEncoding=utf-8
jdbc.urname=xxx
jdbc.password=xxx
#pool ttings
jdbc.pool.init=1
jdbc.pool.minIdle=3
jdbc.pool.maxActive=20
1.1配置mybatis全局⽂件l
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-////DTD Config 3.0//EN" "/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 全局参数 -->
<ttings>
<!-- 使全局的映射器启⽤或禁⽤缓存。 -->
<tting name="cacheEnabled" value="true"/>
<!-- 全局启⽤或禁⽤延迟加载。当禁⽤时,所有关联对象都会即时加载。 -->
<tting name="lazyLoadingEnabled" value="true"/>
<!-- 当启⽤时,有延迟加载属性的对象在被调⽤时将会完全加载任意属性。否则,每种属性将会按需要加载。 -->
<tting name="aggressiveLazyLoading" value="true"/>
<!-- 是否允许单条sql 返回多个数据集  (取决于驱动的兼容性) default:true -->
<tting name="multipleResultSetsEnabled" value="true"/>
<!-- 是否可以使⽤列的别名 (取决于驱动的兼容性) default:true -->
<tting name="uColumnLabel" value="true"/>
<!-- 允许JDBC ⽣成主键。需要驱动器⽀持。如果设为了true,这个设置将强制使⽤被⽣成的主键,有⼀些驱动器不兼容不过仍然可以执⾏。  default:fal  -->  <tting name="uGeneratedKeys" value="fal"/>
<!-- 指定 MyBatis 如何⾃动映射数据基表的列 NONE:不隐射 PARTIAL:部分  FULL:全部  -->
<tting name="autoMappingBehavior" value="PARTIAL"/>
<!-- 这是默认的执⾏类型(SIMPLE: 简单; REUSE: 执⾏器可能重复使⽤prepared statements语句;BATCH: 执⾏器可以重复执⾏语句和批量更新)  -->  <tting name="defaultExecutorType" value="SIMPLE"/>
<!-- 使⽤驼峰命名法转换字段。 -->
<tting name="mapUnderscoreToCamelCa" value="true"/>
<!-- 设置本地缓存范围 ssion:就会有数据的共享  statement:语句范围 (这样就不会有数据的共享 ) defalut:ssion -->
<tting name="localCacheScope" value="SESSION"/>
<!-- 设置但JDBC类型为空时,某些驱动程序要指定值,default:OTHER,插⼊空值时不需要指定类型 -->
<tting name="jdbcTypeForNull" value="NULL"/>
</ttings>
<!-- 类型别名 -->
<typeAlias>
<typeAlias alias="Page" type="persistence.Page" /><!--分页  -->
</typeAlias>
<!-- 插件配置 -->
<plugins>
<!--<;页⾯拦截器插件/>-->
<plugin interceptor="com.github.pagehelper.PageHelper" />
</plugins>
二年级口算题下册</configuration>
2、l⽂件配置(l配置在l中加载)
<!-- 加载classpath下的jdbc.properties⽂件,⾥⾯配了数据库连接的⼀些信息 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="${dataSource}" destroy-method="clo">
  <property name="driverClassName" value="${jdbc.driver}" />
  <property name="url" value="${jdbc.url}" />
  <property name="urname" value="${jdbc.urname}" />
  <property name="password" value="${jdbc.password}" />
  <property name="maxActive" value="10" />
  <property name="maxIdle" value="5" />
</bean>
<!--数据源配置sqlSessionFactory -->
<bean id="sqlSessionFactory" class="batis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref bean="dataSource"/>
  <property name="typeAliasPackage" value="path"/>
  <property name="typeAliasSuperType" value=""/>
  <property name="mapperLocations" value="classpath:/mappings/**/*.xml"/>
  <property name="configLocation" value="classpath:/l"></property>
</bean>
配置sql,l供rvice使⽤
<mapper namespace="ssm.mapper.UrMapper">
武汉市长江大桥
  <lect id="findUrById" parameterType="int" resultType="ur">
    lect * from ur where id = #{id}
  </lect>
</mapper>
3、dao⽅式和mapper⽅式使⽤mybatis
在l配置不同的加载⽅式
3.1、dao⽅式:
public class MybatisDao extends SqlSessionDaoSupport {
  final static Logger logger = Logger(GenericDao.class);
  private SqlSessionFactory sqlSessionFactory;
  public void tSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
    super.tSqlSessionFactory(sqlSessionFactory);
    this.sqlSessionFactory = sqlSessionFactory;
美哉嘉陵
  }
  public <T>T lect(String key, Object param) {
    if(null == param) {
    SqlSession().lectOne(key);
    }
  SqlSession().lectOne(key,param);
  }
  //其他inrt,delete,update⽅法⾃⾏实现
}
<!-- 配置dao实现类-- >
<bean id="genericDao" class="MybatisDao">
鸡蛋沉浮实验
  <property name="sqlSessionFactory">
  <ref bean="sqlSessionFactory" />
  </property>
  <property name="batchSqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<!-- 配置dao使⽤-->
<bean id="myClass" class="MyClass">
  <property name="myDao" ref="genericDao"></property>
</bean>
在MyClass中是⽤:
private MybatisDao myDao;
Ur ur = myDao.lect("ssm.mapper.UrMapper.findUrById",1);
3.2、mapper⽅式使⽤
3.2.1配置xml
<!-- 扫描baPackage下所有以@MyBatisDao注解的接⼝ -->
<bean id="mapperScannerConfigurer" class="tk.mybatis.spring.mapper.MapperScannerConfigurer">  <!--<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> -->
  <!--⾃动扫描包路径-->
  <property name="baPackage" value="path"/>
王凌志
职务是什么  <!--⾃动扫描MyBatisDao注解标注的接⼝并⾃动装载-->
  <property name="annotationClass" value="annotation.MyBatisDao"/>
  <!--<property name="markerInterface" value="CrudMapper"/>-->崔涂
贼头贼脑</bean>
3.2.2 //MyBatisDao 注解定义
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Component
public @interface MyBatisDao {}
3.2.3 //mapper接⼝,相当于dao接⼝,接⼝类名必须和l命名空间⼀样UrMapper ,结合typeAliasPackage使⽤可省掉命名空间包名路径
public interface UrMapper extends Mapper<T>, MySqlMapper<T> {
  //根据id查询⽤户信息,⽅法名必须和l配置的id名称⼀致,参数类型必须和l配置parameterType类型⼀致,返回类型必须和配置的resultType⼀直  public Ur findUrById(int id) t
hrows Exception;
}

本文发布于:2023-05-16 04:26:23,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/649555.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:配置   类型   加载
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图